Pythonで音声からテキストへ変換する方法【SpeechRecognition】
PythonのSpeechRecognitionライブラリを使うと音声(wavファイル)をテキストに文字起こししてくれます。
まずはpipコマンドでインストールしましょう。
$ pip install SpeechRecognition
こちらがtest.wavという音声ファイルを文字起こししてくれるPythonのソースコードです。テキストに変換したらコンソール上に出力と、voice.txtというファイルにも保存します。
import speech_recognition as sr r = sr.Recognizer() with sr.AudioFile("test.wav") as source: audio = r.record(source) text = r.recognize_google(audio, language='ja-JP') print(text) f = open('voice.txt', 'w') f.write(text) f.close()
実行結果は以下の通り。上がコンソール出力の例で下が保存されたテキストファイルです。ちなみに音声データは某局のニュース番組の一部です。アナウンサーの声が一番はっきりしていると思って使いました。普通の会話レベルが文字認識してくれるかはわかりません。
尚、一般的に最近の音声データはmp3形式がほとんどですが、SpeechRecognitionはmp3に対応していません。なので、ffmpegなどでwav形式にする変換する必要あります。
ubuntuへのffmpegのインストールは以下のコマンドとなります。
$ sudo apt-get -y install software-properties-common $ sudo add-apt-repository ppa:mc3man/trusty-media $ sudo apt-get update $ sudo apt-get -y install ffmpeg
インストールが終わったらwav形式に変換しましょう。以下がそのコマンドです。
$ ffmpeg -i test.mp3 test.wav
スポンサーリンク