KAGO WEB
  • Job
  • Health
  • Dating
  • Tech
  • Music
  • Tennis
  • Life
    1. TOP
    2. Tech
    3. pythonでポッドキャストの音声を文字起こし?

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

    最終更新日:2022-01-02

    python-podcast-mojiokoshi

    最近、ポッドキャストで英語を勉強しています。うーん、何を言っているのか分からない。そこで、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で作った音声文字起こしコードですが、実用性は無さそうでした。文字起こしに時間も掛かるため、繰り返し聞きたい内容でないとわざわざやる気になりません。それなら、例え意味が分からなくても聞き流していた方が勉強のハードルは低いです。聞いているだけで済みますからね。