必要となる知識
- 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を使えばマイクの音声をひろって文字化できるようである。どこかの情報でみたけど、音声をうまく認識できてないものは正規表現でカバーしたりとなんだかいろいろできそうではある。このひな形コードから色々改良していけばよさそうだ。
あとはマイクを買わないといけないのか・・・。
コメント