Cognitive Services Speech Service をバッチ文字起こしで利用する ~ カスタムしない Custom Speech API の活用

  • by

インタビューなどの録音データを用いてバッチで文字起こしを行いたいとき (>1分の音声ファイル)

Cognitive Services Speech Services は 音声からの文字起こし (Speech-to-Text), テキスト読み上げ (Text-to-Speech) など、音声↔テキストの変換を Web API で利用できるサービスです。

Speech Services の 音声テキスト変換 では、音声ファイル(wav) をサービスに送信→テキストファイルを取得できます。 (Customでない) Speech Service のREST API は、送信できる wav ファイルは最大60秒という制限があります。

リアルタイム
(~1分)
リアルタイム
(1分~)
バッチ
Speech SDK
Speech REST API××
Custom Speech REST API

今回は、インタビュー時などの録音を用いて、バッチで文字起こしするソリューションを考えてみました。RNN による 音声テキスト変換を用いたく、Custom Speech の REST API を用いてバッチ処理を行ってみます。

Custom Speech API によるバッチ文字起こし

Custom Speech を利用するサブスクリプション

通常の(Custom なし) の Speech Services と同じサブスクリプションをご用意ください。(Custom Services の辞書登録やカスタマイズなどの諸機能を利用する場合は S0 (有償版) のサブスクリプションが必要です。)

Custom Speech API による音声→テキスト変換バッチ処理

Azure Blob Storage に wav ファイルをアップロードし、API には Blob URL で送信するようにします。

[POST] https://YOUR_REGION.cris.ai/api/speechtotext/v2.0/transcriptions
Request
[
{
"recordingsUrl": "https://YOUR_STORAGE.blob.core.windows.net/wav/test.wav",
"models": [],
"locale": "ja-jp",
"name": "Simple Transcription",
"description": "Simple transcription (ja-JP)"
}
]

Status Code 204 で受付OKになったら、バッチ処理のステータスをチェックします。

[GET] https:// YOUR_REGION .cris.ai/api/speechtotext/v2.0/transcriptions 

**Channel_0** の値 (URL) が変換されたテキストファイルになります。

Result

[
{
"recordingsUrl":"https://YOUR_STORAGE.blob.core.windows.net/wav/voice.wav",
"reportFileUrl": "https://...........................",
"resultsUrls":{
    "channel_0": "https://XXXXXX.json?sv=.........................."
},
:

docs.microsoft.com > Cognitive Services > Speech Services > バッチ文字起こしの使用方法
cris.ai Swagger UI

音声データのバッチ文字起こしソリューション

今回は Web から Azure Blob Storage に音声ファイルをアップロードし、Blob Storage が更新された時に Azure Logic App (または Azure Function) で Custom Speech API のバッチ文字起こしジョブを投入、ステータスを確認して Blob Storage に結果(テキストファイル)をアップロードしています。音声ファイルとテキストファイルのログを Azure Cosmos DB (または Azure Table Storage) に保持しています。

※Blob Trigger は検証用として暫定的に利用しています。スケールや待機時間の問題がある場合は Event Grid を利用します。
docs.microsoft.com > Azure Functions > Blob Trigger

wav ファイルのアップロードや txt ファイルを取得する Web アプリ (Azure Web App) と、バッチ処理を行う Azure Function のサンプルコードを公開しましたので、お試しください。
Cognitive Services Speech Service Batch STT (Speech-to-Text) Samples

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です