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

pythonでポッドキャストの音声を文字起こし?

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

最近、ポッドキャストで英語を勉強しています。うーん、何を言っているのか分からない。そこで、pythonを使ってポッドキャストの音声を文字起こしする事にしました。

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

以前、ハロートークという語学学習アプリを使った時の事です。海外の方から、読む、聞く、書く、話すの中で、まずは聞くことから始めた方がいいよ、とアドバイスを受けました。1日1時間、1年で365時間やれば如実に効果が出るそうです。なるほど、やってみましょう。

しかし、頑張って聞こうにも中々耳がついていかないですよね。カンニングペーパーが必要です。という訳で、pythonを使って音声の文字起こしをしました。なお、Microsoftの音声変換の概要を参照して作成しています。


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)

文字起こしの前準備

前準備として、Azureの登録と音声サービスは必須です。

これでAzureの音声認識サービスを利用できる用になりました。次に、pythonをインストールしましょう。 vs code が使いやすいです。

たしかに便利だが…

さて、早速ポッドキャストを文字起こししてみました。おお、確かにカンニングペーパーが出来上がりました。しかし、うーん、あまり実用的ではないかもしれません。

当たり前ですが、文字起こしには時間が掛かります。私の場合は10分以下の音声データですが、10分間ポッドキャストを掛けっぱなしにしなければなりません。倍速にしてもいいのか…?とにかく、文字起こしの時点で一度ポッドキャストを聞く事になります。

そして、聞いた後にもう一度文字を見ながら音声を聞くかと言うと、かなり億劫に感じるんですよね。なぜなら一度聞いてしまっているので。何となく面倒な気持ちになってしまいました。かなり勉強熱心な方でない限り、使用頻度が少なくなっていきそうです…。

終わりに

折角pythonで作った音声文字起こしコードですが、実用性は無さそうでした。文字起こしに時間も掛かるため、繰り返し聞きたい内容でないとわざわざやる気になりません。それなら、例え意味が分からなくても聞き流していた方が勉強のハードルは低いです。聞いているだけで済みますからね。

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