Fish Audio: S2 Pro
Fish Audio S2 Proは、単語単位の指示とネイティブの複数話者対話に対応し、表現豊かな多言語音声を作ります。角括弧の指示で台本内の読み方を制御し、参照音声で話者を識別し、出力設定で音声成果物を整えます。
モデルについて
この説明はモデルの機能を紹介するものです。Ailootで利用できる入力、出力、オプションは、選択したメソッドごとに以下に記載されています。
S2 Proは、表現豊かなナレーション、キャラクターの対話、会話型の音声出力向けの、Fish Audioの第2世代テキスト音声合成モデルです。台本を音声に変換し、単語やフレーズ単位の自然言語による指示に対応します。前世代のS1は丸括弧の指示を使いますが、S2 Proは角括弧をネイティブに使い、1回の合成リクエストで複数話者に対応します。メーカーは、別途カスタマイズするためのS2 Proの重みとファインチューニングコードを公開しています。通常の音声リクエストは新しいモデルを訓練せず、選択したモデルを使います。
まず発話の内容を書き、影響させたい単語やフレーズの直前に読み方の指示を置きます。ささやき、反応、間、感情の変化、自由な話し方などを指示できます。短い製品説明では、事実を伝える文を明確にし、聞き手に違いを認識してほしい箇所だけを強調します。キャラクターのセリフでは、全体を固定した気分にするより、感情が変わる瞬間にその変化を記述してください。
角括弧のタグは、固定メニューではなく自由な描写です。例として[whispering]、[sigh]、[long pause]、[speaking slowly, almost hesitant]などがあります。タグは文中にも置け、その後の発話に作用します。描写タグの後には実際のテキストが必要で、指示だけでは予測しにくい出力になる場合があります。競合するタグが意図した演技を分かりにくくするため、重ねる前に役立つ指示を1つか2つから始めます。同じ指示でも、参照音声によって反応の強さが変わります。
S2のリリースでは約80言語への対応が説明され、台本と同じ言語で読み方の指示を書く例が示されています。読み上げる言語で文面を用意し、特定の読み方が必要な名前、単位、略語を保持してください。多言語ナレーションでは、台本の言語を変えても意図した声を維持できますが、完成音声では発音と一貫性を聴いて確認する必要があります。合成は与えた内容を音声にする処理であり、アプリケーションが何を伝えるかを決める処理ではありません。
話者が1人の場合は、保存済みの音声識別子を選ぶか、参照音声と対応する文字起こしを渡します。提供元は、即時のコンディショニングに雑音の少ない10~30秒のサンプルを推奨しています。対話では、<|speaker:0|>や<|speaker:1|>などの話者マーカーと、順序付きの音声識別子リスト、または話者別の参照グループを使います。番号付きマーカーは対応する音声の項目を選ぶため、会話の進行中も順序を固定します。自然言語の演技指示と話者の選択は、台本の中で異なる役割を持ちます。
音声はMP3、WAV、raw PCM、Opusで出力できます。MP3の既定は128 kbpsで、64または192 kbpsも選べます。Opus出力は48 kHzを使用し、WAVとPCMは16ビットのモノラルで、記載されたサンプルレートの選択肢に対応します。ナレーションとして保存するファイル、再生に適した音声チャンクなど、実際の用途に合わせて形式を選びます。提供元の音声ワークフローには、台本が順次届く場合のライブテキストストリーミングもあります。生成結果は台本全体と選択した声に結び付けて保持してください。
速度は0.5~2.0の範囲で調整でき、音量と出力ラウドネス正規化も制御できます。テキスト正規化は、英語と中国語の数値の読み上げを改善します。処理は100~300の範囲のチャンクと、チャンクごとの音声トークン予算を使うため、これらの設定をナレーション全体の固定された最大長と解釈してはいけません。前のチャンクのコンディショニングで、声の文脈を次の区間へ引き継げます。temperatureやtop-pなどのサンプリング制御は変化の幅に影響します。演技を明確に指示した1行でも、意図した音を作るためには十分なテキストと文脈が必要です。
制作の依頼では、ナレーション、対話、読み方の指示を分け、成果物の声と形式を示すと役立ちます。語の欠落、音声の重複、数値の読み方、話者の切り替え、反応のタイミングを聴いて確認してください。タグを増やせばすべてが良くなると考えず、不一致の原因となる行や参照音声を修正します。S2 Proは前世代の独立したS2モデルであり、S2.1 Proは独自の改善とモデル固有の設定動作を持つ後の版です。
Ailoot Ultra · 音声 POST /v1/audio/speech fish-audio/s2-pro
fish-audio/s2-proはじめに
Fish Audio S2 Proは、単語単位の指示とネイティブの複数話者対話に対応し、表現豊かな多言語音声を作ります。角括弧の指示で台本内の読み方を制御し、参照音声で話者を識別し、出力設定で音声成果物を整えます。
- 対応する入力
- テキスト
- 結果
- 音声
Ailootで利用可能 · 入力とメソッド
Ailoot Ultra · 音声 POST /v1/audio/speech
- 入力の種類
text- 出力の種類
audio
| フィールド | 種類 | 要件 | 値と制限 | デフォルト |
|---|---|---|---|---|
フィールドmodel | 種類string | 要件必須 | 値と制限 fish-audio/s2-pro | デフォルト— |
フィールドinput | 種類string | 要件必須 | 値と制限 最小の長さ: 1 | デフォルト— |
フィールドvoice | 種類string | 要件必須 | 値と制限 b347db033a6549378b48d00acb0d06cd 最小の長さ: 1 | デフォルト— |
フィールドresponse_format | 種類string | 要件任意 | 値と制限 mp3, pcm | デフォルトpcm |
フィールドprovider | 種類object | 要件任意 | 値と制限 | デフォルト— |
メソッドのパラメータとライフサイクル
| パラメータ | 仕様 |
|---|---|
パラメータcontent_type | 仕様application/json |
パラメータrequired | 仕様model, input, voice |
パラメータmaterial_types | 仕様text |
ライフサイクル: synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · 実際に返された task_id またはメディアライブラリのレコード
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
料金
料金情報はリクエストの機能を追加しません。対応するパラメーターは選択したメソッドに記載されています。
- 高速モード
- 未指定 高速モードが選択されている場合
- Flex モード
- 未指定 flex モードが選択されている場合
- 最大推論量
- 未指定 推論量が最大で、調整に既定値(default)を使用する場合
Ailootの料金
設定別の価格
各料金を表示された条件と照合してください。選択肢となる設定の各組には、いずれか1つの料金を適用します。
| 設定 | 料金表 | 課金単位 | 料金 |
|---|---|---|---|
| 設定基本トークン料金 | 料金表基本料金 | 課金単位— | 料金 入力 · 入力トークン — / 1K トークン 出力 · 出力トークン — / 1K トークン 入力 · キャッシュ読み取り — / 1K トークン 入力 · キャッシュ書き込み — / 1K トークン 入力 · キャッシュ書き込み、1時間 — / 1K トークン |
| 設定入力UTF-8バイト | 料金表— | 課金単位入力UTF-8バイトあたり | 料金 入力 · 入力UTF-8バイト $0.00003 入力UTF-8バイトあたり |
Ailootはリクエスト前に見積額を確保します。結果の取得後、実測使用量に基づいて最終料金を精算します。ストリーミング時の精算には最終の使用量記録を使用します。金額の確保と精算の仕組み →
リクエスト例
Ailoot Ultra · 音声
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_INPUT_TEXT:?Set the actual documented input value}"
export AILOOT_INPUT_TEXT
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
request={'model': 'fish-audio/s2-pro', 'input': '${ACTUAL_INPUT_TEXT}', 'voice': 'b347db033a6549378b48d00acb0d06cd', 'response_format': 'mp3'}
request['input']=os.environ['AILOOT_INPUT_TEXT']
Path('request.json').write_text(json.dumps(request,ensure_ascii=False),encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o response.bin
# Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.
結果を受け取って保存
Ailoot Ultra · 音声
完全なバイナリ音声、または元のaudio_urlレスポンス、ヘッダー、およびすべての所有アセット。
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
その他のコンテンツ取得
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \
-H "Authorization: Bearer $AILOOT_API_KEY" -o owned-assets.json
# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.
完了した結果をすべて保存
返された完全なレスポンス、ファイル、コンテンツ部分をすべて保存してください。
レスポンスとヘッダーの全体、実際の出力すべて、最初に返された識別子、使用量フィールドすべてを保存してください。作成リクエストを再送せずに、元の操作を復旧してください。
元のレスポンスを確認する場合
照合のため、返された X-Client-Request-ID を保存してください。実際に返された task_id/asset_id の値、または自分が所有するメディアライブラリだけを使って読み取ってください。操作 ID からタスクの URL を組み立てたり、作成リクエストを再送したりしないでください。
エイリアス
モデルのエイリアス
Ailoot Ultra fish-audio/s2-pro
メソッドパスのエイリアス
上記に表示されたメソッドパスを使用してください。
関連する呼び出し用ID
FAQ · Fish Audio: S2 Pro
- 利用できる入力と結果は何ですか?
POST /v1/audio/speech·fish-audio/s2-pro:text→audio- リクエストはどの項目を使用しますか?
POST /v1/audio/speech·fish-audio/s2-pro:model,input,voice,response_format,provider