DEV Community

Cover image for Fish Audio S2 API 使い方完全ガイド:Apidog連携
Akira
Akira

Posted on • Originally published at apidog.com

Fish Audio S2 API 使い方完全ガイド:Apidog連携

Fish Audio S2 APIは、1000万時間分の音声でトレーニングされた40億パラメータのモデルを搭載した、本番環境レベルのテキスト読み上げREST APIです。音声クローン、ストリーミング、50以上の言語をサポートしています。リクエストの送信、リファレンスの管理、単体テストの実行など、Fish Audio S2 APIを効率的に使用するには、Apidogがすべてのエンドポイントを探索し、ドキュメント化し、検証するための最速の方法です。

今すぐApidogを試そう

はじめに

AI生成音声は閾値を越えました。現代のTTSモデルはもはやロボットのように聞こえることはなく、ささやき、笑い、文中でトーンを変化させます。Fish Audio S2 APIは、この変化の最前線に位置しています。これは、1000万時間以上の多言語音声でトレーニングされた40億パラメータのモデルで、人間の録音と区別がつかないほどの音声を生成できます。

ポッドキャスト自動化ツール、対話型音声アシスタント、リアルタイムダビングパイプラインを構築する場合でも、Fish Audio S2 APIをスタックに統合するには、単一のPOSTリクエスト以上のものが必要です。認証、参照音声管理、ストリーミング動作、そして本番環境でサイレントに統合が壊れないように信頼性の高い単体テストを作成する方法を理解することが重要です。

💡最初のFish Audio S2 API呼び出しを行う前に、Apidogを無料でダウンロードしてください。感情タグ、ストリーミングチャンク、音声クローンペイロード、バイナリ音声レスポンスをコード不要で数秒で視覚的にテストできます。モック、検証、インラインで聞くことで、TTS統合が初日から完璧に機能するようにします。

Fish Audio S2 APIとは?

Fish Audio S2 APIは、Dual-Autoregressive (Dual-AR) アーキテクチャを中心に構築されたオープンソースのTTSシステムであるFish Speech S2-ProへのHTTPインターフェースです。このモデルは、意味生成(4Bパラメータ、時間軸に沿った低速AR)と残差コードブック生成(400Mパラメータ、深さ軸に沿った高速AR)を分離し、単一のNVIDIA H200で0.195のリアルタイムファクターで高品質な合成を可能にします。

Fish Audio S2 APIの主な機能:

機能 詳細
言語 約50言語(英語、中国語、日本語、韓国語、アラビア語、フランス語、ドイツ語など)
音声クローン 10〜30秒の参照音声、ファインチューニング不要
インライン感情制御 自然言語タグ: [laugh] [whispers] [super happy]
複数話者生成 ネイティブな <|speaker:i|> トークンサポート
ストリーミング  "streaming": true によるリアルタイムチャンク音声
出力形式 WAV、MP3、PCM
認証 ベアラートークン(Authorization: Bearer YOUR_API_KEY

ローカル展開後のFish Audio S2 APIのベースURLはhttp://127.0.0.1:8080です。すべてのエンドポイントは/v1/名前空間の下にあります。

Fish Audio S2 APIとApidogを始める

Fish Audio S2 APIの前提条件

Fish Audio S2 APIをすぐに使い始めるには、Fish Speech S2-Proサーバーを起動し、バイナリ音声レスポンスを処理できるAPIクライアントを用意する必要があります。

Fish Audio S2 APIサーバーの起動例:

python tools/api_server.py \
  --llama-checkpoint-path checkpoints/s2-pro \
  --decoder-checkpoint-path checkpoints/s2-pro/codec.pth \
  --listen 0.0.0.0:8080 \
  --compile \
  --half \
  --api-key YOUR_API_KEY \
  --workers 4

--compiletorch.compile最適化を有効化し推論を高速化、--halfでFP16によりGPUメモリ削減が可能です。

サーバー起動後、ヘルスチェックで正常応答を確認します:

curl http://127.0.0.1:8080/v1/health
# {"status":"ok"}

ApidogでのFish Audio S2 APIの設定

Apidogを無料でダウンロードし、新しいHTTPプロジェクトを作成します。EnvironmentsでベースURL http://127.0.0.1:8080を追加し、グローバルヘッダーに

Authorization: Bearer YOUR_API_KEY

を設定してください。これにより、すべてのFish Audio S2 APIリクエストに自動的にトークンが適用されます。複数環境(開発/本番)の切り替えも容易です。

Apidogで最初のFish Audio S2 APIリクエストを作成する

Fish Audio S2 APIテキスト読み上げエンドポイントのテスト

ApidogでPOST /v1/ttsリクエストを作成し、以下のJSONボディをセットします。

{
  "text": "Hello! This is a test of the Fish Audio S2 API.",
  "format": "wav",
  "streaming": false,
  "temperature": 0.8,
  "top_p": 0.8,
  "repetition_penalty": 1.1,
  "max_new_tokens": 1024
}

TTSリクエストの主なパラメータ:

(省略:テーブル内容そのまま)

ApidogのSendをクリックすると、Fish Audio S2 APIは生音声バイトを返し、Apidogが自動的にaudio/wavレスポンスをインライン再生します。クライアントコードは不要です。

Fish Audio S2 APIによる音声クローン

Apidogを介してFish Audio S2 APIに参照音声をアップロードする

POST /v1/references/addにbase64エンコードした音声とトランスクリプトを送信し、参照IDを作成します。

{
  "id": "my-voice-clone",
  "text": "This is the reference transcription matching the audio.",
  "audio": "<base64-encoded-wav-bytes>"
}

ApidogではBinaryまたはForm Dataで音声ファイルをアップロードできます。レスポンス例:

{
  "success": true,
  "message": "Reference added successfully",
  "reference_id": "my-voice-clone"
}

TTSリクエストでreference_idを渡せばクローン音声で合成されます。

{
  "text": "This sentence will be spoken in the cloned voice.",
  "reference_id": "my-voice-clone",
  "format": "mp3"
}

ApidogのReference Managementでテンプレート化し、複数クローン音声のテストも簡単です。

Fish Audio S2 API統合の単体テスト方法

Fish Audio S2 APIに単体テストが重要な理由

予期しないエラー(存在しない参照ID、温度値の範囲外、ストリームの誤処理、フォーマット不一致など)は、単体テストで早期検出しましょう。

PythonでFish Audio S2 APIの単体テストを書く

import pytest
import httpx
import base64

BASE_URL = "http://127.0.0.1:8080"
API_KEY = "YOUR_API_KEY"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}


