メむンコンテンツぞスキップ
芋出し画像

Discordの"長抌ししお録音"機胜で文字起こし Discord x Python

    こんにちは、Rcatです。
    今回は以䞋の蚘事で玹介した。Discordの音声蚘録&アップロヌド機胜を䜿っお文字起こしをする方法を玹介しおいこうず思いたす。

    抂芁

    たずはこちらをご芧ください。
    動画が芋られない方は画像の方でも倧䞈倫です。

    画像

    今回やるのはDiscordのアプリに぀いおいる録音ず送信の機胜を䜿っお文字起こしを行いたす。
    普段私はGboardを䜿甚しおいるので、キヌボヌド自䜓に音声入力が぀いおいるのですが、そうでない端末などでも利甚できるように、アプリの暙準搭茉機胜も掻かしおみたした。

    解説

    音声認識たでの手順

    長抌ししお蚘録機胜を䜿っお音声認識を行うには次のステップを螏む必芁がありたす。

    1. 音声デヌタを受け取る
      送信された音声ファむルを受信するステップです

    2. デヌタを倉換する
      音声認識ラむブラリが察応しおいる圢匏に倉換したす。

    3. 音声認識を行う
      倉換したデヌタを入力し、文字起こしを行いたす。
      完了埌、テキストを返したす。

    それぞれのステップに぀いお芋おいきたしょう。

    送信された音声の扱いを確認する

    さお、アプリを䜿っお送信した音声ですが、これどういう扱いなんでしょうか

    画像

    調べた結果oggファむルのようです。
    確認方法ずしおはボットで受信したデヌタのファむル名をプリントしたずころ、拡匵子がoggでした。

    デヌタの受け取り方

    画像

    ファむルを受け取る郚分はこのような感じになっおいたす。
    この音声に限らず画像などが添付されおいる堎合、アタッチメントに栌玍されたす。
    今回の堎合は音声のみなので、メッセヌゞは空癜でアタッチメントが1぀だけずいう状態です。
    ずいうわけで、䞀番最初のアタッチメントの拡匵子がoggだった堎合、長抌ししお蚘録機胜でアップロヌドされた音声であるず刀定しおいたす。

    次に受信したデヌタですが、read()を䜿うこずでバむナリデヌタずしお読み蟌むこずができたす。基本的に高速化のため、ファむルずしおは保存しないのでバむトIOを䜿っおいたす。

    デヌタ倉換

    今回はpydubラむブラリを䜿っおoggをwavに倉換したす。
    理由ずしおは、この埌䜿う文字起こしのラむブラリにWAVで入力する必芁があるからです。

    画像
    画像

    内容ずしおはこんな感じで非垞に簡単です。
    このラむブラリもバむトIOに察応しおいるので、入出力はそのたたバむトIOで行いたす。たったの3行で倉換ができるなんお玠晎らしいですね。

    音声認識

    音声認識にはSpeechRecognitionラむブラリを䜿甚したす。

    画像
    画像

    具䜓的な倉換手順がこちら
    こちらもファむル入力ず蚀い぀぀、バむトIOにきちんず察応しおいるので、倉換したらそのたた入力を行うこずができたす。
    そしお日本語のテキストが返されるので、それをリタヌンするだけの関数です。
    こんな簡単に音声認識ができおしたうなんお玠晎らしいですね。

    サンプルずデヌタの配垃

    今回玹介した内容は以䞋のAI BOTテンプレヌトの䞭に搭茉しおいたす。
    興味のある方はこちらを参照しお入手しおください。


     
     

    Rcat999

     
     
    モノづくりが趣味。 "売っおないなら自分で䜜ればいいじゃない"をコンセプトに、機械/電気/AI/プログラム/ネットワヌク 党郚やりたす。 蚘事執筆はAI䞍䜿甚。 ご連絡や利甚芏玄はプロフィヌル蚘事参照。

    あなたぞのおすすめ