Fish Audio: S1
Fish Audio S1 使用聲音參考與圓括號內的情緒提示,將多語言文稿轉成富有表現力的單一說話者音訊。可用於旁白、簡短口語指示或角色台詞,並控制成品音訊的格式與韻律。
關於模型
此說明介紹模型的能力。Ailoot 可用的輸入、輸出與選項,依所選方法列於下方。
S1 是 Fish Audio 的上一代文字轉語音模型,用於富有表現力的旁白與單一說話者語音輸出。它朗讀輸入文稿,使用所選聲音或以參考音訊為條件的聲音來傳回音訊。完整 S1 模型與較小的蒸餾模型 S1-mini 不同;製作者分別將兩者介紹為 40 億與 5 億參數的變體。本介紹針對名為 S1 的模型。
製作旁白時,請準備實際應說出的文字,並標示表達方式需要改變的位置。實用的解說文稿先陳述要點,每次發展一個想法,並以標點分開需要自然停頓的片語。簡短指示應在沒有螢幕的情況下也能聽懂。請保留名稱、縮寫及單位預定的讀法,並檢查語音輸出中的數字,而非假設視覺上可讀的字串只有一種發音。
S1 使用圓括號內的情緒與表達提示,例如 (angry)、(sad)、(in a hurry) 或 (chuckling)。提示應放在要影響的句子或片語前,其後再接實際台詞。表達方式作用於後續文字,因此情緒轉換應放在演出需要改變的位置。這與 S2 的方括號指示是不同語法;請依所選世代撰寫文稿,而非假設兩種標記可互換。
聲音可透過已儲存的聲音識別碼選擇,也可使用參考錄音及其轉錄稿作為條件。針對即時參考工作流程,一般語音指南建議使用清晰的 10 至 30 秒樣本。請選擇說話風格與錄音品質符合預定結果的樣本,並讓轉錄稿與樣本中的詞句一致。固定敘述者應在各段重複使用同一聲音參考,避免主題改變時無意間變成角色改變。
S1 的發布資料列出英語、中文、日語、德語、法語、西班牙語、韓語、阿拉伯語、俄語、荷蘭語、義大利語、波蘭語及葡萄牙語等支援語言,並描述可在文稿中混合語言。請提供目標語言措辭,而非將語音合成當成翻譯步驟。段落包含外來名稱或語言切換時,應保持拼寫與周圍句子上下文清楚,並檢查所選聲音如何處理轉換。
S1 的製作者介面每次合成請求支援一位說話者。對話可以準備成各自帶有聲音參考的獨立片段,再由應用程式組合;S2 系列原生多位說話者合成則是另一項能力。準備角色台詞時,請將角色、聲音及文字與各片段建立關聯。合成結果是文稿的語音演出,而安排對話時序或結合音樂與影片,則屬後續編輯步驟。
輸出選項包括 MP3、WAV、原始 PCM 及 Opus,預設為 MP3。文件記載的輸出為單聲道;WAV 與 PCM 使用 16 位元取樣,各格式可選的取樣率不同。MP3 支援 64、128 及 192 kbps,Opus 則使用 48 kHz。速度可在 0.5 至 2.0 間調整,並提供音量控制。配音成果可選擇編碼後檔案,播放則選擇適合的串流,並將所選聲音與文稿和結果一併保留。
製作者將長文字分塊處理,記載的區塊長度範圍為 100 至 300,採每塊音訊 token 預算,而非保證整體錄音時間。文字正規化可將英語及中文數字展開成自然讀法,S1 的重複懲罰則可減少重複音訊模式。輸出響度正規化是另一個設定,對 S1 沒有效果。請在組合完成段落前檢查發音、片語邊界、重複聲音及預定的情緒轉換,再針對需要注意的台詞或參考資料修正。
Ailoot Ultra · 語音合成 POST /v1/audio/speech fish-audio/s1
fish-audio/s1入門
Fish Audio S1 使用聲音參考與圓括號內的情緒提示,將多語言文稿轉成富有表現力的單一說話者音訊。可用於旁白、簡短口語指示或角色台詞,並控制成品音訊的格式與韻律。
- 接受的輸入
- 文字
- 結果
- 音訊
Ailoot 可用 · 輸入與方法
Ailoot Ultra · 語音合成 POST /v1/audio/speech
- 輸入
text- 輸出
audio- 輸出格式
- 實際宣告的二進位音訊
| 欄位 | 類型 | 要求 | 值與限制 | 預設值 |
|---|---|---|---|---|
欄位model | 類型string | 要求必填 | 值與限制 fish-audio/s1 | 預設值— |
欄位input | 類型string | 要求必填 | 值與限制 長度下限: 1 | 預設值— |
欄位voice | 類型string | 要求必填 | 值與限制 範例:b347db033a6549378b48d00acb0d06cd | 預設值— |
欄位response_format | 類型string | 要求選填 | 值與限制 mp3, pcm | 預設值pcm |
輸入素材組合
text_to_speech · 必填: actual UTF-8 script, exact supported voice
方法參數與生命週期
| 參數 | 規格 |
|---|---|
參數content_type | 規格application/json |
參數required | 規格model, input, voice |
參數material_types | 規格text |
參數voice_ids | 規格b347db033a6549378b48d00acb0d06cd |
參數voice_list_exhaustive | 規格false |
參數response_format | 規格mp3, pcm |
參數default_response_format | 規格pcm |
參數quantity | 規格單一已解碼輸入字串的 UTF-8 位元組;不去除首尾空白或進行正規化 |
參數native_byte_quote_controls | 規格在宣告額外計費文字之前,此精確位元組報價路徑會拒絕非空的 instructions 與多說話者輪次輸入。 |
生命週期: 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}
請使用完全相符的模型與文件記載的輸入欄位。
請保留完整回應、每個實際輸出,以及原始回傳的 ID。
方案
費率資訊不會增加請求選項。支援的參數列於所選方法中。
- 快速模式
- 未指定 選取快速模式時
- flex 模式
- 未指定 選取 flex 模式時
- 最高推理強度
- 未指定 最高推理強度採用 default 調整值時
Ailoot 費率
各設定的價格
請逐一核對各項費用與所列條件。每組互為替代選項的設定只套用一種費率。
| 設定 | 費率表 | 計費單位 | 費用 |
|---|---|---|---|
| 設定基礎 token 費率 | 費率表基本費率 | 計費單位— | 費用 輸入 · 輸入 Token — / 1K Token 輸出 · 輸出 Token — / 1K Token 輸入 · 讀取快取 — / 1K Token 輸入 · 寫入快取 — / 1K Token 輸入 · 寫入快取,1 小時 — / 1K Token |
| 設定Ultra | 費率表— | 計費單位每個輸入音訊 utf8 位元組 | 費用 輸入 · 輸入音訊的 utf8 位元組 $0.00003 每個輸入音訊 utf8 位元組 |
Ailoot 會在請求前預留估算金額。取得結果後,依實測用量結算最終費用。串流結算採用最終用量紀錄。預留金額與結算的運作方式 →
參考費率詳情
模型層級的參考費率表不會變更方法選擇、報價或費用。實際計費採用所選 Ailoot 方法的費率。
Fish Audio: S1
各設定的價格
| 設定 | 計費條件 | 費用 |
|---|---|---|
| 設定Fish Audio: S1 · 預設設定 | 計費條件預設設定 | 費用 輸入 · 輸入 UTF-8 位元組 US$0.00003 每個輸入 UTF-8 位元組 |
請求範例
Ailoot Ultra · 語音合成
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
request={'model': 'fish-audio/s1', 'input': 'Hello world', 'voice': 'b347db033a6549378b48d00acb0d06cd', 'response_format': 'mp3'}
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
# Keep the complete original response and headers. Read every returned segment, word and usage field.
# Preserve actual operation/task/asset IDs; continue reads of the original result without resubmitting.
接收並儲存結果
Ailoot Ultra · 語音合成
實際宣告的二進位音訊
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
保留所有已完成的結果
請保留所有完整傳回的回應、檔案與內容區塊。
請儲存完整的二進位位元組與所有原始標頭;若回傳 JSON,也請完整保留。實際的操作/資產 ID 會予以保留。
需要檢查原始回應時
請保留原始 operation_id/X-Client-Request-ID 與原始回應。請讀取實際的自有工作/資產紀錄,切勿重新提交;此處不會組出專用的音訊輪詢 URL。
回應欄位
| 欄位 | 類型 |
|---|---|
欄位binary audio | 類型bytes |
欄位response headers | 類型headers |
別名
模型別名
Ailoot Ultra fish-audio/s1
方法路徑別名
請使用上方列出的 API 方法路徑。
相關呼叫用 ID
FAQ · Fish Audio: S1
- 可以使用哪些輸入與結果?
POST /v1/audio/speech·fish-audio/s1:text→audio- 請求使用哪些欄位?
POST /v1/audio/speech·fish-audio/s1:model,input,voice,response_format