Skip to main content
本稿では Fish Model API の接続説明を紹介します。本インターフェースは Fish Audio 公式 OpenAPI と完全互換で、以下を含みます:
  • POST /fish/model:音声サンプルに基づいて新しいクローン音色(Voice Model)を作成します。
  • GET /fish/model:現在のアカウントまたは全プラットフォームで閲覧可能な音色リストをページネーションで取得します。

申請手順

API を使用するには、まず Fish Model API の対応ページでサービスを申請してください。ページにアクセス後、「Acquire」ボタンをクリックします。 まだログインまたは登録していない場合は、自動的にログインページにリダイレクトされ、登録およびログインを促されます。ログイン・登録後は自動的に元のページに戻ります。 初回申請時には無料クレジットが付与され、この API を無料で利用可能です。

公式 API との違い

  • 認証方式Authorization: Bearer {token} を使用し、{token} は本プラットフォームで申請したキーです。
  • モデル作成時のサンプルアップロード:本インターフェースは現在 JSON 形式での提出のみ対応し、voices フィールドで音声サンプルの URL を渡します。Fish 公式は multipart/msgpack によるバイナリ直接アップロードをサポートしていますが、本プラットフォームでは未実装です。URL 形式は約 80% の一般的なケースをカバーします。
  • レスポンス構造POST /fish/modelGET /fish/model は Fish 上流のレスポンスをそのまま透過し、プラットフォームのエンベロープ包装は行いません。エラー時は {success:false, error:{code,message}, trace_id} のプラットフォーム標準構造を使用します。

音色作成(POST /fish/model)

最小限の作成リクエストには titlevoices の2つのフィールドが必要です。voices は音声サンプルの URL リストで、各ファイルは30秒以上、サンプリングレート16k以上を推奨します。
成功レスポンスは Fish プラットフォームの ModelEntity オブジェクトを直接返します:
返却される _id は、後続の POST /fish/ttsreference_id フィールドの値として使用でき、このクローン音色を用いた音声合成に利用可能です。

音色リストの取得(GET /fish/model)

利用可能なクエリパラメータ(Fish 公式と同一):
  • page_size:1ページあたりの件数、デフォルトは10。
  • page_number:ページ番号、1から開始。
  • title:タイトルによるあいまい検索。
  • tag:タグによるフィルタリング。
  • selftrue を渡すと現在のアカウントが作成した音色のみ返す。
  • author_id:作成者によるフィルタリング。
  • language:音色の言語によるフィルタリング。
  • title_language:タイトルの言語によるフィルタリング。
成功レスポンスも Fish プラットフォームのページネーション構造をそのまま透過します:

課金について

本インターフェースは「音色作成時」(POST /fish/model かつリクエストボディに voices フィールドがある場合)のみ課金対象で、「音色リスト取得」(GET /fish/model)は課金されません。

エラー処理

  • 400 token_mismatched:不正なリクエスト、パラメータ不足や不正の可能性があります。
  • 400 api_not_implemented:不正なリクエスト、パラメータ不足や不正の可能性があります。
  • 401 invalid_token:認証エラー、トークンが無効または欠如しています。
  • 429 too_many_requests:リクエスト過多、レート制限を超過しています。
  • 500 api_error:サーバ内部エラー、何らかの問題が発生しました。

エラー応答例

結論

Fish Model API は Fish Audio 公式 OpenAPI の ModelEntity インターフェースと完全互換であり、既存のクローン音色管理コードをゼロコード変更で移行可能です。作成した音色の _id はそのまま Fish TTS APIreference_id フィールドに渡して音声合成に利用できます。