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をよく見ると、次のようになっています。

/audio/translations

これは翻訳(Translation)用のエンドポイントです。翻訳エンドポイントは、音声を認識したうえで英語に翻訳して出力するため、日本語音声を渡しても英語テキストが返ってきます。

本来、音声を元の言語のままテキスト化(文字起こし)したい場合は、transcriptionsエンドポイントを使う必要があります。

/audio/transcriptions

translationsとtranscriptionsの違い

エンドポイント用途出力
/audio/transcriptions文字起こし(Speech-to-Text)元の言語のテキスト
/audio/translations翻訳(Speech-to-English)英語テキスト

OpenAIのドキュメントにも両方のAPIが記載されており、用途によって使い分けが必要です。


なぜ気づきにくいのか

Azureポータルの表示上、このエンドポイントには「音声認識」という日本語ラベルが付いています。そのため、「音声認識=文字起こし」と判断してそのままコピーして使ってしまいがちです。

URIの末尾が translationstranscriptions かは、画面をよく見ないと気づきにくい場合があります。特にポータルのUIによっては右側が見切れていることもあるため、コピーする前にURIの末尾まで確認することが重要です。


まとめ

  • Azure OpenAI ServiceでWhisperを使う際は、エンドポイントのURIに含まれるパスを必ず確認しましょう
  • 文字起こしには /audio/transcriptions エンドポイントを使用します
  • 英語への翻訳には /audio/translations エンドポイントを使用します
  • ポータルの表示ラベルだけを信頼せず、URIの末尾まで確認する習慣をつけることが大切です

同じはまりで時間を無駄にしないよう、ぜひ注意してみてください。