Fish Audio: S2 Pro
Fish Audio S2 Pro 可依逐字指示產生富有表現力的多語言語音與原生多說話者對話。方括號指示控制腳本內的表現,聲音參考識別說話者,輸出設定則決定音訊成果的形式。
關於模型
此說明介紹模型的能力。Ailoot 可用的輸入、輸出與選項,依所選方法列於下方。
S2 Pro 是 Fish Audio 第二代文字轉語音模型,用於富有表現力的旁白、角色對話與對話語音輸出。它將書面腳本轉為音訊,並支援單字或片語層級的自然語言指示。前一代 S1 使用圓括號提示,S2 Pro 則原生使用方括號,且可在一次合成請求中支援多名說話者。開發商另釋出 S2 Pro 權重與微調程式碼,供獨立的客製化工作使用;一般語音請求使用選定模型,不會訓練新模型。
先撰寫口語內容,再將表現指示放在應受影響的字詞或片語正前方。指示可描述耳語、反應、停頓、情緒轉變或開放式說話風格。短產品解說應保持事實句清楚,只在希望聽眾注意差異之處加重語氣。角色台詞應在情緒轉折發生的位置描述變化,而非讓整段維持同一種固定情緒。
方括號標籤是開放領域描述,並非封閉選單。例如 [whispering]、[sigh]、[long pause],或 [speaking slowly, almost hesitant] 這類片語。標籤可出現在句中,並影響後續語音。描述性標籤後須接實際文字;單獨的指示可能產生難以預期的輸出。先從一、兩個有用指示開始,再增加層次,因為相互衝突的標籤可能掩蓋預期表現。不同聲音參考對同一指示可能有不同強度的反應。
S2 發行說明涵蓋約 80 種語言,並舉例以腳本使用的同一語言撰寫表現指示。應以實際要說出的語言準備措辭,並保留需特定讀法的名稱、單位與縮寫。多語言旁白可在更換腳本語言時保留預期聲音,但最終成果仍須聆聽發音與連貫性。合成是把提供的內容轉為語音,而不是決定應用程式該說哪些資訊。
單一說話者可選用已儲存的聲音識別碼,或提供參考音訊及對應逐字稿。開發商建議使用乾淨的 10–30 秒樣本進行即時條件設定。對話則使用 <|speaker:0|> 與 <|speaker:1|> 等說話者標記,搭配依序排列的聲音識別碼清單,或各說話者獨立的參考群組。數字標記選取對應聲音項目;對話發展時應維持固定順序。自然語言表現指示與說話者選擇在腳本中各有用途。
音訊可輸出為 MP3、WAV、原始 PCM 或 Opus。MP3 預設 128 kbps,也提供 64 或 192 kbps;Opus 使用 48 kHz,WAV 與 PCM 則以 16 位元單聲道支援文件所載的取樣率選項。依實際用途選擇格式:旁白使用保存的檔案,播放則使用適合的音訊區塊。開發商的語音流程也說明腳本陸續到達時的即時文字串流。生成成果應持續與完整腳本及所選聲音關聯。
語速可在 0.5 與 2.0 之間調整,並提供音量與輸出響度正規化控制。文字正規化可改善英文與中文數字的朗讀。處理採用 100–300 範圍的區塊,以及每區塊音訊 token 預算,因此不應將這些設定理解成整段旁白的固定最大長度。以前一區塊作為條件,可將聲音上下文帶入下一段。temperature 與 top-p 等取樣控制會影響變化程度;即使已明確指導某句表現,仍需足夠文字與上下文來承載預期聲音。
實用的製作簡報應區分旁白、對話與表現指示,再說明成果的聲音與格式。聆聽是否有漏字、重複音訊、數字發音、說話者切換,以及反應時間問題。修改造成落差的台詞或聲音參考,不要假設增加標籤能改善每一段。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 費率
各設定的價格
請逐一核對各項費用與所列條件。每組互為替代選項的設定只套用一種費率。
| 設定 | 費率表 | 計費單位 | 費用 |
|---|---|---|---|
| 設定基礎 token 費率 | 費率表基本費率 | 計費單位— | 費用 輸入 · 輸入 Token — / 1K Token 輸出 · 輸出 Token — / 1K Token 輸入 · 讀取快取 — / 1K Token 輸入 · 寫入快取 — / 1K Token 輸入 · 寫入快取,1 小時 — / 1K Token |
| 設定輸入 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
方法路徑別名
請使用上方列出的 API 方法路徑。
相關呼叫用 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