// // //

Pythonで日本語を音声認識をして音声をテキスト化し、それを音声合成して発音する方法簡単解説【オウム返し by Mac その1:音声認識編】

speech_recognition_00 Programming
speech_recognition_00
この記事は約7分で読めます。

音声の入出力(音声認識音声合成)をPythonを使ってMacで行うことが必要になりました。とりあえずMacに日本語で話しかけると、その音声を認識してテキストデータに変換し、そのテキストデータを音声合成により音声で返してくれる、つまり”オウム返し”をしてくれるコードを作ってみました。

思いの外、簡単にできたのですが、記事としては長くなってしまったので、本記事では音声認識の部分のみを説明します。みなさんと情報の共有できれば良いなと思っています。

この記事を読んで、できるようになる事

speech_recognition_03
speech_recognition_03

Mac上でPythonを使って、Macに話しかけたあなたの言葉(日本語)をテキストデータに変換できるようになります。

この次の記事では、Pythonを使って、テキストデータ(日本語)を音声合成により発音する方法を解説します。

環境設定

ぼくの環境は以下の通りです。

  • OS : MacOS Mojave 10.14.6
  • Python : version 3.6.5
  • Hardware : MacBook Pro 2016
  • IDE : Jupyter Lab

Jupyter Labは比較的新しいIDE(Integrated Development Environment)なので、まだ導入されてない方で、興味のある方は、ぼくの記事JupyterLabとJupyterNotebookの違いを簡単に解説【Mac】をのぞいてみてください。要は、Jupyter Notebookの後継機です。

音声認識

speech_recognition_02
speech_recognition_02

概要説明

ここでは、SpeechRecognitionというPythonのライブラリを使い、音声認識を行います。このライブラリはAPI(Application Programming Interface)を基本的にオンラインで使い、音声認識を行うものです。

いくつかのAPIから選択(詳細は後述)できますが、ここではdefaultの"Google Web Speech API"を使用します。このAPIは唯一、登録無しつまり、無料で使えるAPIです。(2020年6月時点)また、音声認識を行うには、インターネットに接続している環境が必要です。
またこれは、使用時間が1時間を超えると有料になるGoogle Cloud Speechとは異なるAPIです。

この記事を書くにあたって、インターネットでライブラリであるSpeechRecognitionと音声認識のためのAPIとの関係を調べたのですが、日本語の資料では、残念ながらきちんと説明しているものを見つけることができませんでした。

最終的に英文の資料をもとにその関係を理解しました。以下に参照した英文の資料のリンクとこの記事にたどり着いた皆さんが知りたいであろう項目をザクっと和訳したものを置いておきます。このことを理解しなくてもこの記事の内容は理解していただけると思いますが、興味のある方は、目を通してみてください。

The Ultimate Guide To Speech Recognition With Python – Real Python
An in-depth tutorial on speech recognition with Python. Learn which speech recognition library gives the best results and build a full-featured "Guess The Word"...
SpeechRecognition
Library for performing speech recognition, with support for several engines and APIs, online and offline.

SpeechRecognitionでは以下のAPI(もしくはEngine)を使用することができる。

  • CMU Sphinx
  • Google Speech Recognition
  • Google Cloud Speech API
  • Wit.ai
  • Microsoft Bing Voice Recognition
  • Houndity API
  • IBM Speech to Text
  • Snowboy Hotword Detection

このうち、CMU SphinxとSnowboy Hotwood Detectionはオフラインでも使用できる。この中で、Google Speech Recognitionのみが、登録無しで使用できる。またSpeechRecognitionのdefault設定もGoogle Speech Recognitionである。

実装

それでは、早速実装していきましょう。ライブラリとしては前述の”SpeechRecognition”とマイクを通して音声を入力するために、”pyaudio”を使います。

上記のコードによって、JupyterLabからライブラリのインストールができます。ターミナルから行う場合は、pipの前にある"!"を省略してください。
念の為、2つのライブラリが間違いなくインストールされたか、確認しておきましょう。
(Pythonの3.7 以上にPyaudioをインストールするとエラーが出るようです。無理やりインストールする方法はあるようですが、可能であれば、3.6にバージョンを落とすことをお勧めします。)

上記のコードを実行させると、すでにインストールされているライブラリの一覧が表示されます。2つのライブラリがちゃんとストールされているか確認しましょう。

それでは、上記のコードをJupyterLabから入力して、実行してみましょう。
何かお話ししてください。と催促してくるので、内蔵マイクの近く(ぼくのMacbook Proだと左側スピーカーの近く)で何か日本語を話しかけてください。かなりの精度で日本語を認識してくれます。

ループで催促を続けてくるので、止める時は”終わりだよ”と教えてあげて下さい。

ちなみに15行の"ja-JP"を"en-US"に変更すると、英語として音声認識を行ってくれます。英語の発音に自信のある方は、試してみて下さい。また、その際、23行の"終わりだよ"は何か適当な英語のフレーズに変更して下さいね。

まとめ

specch_recognition_04
specch_recognition_04

オンラインでAPIの助けを借りているとは言え、こんな簡単だコードでこれだけの精度の音声認識を実装できることは驚きに値すると思います。みなさんはどう思われましたか。

次の記事では、テキストデータを音声合成を行なってMacに音声として返してもらう実装を説明していきたいと思います。

それでは、今回はここまでにしたいと思います。最後までお付き合いいただき、ありがとうございました。さようなら。

参照資料

本記事作成のため、下記の資料を参考にさせていただきました。

おすすめプログラミングスクール

テックキャンプ エンジニア転職

管理人より:

ビジネス系YouTuberとして著名なマコなり社長が社長を務める株式会社Divが運営するTECH CAMP
やり切れる教材と就職までのサポートが大きな強めです。

また、受講の際には各自Macを準備する必要があります。(有料でレンタルあり)就職できなければ授業料返還の保証がありますが、39才以下との条件があります。ご注意ください。

費用は短期集中で一括払いで総額税抜648,000円、夜間・休日で848,000円と安くない費用になります。

コロナの影響で閉鎖していた教室もマスク着用などの条件付きで、全室、2020年11月2日より使用可能になりました。

眺めていても何も始まりません。これを機に、まずは以下のリンクから無料カウンセリングを受けられてみてはいかがでしょうか。

教育について ・圧倒的コミット量と網羅性 テックキャンプ エンジニア転職は600時間をかけてフロント/サーバーサイド/インフラ全てを一通り学びます。

サポート体制について ・学習環境 オンライン問わずメンターに質問し放題なため、途中で諦めてしまうことがありません。 ・専属のトレーナーの存在 トレーナーは毎週の学習計画の作成、日々の進捗確認、 キャリアアドバイザーへのフィードバックなど期間中は二人三脚となってサポートします。 ・専属のキャリアアドバイザー 毎週のキャリア面談、面接対策や履歴書の添削、企業提案など転職が決定するまでサポートし続けます。 また、企業に入社した後も半年間であれば無料でキャリア相談を受け付けています。

受講スタイル:通学またはオンライン
場所:東京(渋谷)、大阪、名古屋、福岡
価格
入会金不要で月々21,200円(税込)から、一括は648,000円(税抜)(短期集中)
主な学習言語:HTML/CSS、JavaScriptRuby on Rails等
期間:短期集中で10週間、夜間・休日で6ヶ月

コメント