Skip to main content
本インターフェースは Fish Audio 公式 TTS API に基づいており、認証方式(このプラットフォームのトークンを使用)と非同期コールバック(callback_url 拡張)に違いがあります。リクエストボディの構造は上流と一致しています。アドレスは POST https://api.acedata.cloud/fish/tts です。

申請プロセス

Fish TTS API を使用するには、まず Ace Data Cloud コンソール で API トークンを取得し、保管してください。 まだログインまたは登録していない場合、自動的にログインページにリダイレクトされ、登録とログインを促されます。完了後、現在のページに自動的に戻ります。 1つの API トークンでプラットフォームのすべてのサービスを呼び出すことができ、各サービスごとに個別に申請する必要はありません。 初回申請時には無料枠が付与され、無料で体験できます。枠が不足した場合は、コンソール で共通残高をチャージできます。
📘 完全なドキュメント:Fish TTS API →

リクエストヘッダー

リクエストボディフィールド

フィールド名は上流と完全に一致しています。callback_url を除き、他のフィールドの意味と値は Fish 公式 TTS ドキュメント を参照してください。

例 1:最小リクエスト(text + format=mp3

返却(実測):
audio_url はこのプラットフォームの CDN を指し、直接 GET でダウンロードするか <audio> で再生できます。リンクは長期間使用可能ですが、自分のストレージにもコピーを残すことをお勧めします。

例 2:クローン音色 reference_id の使用

以下は Fish プラットフォーム上の公開されたスペイン語音色を使用しています(_idFish Model Query で取得できます):
返却(実測):

例 3:スピード / 音量の調整(prosody

返却(実測):
speed が 1 より大きいと速くなり、1 より小さいと遅くなります;volume の単位は dB で、0 は変わらず、正数は増加、負数は減少を示します。

例 4:モデルの切り替え + ビットレートの制御

HTTP ヘッダー model: s1 で安定型モデルに切り替え、リクエストボディに mp3_bitrate: 128 を追加して MP3 ビットレートを制御します:
返却(実測):

例 5:PCM 生波形

ブラウザでリアルタイムに接続したり、クライアントで後処理(ミキシング、速度変更)を行うシーンでは、pcmの使用を推奨します:
返却(実測):
リンクの拡張子はリクエスト内のformatに従います:mp3.mp3を取得し、wavpcm.wavを取得します(WAVコンテナ、16ビットPCM)。

非同期コールバック(callback_url

長いテキストの合成には数秒から数十秒かかることがあり、接続が中断された場合は再試行が必要です。リクエストボディにcallback_urlを渡すと、インターフェースはすぐに{task_id, started_at}を返します。上流で実際に完了した際に、完全な結果をPOST JSON形式でそのURLにコールバックし、リクエストボディには同じtask_idを含めます。
即時返却(実測):
後でcallback_urlは次のような形で受け取ります:
また、Fish Tasks APIを使用してtask_idに基づいて結果をプルすることもできます。詳細はその文書を参照してください。

エラーハンドリング

  • 400 token_mismatched:リクエストパラメータが欠落または不正(最も一般的なのはtextが空であるか、formatmp3/wav/pcm以外の値が渡された場合)。
  • 401 invalid_token:認証トークンが存在しないか無効。
  • 429 too_many_requests:アカウントのレート制限が発動。
  • 500 api_error:サーバー内部エラー。
エラー応答の例:
パラメータ検証エラーは、上流のpydanticのエラーメッセージをmessageフィールドに配置し、どのフィールドが不正であるかを特定しやすくします。例えば:

結論

Fish TTSを接続する最小コストは、既存のapi.fish.audio/v1/ttsを呼び出すコードで認証をこのプラットフォームのトークンに置き換え、リクエストボディに明示的にformat: "mp3"を含めることです。長文シーンではcallback_urlの非同期コールバックを使用することをお勧めします;クローン音色reference_idの発見については、Fish Model QueryFish Model Getを併用してください。