概要
Azure OpenAI Service を使った「音声合成(Text to speech)」と「音声認識(Speech to text)」の話です。
それらを curlコマンドで扱います(※ 自分が試している環境は Mac です)。
処理の流れとしては、Azure OpenAI Service の tts-1 を使った音声合成を行い、音声ファイルを得ます。そして、tts-1 で得た音声ファイルを Azure OpenAI Service の whisper を使った音声認識でテキスト化します。
事前準備(※ 詳細は省略)
今回の curlコマンドを実行するために、Azure OpenAI Service のモデルのデプロイ(※ モデルは、tts-1 と whisper の 2種)を行っておいてください。
※ 記事執筆時点だとモデルを利用可能なリージョンが限定的だと思いますので、そのリージョンの情報は公式情報で確認して進めてください
そしてこの後に API経由でモデルを使うため、以下の情報も用意しておいてください。
- エンドポイント
- デプロイ名
- APIキー
curlコマンドで API を使う
tts-1 による音声合成
まずは、音声合成です。コマンドは、「公式情報」と「JBS Tech Blog の記事」を参考にしました。
以下が実際のコマンドになります。APIバージョンは「2024-02-15-preview」を指定しています。【エンドポイント】・【デプロイ名】・【APIキー】 の 3箇所は、ご自身の環境のものを指定してください。
curl '【エンドポイント】/openai/deployments/【デプロイ名】/audio/speech?api-version=2024-02-15-preview' \
-H "api-key: 【APIキー】" \
-H "Content-Type: application/json" \
-d '{
"model": "tts-1",
"input": "I am excited to try text to speech.",
"voice": "alloy"
}' --output speech.mp3
コマンドの実行結果は、以下のとおりです。ここで得られた speech.mp3 をプレイヤーで再生し、音声が再生されるのを確認できました。
whisper による音声認識
今度は音声認識です。その入力には、先ほど音声合成で作ったファイルを使います。
コマンドは、「公式情報」を参考にしました。
以下が実際のコマンドです。先ほどと同様、APIバージョンは「2024-02-15-preview」を指定しています。【エンドポイント】・【デプロイ名】・【APIキー】 の 3箇所は、ご自身の環境のものを指定してください。
curl '【エンドポイント】/openai/deployments/【デプロイ名】/audio/transcriptions?api-version=2024-02-15-preview' \
-H "api-key: 【APIキー】" \
-H "Content-Type: multipart/form-data" \
-F file="@./speech.mp3"
コマンドの実行結果は、以下のとおりです。
音声合成の時に入力した「"I am excited to try text to speech."」という内容が得られているのが確認できました(ハイフンの有無が微妙に違っていますが...)。
音声合成で作成したノイズなどがない音声なので、音声認識の結果もきれいに得られた形かと思います。