音声生成

ファイルを入力する場合は ファイル API でアップロードし、返された file_id を参照します。ゲートウェイは変換を担当し、入力への対応可否は上流が判断します。

input_references: [{"type":"image","role":"reference","source":{"type":"file","file_id":"..."}}] で素材を参照します。type は実ファイルの image/audio/video に一致させます。source を COS 署名 URL に変換し、role を保持して DSL に渡します。既存の必須項目は引き続き必要です。Images と Speech の input_references は InOneAPI 拡張です。

POST /v1/audio/speech は OpenAI Speech JSON 形式に従い、JSON ではなく音声バイト列を返します。

必須は model、input、voice。任意は instructions、response_format(mp3、opus、aac、flac、wav、pcm)、speed(0.25–4)、stream_format(audio または sse)です。Chat 形式の stream は送信しません。

最小リクエスト

YOUR_MODEL_ID をモデル詳細の正確な ID に置き換え、接頭辞は追加しないでください。任意パラメーターと音色はモデルの対応範囲に従い、アプリヘッダーはコメントのままで利用できます。

# -H "X-APP-NAME: Your App Name"
# -H "X-APP-URL: https://your-app.example.com"
curl "https://api.inoneapi.com/v1/audio/speech" \
  -H "Authorization: Bearer $INONEAPI_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "YOUR_MODEL_ID",
  "input": "Hello from InOneAPI",
  "voice": "REPLACE_WITH_SUPPORTED_VOICE",
  "response_format": "mp3"
}' \
  --output speech.mp3

パラメーター詳細

フィールド型説明
modelstring必須の公開モデル ID。上流 ID に置換されます。例のモデル名は管理画面で利用可能なものに変更してください。
inputstring必須の空でないテキスト。長さ制限は上流によります。自動分割、切り詰め、結合、SSML 変換はありません。
voicestring/object必須の音色名、または対応するカスタム音色 {"id":"voice_123"}。音色名と権限はプロバイダー固有です。
instructionsstring任意の感情・話し方の指示。対応モデルのみで有効で、input の代わりではありません。
response_formatstring既定は mp3。固定形式 Base64 マッピングは設定形式のみ受け付けます。url、base64、json ではありません。
speednumber0.25–4。省略時は上流の既定値。上流の制限がより厳しい場合があります。
stream_formatstring既定は audio。SSE は対応するネイティブ接続のみ。音声の分割転送は SSE ではありません。

キーはサーバー側に保持し、利用者に AI 音声であることを明示してください。文字起こし、翻訳、Realtime、音声学習はこの API の対象外です。

クライアント例

curl  https://api.inoneapi.com/v1/audio/speech \
  -H "Authorization: Bearer $INONEAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "YOUR_MODEL_ID","input": "こんにちは。","voice": "REPLACE_WITH_SUPPORTED_VOICE","response_format": "mp3"}' \
  --output speech.mp3

cURL の終了コードを確認してください。--fail-with-body はエラー JSON も speech.mp3 に保存する場合があります。成功した音声応答には response.json() を使いません。JavaScript と TypeScript は全体をメモリに保持します。大きな音声にはストリームを使用してください。Python は分割保存でき、HTTP エラーは HTTPError になります。

音声形式とストリーミング

形式MIME と注意点
mp3audio/mpeg。既定形式。
opusaudio/ogg。Base64 DSL は Ogg Opus を要求し、コンテナー変換はしません。
aacaudio/aac。実際の格納形式と再生環境を確認してください。
flacaudio/flac。可逆圧縮で大きくなる場合があります。
wavaudio/wav。コンテナーヘッダーあり。サンプル仕様は上流によります。
pcmapplication/octet-stream。ヘッダーなし。サンプルレート、ビット深度、チャンネル、エンディアンを確認してください。拡張子変更だけでは WAV になりません。

ネイティブは MIME とバイト列を保持します。Base64 は MIME を設定するだけで、再エンコードやコーデック検証はしません。非 SSE 経路は最初にバッファリングする場合があり、即時のバイト単位転送を保証しません。

curl -N https://api.inoneapi.com/v1/audio/speech \
  -H "Authorization: Bearer $INONEAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"YOUR_MODEL_ID","input":"Hello!","voice":"REPLACE_WITH_SUPPORTED_VOICE","stream_format":"sse"}'

SSE は text/event-stream です。上流イベントと音声断片を解析し、SSE テキスト全体を MP3 として保存しないでください。DSL は 400 PROTOCOL_STREAM_UNSUPPORTED を返します。

エラー詳細

エラー対応
400 INVALID_REQUEST_BODY必須値、型、speed、列挙値を確認し、stream を削除します。
400 PROTOCOL_TRANSFORM_FAILED必須マッピング値がない、または未知の列挙値です。
400 AUDIO_FORMAT_UNSUPPORTED固定形式との不一致。形式省略時は mp3。
401/403キー、権限、モデル制限を確認します。
429Retry-After、レート制限、予算に従います。
502 PROTOCOL_RESPONSE_TRANSFORM_FAILEDJSON/Base64/パスが不正、またはバッファー超過です。

上流エラーには成功時の変換を適用しません。タイムアウト時でも生成・課金済みの場合があるため、無制限に再試行しません。秘密や機密テキストではなく X-Gateway-Trace-ID を保存してください。URL 取得、再エンコード、タスク照会は非対応です。

成功時の MIME は通常 audio/mpeg、audio/ogg、audio/aac、audio/flac、audio/wav、PCM の application/octet-stream です。ネイティブプロバイダーでは SSE を利用できますが、request DSL と Base64 抽出は非対応です。400 は入力またはマッピング、429 は Retry-After、502 は変換失敗または既定 32 MiB のバッファー超過です。

マッピング管理で音声 API と audio_path を設定します。ネイティブは既定で有効で、無効にすると request DSL と audio_response を編集できます。完全な AI 生成規約、fixture、境界、計量は docs/audio-protocol-dsl.md と docs/audio-protocol-dsl.schema.json を参照してください。

設定検証と課金

テストは構造検証と cURL 例の生成のみで、上流を呼び出しません。ネイティブは {"version":1} を保存します。音声では汎用 response/retrieve JSON ステージを使いません。

計量と課金は別の設定です。Base64 は元の JSON usage を参照し、デコード後のバイト列は参照しません。バイナリーには通常 JSON usage がありませんが、欠損は無料を意味しません。現在の計量 DSL は文字列長や音声秒数を計算しないため、文字数・秒数課金には信頼できる上流メーターか専用アダプターが必要です。バッファー上限には JSON/Base64 の増加分が含まれ、並行処理ではデコード後のメモリも考慮します。

オンライン体験

Playground とモデル詳細の「今すぐ試す」では音声出力、ボイス、MP3/WAV/Opus/AAC/FLAC を選択し、結果を再生・保存できます。モデルが選択したボイスと形式に対応している必要があります。固定形式の audio_response DSL には同じリクエスト形式を指定してください。未加工 PCM の再生には対応せず、音声レスポンスは Chat JSON ではなく音声バイトとして扱います。

音声生成 · ドキュメント · InOneAPI