python + SpeechRecognitionでマイクの音声をテキストにする

必要となる知識

  • SpeechRecognition: いろんな音声認識サービスを使えるpythonのライブラリ
  • pyaudio: SpeechRecognitionのMicrophone()メソッドを使うなら必須となる。これもpythonのライブラリ
  • Anaconda: いろんなパッケージとかソフトがついてくるpythonのプラットフォームこれは SpeechRecognition と直接は関係しない
  • Google Speech Recognition: よくわからん。Google Cloud Speech APIでないことはたしか

公式とか他の情報みてもいいと思うけど、とりあえず各ライブラリの導入の仕方とかは↓に書いた。
pythonで音声認識を使う – SpeechRecognitionを試してみる

マイクの音声をテキストにするサンプルコード

実は公式のREADME.rstでサンプルコードは公開されている。

import speech_recognition as sr

r = sr.Recognizer()
with sr.Microphone() as source:
    print("Say something!")
    audio = r.listen(source)

try:
    print("Google Speech Recognition thinks you said " + r.recognize_google(audio))
except sr.UnknownValueError:
    print("Google Speech Recognition could not understand audio")
except sr.RequestError as e:
    print("Could not request results from Google Speech Recognition service; {0}".format(e))
  • 9行目: 成功していればここに声が文字として出力される
  • 11行目: Google音声認識が音声を理解できませんでした
  • 13行目: Google音声認識サービスから結果を要求できませんでした

ほか as とかは省略形になっているので、慣れないうちは生書きしたほうがいいかもしれない。

結果

実はマイクもってないのでこのコードがどう動くのか結果がわからない・・・。無念。

コードだけみると、声の入力受付時間みたいなものがない感じもするが、おそらく Microphone() メソッドにいろいろ秘密が隠されているのではないかと思われる。という妄想はこのくらいにしておこう。

追記 – こんなかんじになるみたいですわ↓

雑感

とりあえずSpeechRecognitionを使えばマイクの音声をひろって文字化できるようである。どこかの情報でみたけど、音声をうまく認識できてないものは正規表現でカバーしたりとなんだかいろいろできそうではある。このひな形コードから色々改良していけばよさそうだ。

あとはマイクを買わないといけないのか・・・。


Warning: Undefined array key "thumbnail_url" in /home/users/1/boy.jp-rolpop/web/skc/wp-content/themes/godios/inc/schema-org.php on line 49

Warning: Undefined array key "thumbnail_url" in /home/users/1/boy.jp-rolpop/web/skc/wp-content/themes/godios/inc/schema-org.php on line 78