会議の音声も自動で文字起こし?!Azure Cognitive ServicesのSpeech to Textを使ってみる!!
2022-10-27
azblob://2022/11/11/eyecatch/2022-10-27-speech-to-text-000.jpg

こんにちはさとはるです。

レコーディングされている会議を見返したときに(〇〇についてどっかで説明してたんだけどどこだったかな…)みたいに思うことないですか?僕はあります。

そんなときに力を発揮する(かもしれない)のがこちら、「Speech to Text」です!!

要は音声の文字起こしですね。

文字になっていれば検索が可能になるので利便性向上間違いなし!?

さっそくやっていきましょう。

リソースを作る

Speech to Textは「Cognitive Services」の中の「音声サービス」の中の一機能になります。

Azure ポータルで「Cognitive Services」で検索して開き、「音声サービス」の「作成」をクリックして音声サービスのリソースを作成します。

変換する

各種プログラムからも変換が可能ですが、CLIを使うのが最も簡単だと思います。

以下のクイックスタートを参考に進めていきます。

音声テキスト変換クイックスタート - Speech サービス - Azure Cognitive Services | Microsoft Learn

前準備として、任意のCUIを起動して以下のコマンドを実行します。

Power Shell派の人はコマンドが異なるのでクイックスタートをご確認ください。

<>の中はそれぞれ書き換えてください。

dotnet tool install --global Microsoft.CognitiveServices.Speech.CLI
    spx config @key --set <SUBSCRIPTION-KEY>
    spx config @region --set <REGION>

これで準備はできたのでさっそく文字起こししてみます。

wav形式のファイルであれば以下のコマンドでOKです。

spx recognize --file <ファイル名> --source ja-JP

実際に読み込ませたファイルと結果はこんな感じです。

リアルタイムに変換されていくところも精度が良いですが、全部聞き終わった後に整合性をとるような形で出力されてるのが凄いですね。

最終的なアウトプットは.tsvという拡張子のテキストファイルになります。

audio.input.id	recognizer.session.started.sessionid	recognizer.recognized.result.text
    吾輩は猫である	8e002027af884c09a7f7185d918dcee3	吾輩は猫である名前はまだない。 どこで生まれたかとんと見当がつかぬなんでも薄暗いじめじめしたところでニャーニャー泣いていたことだけは記憶している。
    

また、今回は簡単のためにwav形式の音声ファイルを用意しましたがGStreamerを併用することで主要な形式には対応できるようです。

圧縮されたオーディオ入力を使用する方法 - Speech サービス - Azure Cognitive Services | Microsoft Learn

まとめ

Azure の「Cognitive Services」の中の「音声サービス」の「Speech to Text」の紹介でした!!

今回はCLIから試してみましたが、プログラムから実行するのもSDKが用意されていて簡単っぽいので嬉しいですね。

本記事が少しでも誰かの手助けになれば幸いです。