class TestFishAudioS2API:
    """Fish Audio S2 APIエンドポイントの単体テスト。"""

    def test_health_check(self):
        response = httpx.get(f"{BASE_URL}/v1/health", headers=HEADERS)
        assert response.status_code == 200
        assert response.json()["status"] == "ok"

    def test_tts_basic_request(self):
        payload = {
            "text": "Unit test: verifying Fish Audio S2 API TTS output.",
            "format": "wav",
            "seed": 42,
        }
        response = httpx.post(
            f"{BASE_URL}/v1/tts",
            json=payload,
            headers=HEADERS,
            timeout=60,
        )
        assert response.status_code == 200
        assert response.headers["content-type"] == "audio/wav"
        assert len(response.content) > 1000

    def test_tts_invalid_temperature_raises_error(self):
        payload = {"text": "test", "temperature": 99.0}
        response = httpx.post(
            f"{BASE_URL}/v1/tts",
            json=payload,
            headers=HEADERS,
            timeout=30,
        )
        assert response.status_code == 422

    def test_reference_add_and_list(self):
        with open("test_reference.wav", "rb") as f:
            audio_b64 = base64.b64encode(f.read()).decode()

        add_response = httpx.post(
            f"{BASE_URL}/v1/references/add",
            json={
                "id": "unit-test-voice",
                "text": "This is a unit test reference audio.",
                "audio": audio_b64,
            },
            headers=HEADERS,
        )
        assert add_response.json()["success"] is True

        list_response = httpx.get(
            f"{BASE_URL}/v1/references/list", headers=HEADERS
        )
        assert "unit-test-voice" in list_response.json()["reference_ids"]

        httpx.request(
            "DELETE",
            f"{BASE_URL}/v1/references/delete",
            json={"reference_id": "unit-test-voice"},
            headers=HEADERS,
        )

テストは次のコマンドで実行します:

pytest test_fish_audio_s2_api.py -v

ApidogでFish Audio S2 APIの単体テストを実行する

Python不要で単体テストを自動化したい場合、Apidogのテストシナリオ(自動テスト)を使います。

  1. Fish Audio S2 APIコレクションを開く
  2. テストシナリオ新規シナリオ作成
  3. ヘルスチェック→TTS→参照追加→参照リストの順にリクエスト追加
  4. TTSリクエストのアサーションにステータス200、content-type=audio含む、レスポンスタイム&LT;30sを設定
  5. 実行を押してテストシーケンスを実行

