Fish Audio: Transcribe 1 Pro
Transcribe 1 Pro 將最長 60 分鐘錄音轉成附說話者標記的文字,可選擇逐字時間。它保留推測的情緒與發聲事件提示,讓訪談、會議及 Podcast 更易審閱、搜尋或準備字幕。
關於模型
此說明介紹模型的能力。Ailoot 可用的輸入、輸出與選項,依所選方法列於下方。
Transcribe 1 Pro 是 Fish Audio 用於短片段、多說話者對話及長錄音的語音轉文字模型。它接收錄製音訊,回傳逐字稿,可選時間資訊及結構化說話輪次。其特色是文字中的說話者切換標記,以及情緒或發聲事件提示,比單純單字序列保留更多錄音對話結構。
訪談、會議或 Podcast 請將完整對話保留在一個檔案,讓再次出現的說話者可在同一回應內維持一致標籤。實用審閱產物是連結原始錄音的逐字稿,分開顯示輪次,並提供時間戳記以核對引文。摘要或行動清單是後續應用程式步驟,請與逐字稿分開,讓口述來源持續可供比較。
提供者接受最長 60 分鐘錄音,並描述以 MP3、Opus、AAC 等壓縮音訊處理長檔案。支援格式包括 WAV、MP3、以 M4A 或 MP4 封裝的 AAC、FLAC、含 Opus 或 Vorbis 的 Ogg、WebM/Matroska,以及 MOV。影片檔案使用第一條音軌。不支援 AIFF、CAF、WMA、AMR、AC-3 及無標頭原始 PCM。每個請求提供一個音訊檔案;整段錄音轉錄完成後才回傳結果,長錄音可能需要數分鐘。短於約 0.08 秒的片段會被拒絕。
提供者回應包含完整文字、錄音秒數及 segments 陣列。Pro 使用 <|speaker:0|>、<|speaker:1|> 等行內標籤標示說話者切換;標籤適用於後續文字,直到下一個標記。這些是單一回應內的識別碼,不是已驗證姓名,也不是可跨請求比對的身分。若逐字稿沒有說話者標記,指南將其視為單一說話者結果。第一個標記前的任何文字應和第一輪一起保留,不要丟棄。
逐字時間戳記是可選項。提供者請求的 ignore_timestamps 預設為 true;設為 false 會要求包含文字、開始及結束秒數的 segments。片段通常是一個單字,中文及日文則可能是一個或少數字元。片段文字不含標點、說話者標記與事件提示,口述數值的正規化方式也可能不同於完整逐字稿。單字片段的開始與結束時間可以相同。空 segments 陣列可能代表未要求時間戳記、未找到語音,或時間資訊暫時不可用。可讀措辭請使用完整逐字稿,對齊請使用 segments,不要假設兩種字串逐字元相同。
diarize 預設為 auto。要求時間戳記且 diarize 不是 false 時,Pro 還會回傳 speaker_turns。每輪包含說話者標籤、文字及開始/結束時間,保留標點與保留下來的提示,但不含行內說話者標記。若沒有逐字時間,輪次時間可能為近似值,並涵蓋整段錄音;相鄰輪次不一定連續,也不保證互不重疊。停用 diarize 會移除結構化輪次清單,但完整文字仍保留說話者標記。已知說話者數,或最小及最大數,可作為長錄音說話者分離的盡力而為提示。確切數量不能與數量範圍併用,停用 diarize 時也不能使用數量提示。
情緒與發聲事件提示會以方括號文字出現在辨識語音旁,例如 [laughter]。這是從音訊推測的資訊,不是使用者須在轉錄前加入的單字。Pro 的 tag_audio_events 預設為 true;停用後會從逐字稿與輪次文字移除這些提示,不改變時間資訊。沒有獨立情緒欄位或固定情緒列舉。說話聲音特徵重要時請保留註記逐字稿;後續產物只需口述單字時,可使用無提示版本。
語言自動偵測。可選的小寫 ISO 639-1 提示,不會強制翻譯或改變 Pro 逐字稿。若無法確定語言,回傳語言代碼可能反映提示,而沒有對照音訊驗證。提供者回報一種語言,不是混合語言錄音中每種語言的清單。準備可搜尋檔案庫時,請將原始措辭與語言中繼資料一起保留,尤其在對話不同部分切換語言時。
字幕請將連續定時單字組成可讀 SRT 或 WebVTT 字幕段,不要每個單字各一段。依停頓分段,並選擇適合播放器與觀眾的長度及顯示時間。說話輪次邊界可讓不同說話者使用不同字幕段。請檢查是否沒有時間結果,並確認字幕段結束時間必須晚於開始時間。字幕格式、匿名說話者標籤的名稱及後續摘要,都是根據轉錄結果建立的應用程式產物。
實際錄音流程應在轉錄前決定,需要一般可讀逐字稿、帶註記對話輪次,還是定時字幕。請將音訊識別碼和結果一起保留,標點與提示重要時保留回傳完整文字,導覽則使用結構化時間欄位。Pro 的長錄音及多說話者能力,不同於一般短錄音 Transcribe 1 模型;兩者限制與控制項不應視為可互換。
Ailoot Ultra · 語音辨識 POST /v1/audio/transcriptions fish-audio/transcribe-1-pro
fish-audio/transcribe-1-pro入門
Transcribe 1 Pro 將最長 60 分鐘錄音轉成附說話者標記的文字,可選擇逐字時間。它保留推測的情緒與發聲事件提示,讓訪談、會議及 Podcast 更易審閱、搜尋或準備字幕。
- 接受的輸入
- 音訊
- 結果
- 文字
Ailoot 可用 · 輸入與方法
Ailoot Ultra · 語音辨識 POST /v1/audio/transcriptions
- 輸入
audio- 輸出
text- 輸出格式
- json
| 欄位 | 類型 | 要求 | 值與限制 | 預設值 |
|---|---|---|---|---|
欄位model | 類型string | 要求必填 | 值與限制 fish-audio/transcribe-1-pro | 預設值— |
欄位input_audio | 類型object | 要求必填 | 值與限制 確切鍵名: data, format | 預設值— |
欄位input_audio.data | 類型base64_string | 要求必填 | 值與限制 解碼後位元組數上限: 26,214,400 嚴格 Base64: 是 | 預設值— |
欄位input_audio.format | 類型string | 要求必填 | 值與限制 條件: 必須與實際檔案探測出的格式一致 | 預設值— |
欄位response_format | 類型string | 要求選填 | 值與限制 json | 預設值— |
輸入素材組合
speech_to_text · 必填: input_audio.data, input_audio.format
方法參數與生命週期
| 參數 | 規格 |
|---|---|
參數content_type | 規格application/json |
參數required | 規格model, input_audio |
參數additional_properties | 規格false |
參數parameters | 規格{"name":"model","type":"string","required":true,"enum":["fish-audio/transcribe-1-pro"]}, {"name":"input_audio","type":"object","required":true,"exact_keys":["data","format"],"data":"對實際受支援的音訊位元組進行嚴格 base64 編碼","format":"探測所得的確切檔案格式;必須與實際位元組一致"}, {"name":"response_format","type":"string","required":false,"enum":["json"]} |
參數max_audio_bytes | 規格26214400 |
參數multipart_for_this_profile | 規格false |
參數material_types | 規格audio |
生命週期: 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 |
| 設定輸入音訊秒數 | 費率表— | 計費單位每秒輸入音訊 | 費用 輸入 · 輸入音訊秒數 $0.0002 每秒輸入音訊 |
Ailoot 會在請求前預留估算金額。取得結果後,依實測用量結算最終費用。串流結算採用最終用量紀錄。預留金額與結算的運作方式 →
參考費率詳情
模型層級的參考費率表不會變更方法選擇、報價或費用。實際計費採用所選 Ailoot 方法的費率。
Fish Audio: Transcribe 1 Pro
各設定的價格
| 設定 | 計費條件 | 費用 |
|---|---|---|
| 設定Fish Audio: Transcribe 1 Pro · 預設設定 | 計費條件預設設定 | 費用 輸入 · 輸入音訊秒數 US$0.0002 每秒輸入音訊 |
請求範例
Ailoot Ultra · 語音辨識
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_AUDIO_FILE:?Set your actual audio file}"
: "${AILOOT_AUDIO_FORMAT:?Set its actual probed file format}"
export AILOOT_AUDIO_FILE AILOOT_AUDIO_FORMAT
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "fish-audio/transcribe-1-pro", "response_format": "json"}')
import base64
f=Path(os.environ['AILOOT_AUDIO_FILE'])
raw=f.read_bytes()
if not raw or len(raw)>26214400:raise SystemExit('Use actual audio bytes within 25 MiB')
fmt=os.environ['AILOOT_AUDIO_FORMAT'].strip()
if not fmt:raise SystemExit('Use the actual probed format; the server checks it against the bytes')
p['input_audio']={'data':base64.b64encode(raw).decode(),'format':fmt}
Path('request.json').write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path('result.json').read_text())
print(json.dumps(r,ensure_ascii=False,indent=2))
print('Keep the complete JSON and response headers; do not resubmit an unknown creation.')
PY_RESULT
接收並儲存結果
Ailoot Ultra · 語音辨識
json
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
保留所有已完成的結果
請保留所有完整傳回的回應、檔案與內容區塊。
請保留完整 JSON、回應標頭、文字,以及每個實際回傳的用量欄位。請使用回應或自有媒體庫中的實際工作/資產身分;operation_id 並非 task_id。
需要檢查原始回應時
保留原始 operation_id/X-Client-Request-ID 以供核對,請勿重新提交;沒有專用的音訊輪詢路由。
回應欄位
| 欄位 | 類型 | 含義 |
|---|---|---|
欄位text | 類型string | 含義轉錄文字。 |
欄位usage | 類型object | 含義音訊用量。 |
欄位usage.seconds | 類型number | 含義音訊長度,以秒為單位。 |
欄位duration | 類型number | 含義音訊長度,以秒為單位。 |
欄位task_id | 類型string | 含義轉錄工作 ID;當非空的轉錄文字已儲存、發布並獲配簽署的內容 URL 時,會與 asset_url 一併回傳。 |
欄位asset_url | 類型string | 含義轉錄文字內容的簽署 URL;當非空的轉錄文字已儲存、發布並獲配簽署的內容 URL 時,會與 task_id 一併回傳。 |
錯誤與後續步驟
| 回應 | 條件 | 下一步 |
|---|---|---|
回應400 · invalid_request_error | 條件必要欄位、素材表示方式或參數值無效 | 下一步提出新的建立請求前,先修正指定欄位。 |
回應server_error | 條件回傳的回應表示該作業或結果需要檢查 | 下一步保留原始回傳的作業/任務 ID、請求標頭與回應;繼續以支援的方式讀取該原始作業。請勿重新提交建立請求。 |
別名
模型別名
Ailoot Ultra fish-audio/transcribe-1-pro
方法路徑別名
請使用上方列出的 API 方法路徑。
相關呼叫用 ID
FAQ · Fish Audio: Transcribe 1 Pro
- 可以使用哪些輸入與結果?
POST /v1/audio/transcriptions·fish-audio/transcribe-1-pro:audio→text- 請求使用哪些欄位?
POST /v1/audio/transcriptions·fish-audio/transcribe-1-pro:model,input_audio,response_format