Audio
MarkdownOpenAI Audio形式のテキスト音声合成(TTS)と音声認識(STT)。
完全ガイド
https://api.ailoot.ai/v1/audio/speech# 音声合成
curl https://api.ailoot.ai/v1/audio/speech \
-H "Authorization: Bearer $AILOOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "qwen-audio-3.0-tts-plus", "input": "こんにちは! これは音声合成の例です。", "voice": "longanlingxin"}' \
--output speech.mp3
# 認識
curl https://api.ailoot.ai/v1/audio/transcriptions \
-H "Authorization: Bearer $AILOOT_API_KEY" \
-F model=qwen-asr \
-F file=@meeting.wav# 音声認識
with open("meeting.wav", "rb") as f:
tr = client.audio.transcriptions.create(model="qwen-asr", file=f)
print(tr.text){
"text": "皆さん、こんにちは。今週の成果から始めましょう…"
}認証
- Authorizationheader必須
キーの形式:
Bearer sk-…。次のヘッダーも使用できます:x-api-keyまたはx-goog-api-key。
音声合成:リクエストボディ
- modelstring必須
音声合成モデル:
gemini-3.8-flash-tts,qwen-audio-3.0-tts-plus,speech-2.8-turbo,gemini-3.8-flash-lite-tts,speech-2.8-hd,gemini-3.1-flash-tts-preview,speech-2.6-turbo,speech-2.6-hd,speech-02-turbo,speech-02-hd。 - inputstring必須
音声合成するテキスト。MiniMaxのモデルでは10 000文字未満、
qwen-audio-3.0-tts-plusでは600文字まで。 - voicestring
声。MiniMaxモデルでは必須 (
speech-2.8-hdなどのspeech-…): MiniMaxの音声ID(英字、数字、_と-、128文字まで)。qwen-audio-3.0-tts-plusのデフォルトはlonganlingxin、Gemini TTSモデルではKore。 - response_formatstring任意
MiniMaxは次の形式のみ:
mp3;qwen-audio-3.0-tts-plus—mp3,wavまたはpcm;Gemini TTSではwavまたはjson(ファイルへのリンク)。
レスポンスは音声ファイル(MiniMaxでは audio/mpeg)。料金は、カタログの記載に従い、テキストの文字数またはトークン数に基づきます。
音声認識
https://api.ailoot.ai/v1/audio/transcriptions- filefile必須
WAV音声ファイルの送信形式:
multipart/form-data。qwen-asr,qwen-asr-latestとqwen-audio-3.0-asr-flash:完全な非圧縮PCM WAV。5分まで、ファイルはおよそ7,5 MBまで(base64では10 MBまで)。asr-1.0:PCM WAV、500秒・50 MBまで。gemini-3.5-transcribe:WAV、64 MBまで。 - modelstring必須
音声認識モデル:
gemini-3.5-transcribe,qwen-audio-3.0-asr-flash,asr-1.0。 - response_formatstring任意
次の形式のみ:
json(省略も可能)。
フィールド language は、これらのモデルでは使用されません。レスポンス:{"text": "…"}。料金は録音の長さに基づきます(秒・分・時間のいずれかで、単位はモデルごとに異なります)。
リアルタイム音声
モデル qwen-audio-3.0-realtime-plus ではWebSocket接続を開いてください。接続先は wss://api.ailoot.ai/v1/realtime?model=qwen-audio-3.0-realtime-plus 、ヘッダーは Authorization: Bearer <API_KEY>です。キーはサーバー側から送信してください。query stringで渡すキーは受け付けません。選択したモデルの session.created を待ってから、設定とメッセージを送信し、 response.createを送信してください。以下は、音声セッションでテキストレスポンスを取得するための、三つの連続したJSON text framesです:
{"type":"session.update","session":{"modalities":["text"],"turn_detection":null,"max_history_turns":20,"instructions":"簡潔に回答してください。"}}{"type":"conversation.item.create","item":{"type":"message","role":"user","content":[{"type":"input_text","text":"はいと答えてください。"}]}}{"type":"response.create"}レスポンスイベントは、次のイベントまで読み取ってください:response.doneと、その最終usage。エラーは次のイベントで届きます:error。料金は、確認済みの各レスポンスのテキストトークンと音声トークンに基づきます。音声入力:イベント input_audio_buffer.append 、 audio はbase64 PCM16 mono 16 kHzです。その後、 input_audio_buffer.commitとresponse.createを送信します。音声出力はPCM16 mono 24 kHzです。このセッションではバイナリフレームを受け付けません。
対応するクライアントイベント:session.update, input_audio_buffer.append/commit/clear, response.create/cancel, conversation.item.create/retrieve/delete。conversation itemsはメッセージとテキストのみです。function tools、web search、voiceprintには対応していません。セッションの制限:600秒、20レスポンス、20 history turns、instructionsは2000バイト、クライアントのテキストは8000バイト。アイドルタイムアウトは設定によって異なります(デフォルトは60秒)。