Apidogは合否レポートを生成し、CIトリガーでの自動実行/エクスポートも可能です。APIテストフレームワークのセットアップは不要です。

Fish Audio S2 APIの高度な機能

Fish Audio S2 APIからのオーディオストリーミング

ストリーミング用途には"streaming": trueを指定します。

import httpx

with httpx.stream(
    "POST",
    "http://127.0.0.1:8080/v1/tts",
    json={
        "text": "Streaming audio from the Fish Audio S2 API in real time.",
        "format": "wav",
        "streaming": True,
    },
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    timeout=None,
) as response:
    with open("streamed_output.wav", "wb") as audio_file:
        for chunk in response.iter_bytes(chunk_size=4096):
            audio_file.write(chunk)

合成完了前に即座に音声バイトが返り、初回反応は約100ms。ライブ音声アプリケーションに最適です。

Fish Audio S2 APIによるインライン感情制御

textフィールドに感情タグを直接記述することで、プロソディや表現をコントロール可能です。

{
  "text": "[whispers] The secret is hidden here. [super happy] I found it!",
  "format": "wav"
}

例:[laugh][cough][pitch up][professional broadcast tone][whisper in small voice] など。

結論

Fish Audio S2 APIは、RESTエンドポイント経由で本番TTSエンジンをすぐに利用可能にします。ゼロショット音声クローンやストリーミングなど、音声生成ワークフロー全体を6つのエンドポイントでカバー。信頼性の高い統合のためには、サンプリングパラメータの最適化、参照音声管理、単体テストの自動化が必須です。

Apidogを使えば、Fish Audio S2 APIへのリクエスト送信からレスポンスの再生、クライアントコード生成、単体テスト自動化まで、2分で完了します。API仕様の共有や自動ドキュメント生成もワンクリックで実現。Apidogを無料でダウンロードし、Fish Audio S2 APIコレクションをインポートして今すぐテストを始めましょう。

よくある質問

Fish Audio S2 APIとは何ですか? Fish Audio S2 APIは、1000万時間分の音声でトレーニングされた40億パラメータのテキスト読み上げモデルであるFish Speech S2-ProへのRESTインターフェースです。/v1/下のHTTPエンドポイントを介して、音声クローン、ストリーミング、感情制御、50以上の言語をサポートしています。

Fish Audio S2 APIで認証するにはどうすればよいですか? すべてのリクエストヘッダーにBearerトークンを送信します: Authorization: Bearer YOUR_API_KEY。APIキーは、サーバー起動時に--api-keyフラグを介して設定されます。Apidogでは、このトークンを環境レベルで保存できるため、すべてのFish Audio S2 APIリクエストに自動的に適用されます。

コードを書かずにFish Audio S2 API統合の単体テストを行うことはできますか? はい、できます。Apidogのテストシナリオ機能を使用すると、視覚的なインターフェースを通じて、任意のFish Audio S2 APIエンドポイントに対して単体テストを構築および実行できます。アサーション(ステータスコード、応答時間、ヘッダー値)を定義すると、ApidogがそれらをオンデマンドまたはCIスケジュールで実行します。テストフレームワークのセットアップは不要です。

Fish Audio S2 APIはどの音声形式をサポートしていますか? Fish Audio S2 APIは、WAV、MP3、またはPCM形式で音声を返します。TTSリクエストボディの"format"フィールドで形式を指定します。WAVがデフォルトです。

Fish Audio S2 APIで音声クローンはどのように機能しますか? 10〜30秒の参照オーディオクリップと、そのトランスクリプトをPOST /v1/references/addにアップロードします。次に、"reference_id"を介して、任意のTTSリクエストに参照IDを渡します。Fish Audio S2 APIは、ファインチューニングや追加のモデルトレーニングなしでその音声をクローンします。

Fish Audio S2 APIのリアルタイムファクターはどのくらいですか? 単一のNVIDIA H200では、Fish Audio S2 APIはストリーミングを有効にした状態で0.195のRTF(リアルタイムファクター)を達成します。これは、1秒の計算で約5秒の音声を生成することを意味します。初回音声までの時間は約100msです。

ApidogでFish Audio S2 APIのレスポンスをテストするにはどうすればよいですか? Fish Audio S2 APIがバイナリ音声を返すと、Apidogは自動的にインラインオーディオプレーヤーをレンダリングします。出力を検証するためにファイルをローカルに保存する必要はありません。同じApidogリクエストパネルから、聞いたり、レスポンスヘッダーを確認したり、アサーションを追加したりできます。

Top comments (0)