非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

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
 

 

 

スポンサーリンク

 - Python