Whisperで文字起こしすると英語になる?Azure OpenAIのエンドポイントに要注意
この記事の内容
- Azure OpenAI ServiceのWhisperを使って音声文字起こしを行う際のはまりポイントを紹介します
- Azureポータルで表示されるエンドポイントが「翻訳(translations)」になっている場合があります
- 正しい文字起こしには「transcriptions」エンドポイントを使う必要があります
- 見た目ではわかりにくい違いのため、同じミスで時間を無駄にしないための注意喚起です
Azure OpenAI ServiceでWhisperを使う
Azure OpenAI ServiceにはOpenAIのWhisperモデルが利用可能です。Whisperは音声をテキストに変換するモデルで、文字起こしや翻訳といった用途に活用できます。
今回は、このWhisperを使って音声の文字起こしを行おうとした際に気づいた、エンドポイントに関する注意点をご紹介します。
問題:文字起こしすると全部英語になる
Azureポータル上でWhisperのデプロイを確認し、表示されているエンドポイントをコピーして文字起こしの処理を実装したところ、日本語音声を入力しているはずなのに、出力がすべて英語になってしまうという現象が発生しました。
言語設定なども見当たらず、「なぜだろう」と首を傾げながら調査を進めることになりました。
原因:エンドポイントが「translations」になっていた
調査の結果、原因はエンドポイントのURIにありました。
Azureポータル上でWhisperのデプロイを開くと、「音声認識」という表示のエンドポイントが確認できます。しかし、そのターゲットURIをよく見ると、次のようになっています。
これは翻訳(Translation)用のエンドポイントです。翻訳エンドポイントは、音声を認識したうえで英語に翻訳して出力するため、日本語音声を渡しても英語テキストが返ってきます。
本来、音声を元の言語のままテキスト化(文字起こし)したい場合は、transcriptionsエンドポイントを使う必要があります。
translationsとtranscriptionsの違い
| エンドポイント | 用途 | 出力 |
|---|---|---|
/audio/transcriptions | 文字起こし(Speech-to-Text) | 元の言語のテキスト |
/audio/translations | 翻訳(Speech-to-English) | 英語テキスト |
OpenAIのドキュメントにも両方のAPIが記載されており、用途によって使い分けが必要です。
なぜ気づきにくいのか
Azureポータルの表示上、このエンドポイントには「音声認識」という日本語ラベルが付いています。そのため、「音声認識=文字起こし」と判断してそのままコピーして使ってしまいがちです。
URIの末尾が translations か transcriptions かは、画面をよく見ないと気づきにくい場合があります。特にポータルのUIによっては右側が見切れていることもあるため、コピーする前にURIの末尾まで確認することが重要です。
まとめ
- Azure OpenAI ServiceでWhisperを使う際は、エンドポイントのURIに含まれるパスを必ず確認しましょう
- 文字起こしには
/audio/transcriptionsエンドポイントを使用します - 英語への翻訳には
/audio/translationsエンドポイントを使用します - ポータルの表示ラベルだけを信頼せず、URIの末尾まで確認する習慣をつけることが大切です
同じはまりで時間を無駄にしないよう、ぜひ注意してみてください。