音声合成

POST /v1/audio/speech が返すのは JSON ではなく音声そのものです。ボディはエンコード済みのファイルで、Content-Type は response_format に従います(mp3 なら audio/mpeg)。重要なフィールドは model・input・voice で、speed と instructions は任意です。声の名前はモデルごとに公開されています。レスポンスはそのままファイルに書き出してください。テキストとしてデコードすると壊れます。

POST /v1/audio/speech
curl https://api.chinaapi.ai/v1/audio/speech \
  -H "Authorization: Bearer $CHINAAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "step-tts-2",
    "input": "ChinaAPI text to speech verification.",
    "voice": "cixingnansheng",
    "response_format": "mp3"
  }' \
  --output speech.mp3

# HTTP 200, Content-Type: audio/mpeg
音声クローン

step-tts-2

stepaudio-2.5-tts も同じです。どちらも約 10 秒の参照音声から声をクローンでき、感情や話し方は自然言語で指示します。

高音質

speech-2.8-hd

speech-2.8-turbo も同じです。hd はこのエンドポイントで最も忠実度が高く、価格もそれに応じます。turbo はその一部を遅延と引き換えにし、料金はおよそ半分です。

多言語

qwen3-tts-flash

glm-tts も同じです。どちらも多言語対応でクローン系より安いので、特定のクローン音声が要らないときの既定候補になります。

デフォルト音色 voice は省略して構いません。モデルごとに既定値を代わりに送ります — qwen3-tts-flash は Cherry、glm-tts は tongtong、step-tts-2・stepaudio-2.5-tts は cixingnansheng、mimo-v2.5-tts と speech-2.8 系は alloy です。OpenAI の音色名はどのモデルでも受け付けます。国産 TTS では拒否されず、そのモデルの既定値に折り畳まれるので、既存の OpenAI クライアントをこのエンドポイントに向けるだけでそのまま動きます。ここに挙げたのは既定値であって全一覧ではありません — 各ベンダーはさらに多くを公開しています。2 つの派生モデルは音色名を取りません:mimo-v2.5-tts-voiceclone は voice に data URL 形式の参照音声を、mimo-v2.5-tts-voicedesign は instructions に音色の説明を受け取ります。
ヒント 課金は input の文字数を 1 文字 1 トークンとして数えるため、送信前に費用が分かります。生成された音声も 1 分 1000 トークンの換算で計測され補完トークンとして記録されますが、その倍率は 0 です — 59 文字のリクエストで約 5 秒の音声を生成した実測では、プロンプト 59 トークン・補完 83 トークンが記録され、課金は 59 の側でした。句読点と空白も文字として数えます。