1. TOP
  2. Tech
  3. pythonでポッドキャストの文字起こし

pythonでポッドキャストの文字起こし

公開日:2021-03-06 最終更新日:2021-03-06

最近、ポッドキャストで英語を勉強しています。初心者用のVOA learning Englishを聞いていたのですが、如何せん内容が面白くありません。やはり、自然なスピードの物が良い、という事で最近はNPRのものを聞いています。しかし、今度はスピードが速くて聞き取れません…。そこで、pythonで文字起こしをすることにしました。

pythonでポッドキャストの文字起こしをするコード

Microsoftの音声変換の概要を参照して作成したのが下記コードです。むしろ、ほとんどコピペして作っています。

注意点として、まずはMicrosoft azureのアカウントを作り、Speech Serviceの登録をする必要があります。Speech Serviceは文字起こしのエンジンです。無料のものにしておけば、特にお金は掛かりません。

また、私は10分以下の音声データで試しました。それ以上の時間の音声データでプログラムが動くかは不明です。


import azure.cognitiveservices.speech as speechsdk
import time
speech_config = speechsdk.SpeechConfig(subscription="Speech Serviceのキーを入れて下さい", region="Speech Serviceの場所を入れて下さい")
audio_config = speechsdk.audio.AudioConfig(filename="文字起こししたいファイルの名前を入れて下さい")
speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config, audio_config=audio_config)
done = False
def stop_cb(evt):
    print('CLOSING on {}'.format(evt))
    speech_recognizer.stop_continuous_recognition()
    done = True
    print('finish')
speech_recognizer.recognized.connect(lambda evt: print('\n{}'.format(evt.result.text)))
speech_recognizer.session_stopped.connect(lambda evt: print('SESSION STOPPED'))
speech_recognizer.canceled.connect(lambda evt: print('CANCELED'))
speech_recognizer.session_stopped.connect(stop_cb)
speech_recognizer.canceled.connect(stop_cb)
speech_recognizer.start_continuous_recognition()
while not done:
    time.sleep(0.5)

終わりに

以上のように、pythonを少しでもやった事がある人なら、簡単に文字起こしのプログラムを作れます。ただし、100%の文字起こしは期待しないで下さい。やはり、所々ミスがあります。

それでも、カンニングペーパーがあるのとないのでは英語学習に大きく差が出そうです。今までは何を言っているか全く分かりませんでしたからね。内容を理解しながら音声を聞くことが出来ます。

以上、参考にしてみて下さい。