本稿では,音声データからテキストに変換する文字起こしを実装します.
まだ精神が病んでるので,時にyoutubeで人の話を聞いて,認知療法に役立てているのですが,聞いてから文字に起こすのが面倒くさくなり,実装し始めました.
サンプルとしてコーパス開発センター音声・転記テキストサンプルから 学会講演[音声]のサンプル音声(aps-smp.mp3)をダウンロードします.
事前準備
ここではSpeechRecognitionというモジュールを用いります.googleのAPIを間接的に利用します.
Speech-to-Text 公式API
pip install SpeechRecognition
# Successfully installed SpeechRecognition-3.8.1
音声のファイル変換
サンプルコードでは読み込む拡張子が「.wav」となっているため,mp3 -> wavに変換します.
ファイル変換はターミナル上でffmpegで実行します.
# ffmpegのインストール
apt-get install -y ffmpeg
# ファイルの変換
ffmpeg -i aps-smp.mp3 aps-smp.wav
音声のテキスト変換
以下のコードで音声からテキストに変換する文字起こしに実施します.
python
# 音声のテキスト変換
import speech_recognition as sr
r = sr.Recognizer()
with sr.AudioFile("aps-smp.wav") as source:
audio = r.record(source)
text = r.recognize_google(audio, language='ja-JP')
print(text)
今後のやりたいこと
短い音声ファイルではありますが,音声からの文字起こしはできました.
今後は長い動画での文字起こし(できるだけ無料で)に実装したいです.
参考サイト
エラーコード
エラーコード1
あまりに時間の長い音声ファイル(無料枠から外れる)を変換したり,言語として読み取れなかったりすると,以下のエラーが発生します.
recognize_google speech recognition broken pipe python
RequestError: recognition connection failed: [Errno 32] Broken pipe