メインコンテンツまでスキップ

音声とスピーチ

音声入力(STT)

マイクボタンで録音し、POST /api/transcribe で文字起こしします。トランスポートは デプロイ名から自動選択されます。

REST パス(ゼロ設定)

従来の Whisper 系モデル向け:

WHISPER_DEPLOYMENT_NAME=whisper # または whisper-1 / gpt-4o-transcribe / gpt-4o-mini-transcribe

バックエンドは POST /audio/transcriptions を同期的に呼び、文字起こしを返します。 追加デプロイは不要です。

Realtime パス(gpt-realtime-whisper

gpt-realtime-whisper は文字起こし専用で、音声 Realtime モデルと併用するため 2 つの デプロイが必要です:

WHISPER_DEPLOYMENT_NAME=gpt-realtime-whisper
WHISPER_REALTIME_CONNECTION_DEPLOYMENT=gpt-realtime-mini # 最も安価な音声モデル

トランスポートは WHISPER_DEPLOYMENT_NAME 内の realtime 部分文字列で選択され、 WHISPER_MODEL_KIND=rest|realtime で上書きできます。任意の調整:

# 空なら GA URL を選択。gpt-4o-realtime-preview などレガシーモデルのときだけ
# プレビュー値を設定。
AZURE_OPENAI_REALTIME_API_VERSION=
# ブラウザの webm/Opus はこの PCM レートに再サンプリング。許可: 16000, 24000。
WHISPER_REALTIME_AUDIO_RATE=24000

POST /api/transcribe の契約は両トランスポートでバイト単位まで同一のため、SPA は 変更不要です。

読み上げ(TTS)

任意のメッセージをオンデマンドで読み上げます。スピーカーボタンで再生、ダウンロード ボタンで MP3 保存。音声はキャッシュされ重複呼び出しを避けます。プロバイダは TTS_PROVIDER(既定 elevenlabs)で選びます。

オプション A -- ElevenLabs:

TTS_PROVIDER=elevenlabs
ELEVENLABS_API_KEY=your-api-key
TTS_MODEL_ID=eleven_multilingual_v2
TTS_VOICE_ID=your-voice-id

オプション B -- Azure OpenAI Realtime 音声(例: gpt-realtime-2)。既存の AZURE_OPENAI_ENDPOINT と資格情報を再利用:

TTS_PROVIDER=azure-realtime
TTS_REALTIME_DEPLOYMENT=gpt-realtime-2
TTS_REALTIME_VOICE=alloy
# TTS_REALTIME_AUDIO_RATE=24000

Azure Realtime レーンはメッセージ本文をそのまま読み上げます(会話はしません)。 ElevenLabs と同じ挙動です。