WAVEファイルから文字をお越すサンプルです。動画から音声をWAVEで取り出した後、SpeechRecognitionで分析すると簡単に文字に起こすことができます。登録不要、無料で使えます。
import speech_recognition as sr
def wave_moji(wave_path: str) -> str:
# use the audio file as the audio source
try:
r = sr.Recognizer()
with sr.AudioFile(wave_path) as source:
audio = r.record(source) # read the entire audio file
result = r.recognize_google(audio, language='ja-JP')
return result
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))
return "error"
res: str = wave_moji(".\sound.wav")
print( f"変換後:{str}" )
変換できるファイルの条件があります。最大で10Mバイトです。大きなwavファイルは、10Mバイトで区切って渡してしまえば問題ありません。Pythonでできます。また、mp3のような圧縮ファイルもNGです。
文字お越しの結果
発音が悪くなければ、かなり正確でした。他の文字お越しと比較しても、群を抜いて良好な結果です。
- オリジナルの音声
- 今回は未経験のWeb系エンジニア志望の方は、最初どのサーバーサイド言語から学べばよいのかという話をしていきたいと思います。結論として 大方針を言うとですね とにかく Web業界でエンジニアとして潜り込みたいなら、PHPがいいです
- 変換後の音声
- 今回は 未経験 の Web 系エンジニア 志望の方は最初どのサーバーサイド 言語から学べばよいのかという話をしていきたいと思います 結論として大行進を言うとですね とにかく Web 業界で エンジニアとしても振り込みたいなら PHP がいいです
SpeechRecognitionの概要
オンライン又はオフラインで音声認識を実行するためのライブラリで、いくつかのエンジンとAPIをサポートしています。
- CMU Sphinx (works offline)
- Google Speech Recognition
- Google Cloud Speech API
- Wit.ai
- Microsoft Azure Speech
- Microsoft Bing Voice Recognition (Deprecated)
- Houndify API
- IBM Speech to Text
- Snowboy Hotword Detection (works offline)
公式ドキュメントを元にしています。
インストール方法
$ pip install SpeechRecognition
