Fish Audio: Transcribe 1
Transcribe 1 可將短錄音轉成文字,支援自動語言偵測與選用的逐字時間戳記。逐字稿可用於語音筆記、可搜尋片段或字幕製作;帶時間的片段應與便於閱讀的完整文字分開保存。
關於模型
此說明介紹模型的能力。Ailoot 可用的輸入、輸出與選項,依所選方法列於下方。
Transcribe 1 是 Fish Audio 用於短錄音的通用語音轉文字模型。它接受音訊檔,將辨識到的內容以文字傳回,並附上錄音時長、選用的定時片段,以及已知的語言資訊。此模型適合短語音筆記、口述指令、錄音摘錄,或需要可讀文字版本的音訊片段。
語音筆記流程可將錄音、完整逐字稿與原始片段識別碼一併保存。後續應用程式步驟可搜尋文字、整理筆記或產生摘要,同時保留口語來源。對指令而言,逐字稿提供應用程式辨識到的字詞;任何動作都屬於另一個解讀與執行步驟。處理訪談摘錄時,記錄片段在完整音訊中的位置,讓引文能回到正確位置核對。
開發商接受 WAV、MP3、AAC(包含 M4A/MP4)、FLAC,以及內含 Opus 或 Vorbis 的 Ogg。瀏覽器產生的 WebM 錄音,應先轉為 Ogg/Opus、MP3 或 WAV 再交給此模型;Pro 文件另載原生支援其他容器。每次請求提供一個音訊檔。基礎模型文件中的請求額度最高為 50 MiB,其中 MP3 與 Opus 檔須低於 25 MiB。檔案大小與錄音長度是不同考量:壓縮檔即使符合上傳額度,處理時間仍可能過長。
Transcribe 1 專為短錄音設計。開發商建議超過幾分鐘的音訊使用 Pro;基礎模型的長請求若超過處理時間限制,可能失敗。將較長來源切成短片段轉錄時,保留每段的起始偏移量,並確認回傳逐字稿涵蓋整個片段後再合併。在片段的局部時間加上原始偏移量,才能讓導覽對應完整錄音。基礎模型的指引不應解讀為 Pro 另有的 60 分鐘額度。
開發商回應包含 text、duration 與 segments。時長以秒表示,而便於閱讀的完整逐字稿應作為片段的主要文字內容。時間戳記為選用功能:開發商 API 的 ignore_timestamps 預設為 true;設為 false 則要求逐字片段,包含文字,以及以秒表示的開始與結束時間。要求對齊會增加處理時間。空的 segments 陣列可能表示略過時間資訊、沒有語音,或對齊暫時無法取得,不應自動解讀為完整逐字稿也是空白。
片段通常以單字為單位;中文與日文則可能是一個或少數幾個字。片段文字不含標點,數值正規化方式也可能與完整逐字稿不同,因此並非可讀回應的逐字元複本。片段開始與結束時間可以相同。尋找錄音位置或準備定時顯示時使用片段;重視措辭與標點時使用完整文字。產出成果中應區分這兩種表示方式。
無論有無提供選用的語言提示,語言都會自動偵測。開發商文件以小寫 ISO 639-1 代碼表示提示,並在已知時回傳供應用程式邏輯使用的語言代碼,以及供畫面顯示的語言名稱。回應只報告一種語言,不會列出切換語言錄音中的每種語言。將來源措辭與可取得的語言中繼資料隨結果保留,不要把轉錄請求當作翻譯操作。
字幕流程應將連續的定時片段組成便於閱讀的字幕單元,而非每次只顯示一個字。實用成果是連結原始片段的 SRT 或 WebVTT 檔,字幕邊界配合停頓,且畫面文字量容易閱讀。檢查是否缺少時間資訊,並確保每個字幕單元的結束晚於開始。字幕分組與檔案格式處理,是根據回傳對齊資訊進行的應用程式步驟;顯示方式應符合播放器與觀眾需求。
Transcribe 1 文件記載的控制項為音訊、語言提示與時間戳記選擇。Pro 的說話者標記、結構化說話輪次、情緒事件控制與說話者人數提示是不同功能,並非此基礎模型文件所定義的回應契約。處理前先決定所需成果:筆記使用便於閱讀的純文字;播放導覽與字幕則使用文字加上對齊資訊。保留片段識別碼、逐字稿與可取得的時間資訊,能讓結果供後續應用程式階段使用。
Ailoot Ultra · 語音轉文字 POST /v1/audio/transcriptions fish-audio/transcribe-1
fish-audio/transcribe-1入門
Transcribe 1 可將短錄音轉成文字,支援自動語言偵測與選用的逐字時間戳記。逐字稿可用於語音筆記、可搜尋片段或字幕製作;帶時間的片段應與便於閱讀的完整文字分開保存。
- 接受的輸入
- 音訊
- 結果
- 文字
Ailoot 可用 · 輸入與方法
Ailoot Ultra · 語音轉文字 POST /v1/audio/transcriptions
- 輸入
audio- 輸出
text
| 欄位 | 類型 | 要求 | 值與限制 | 預設值 |
|---|---|---|---|---|
欄位model | 類型string | 要求必填 | 值與限制 fish-audio/transcribe-1 | 預設值— |
欄位input_audio | 類型object | 要求必填 | 值與限制 | 預設值— |
方法參數與生命週期
| 參數 | 規格 |
|---|---|
參數content_type | 規格application/json |
參數required | 規格model, input_audio |
參數material_types | 規格audio |
參數material_conditions | 規格此範例會讀取您實際使用且非空的 PCM WAV 檔案,將完整檔案位元組編碼為 base64,並將 input_audio.format 設為 wav 傳送。 |
生命週期: 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 |
| 設定輸入音訊秒數 | 費率表— | 計費單位每秒輸入音訊 | 費用 輸入 · 輸入音訊秒數 $0.0002 每秒輸入音訊 |
Ailoot 會在請求前預留估算金額。取得結果後,依實測用量結算最終費用。串流結算採用最終用量紀錄。預留金額與結算的運作方式 →
請求範例
Ailoot Ultra · 語音轉文字
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}"
export AILOOT_AUDIO_FILE
python3 - <<'PY_REQUEST'
import base64, io, json, os, wave
from pathlib import Path
audio = Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()
if not (audio[:4] == b'RIFF' and audio[8:12] == b'WAVE'):
raise SystemExit('Supply your actual PCM WAV audio file')
with wave.open(io.BytesIO(audio), 'rb') as recording:
if recording.getcomptype() != 'NONE' or recording.getnframes() <= 0:
raise SystemExit('Supply a nonempty PCM WAV recording')
request = {'model': 'fish-audio/transcribe-1', 'input_audio': {'data': base64.b64encode(audio).decode('ascii'), 'format': 'wav'}}
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/transcriptions \
-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 original response, headers and actual X-Client-Request-ID.
# Read existing owned records for recovery; do not resubmit an uncertain operation.
接收並儲存結果
Ailoot Ultra · 語音轉文字
完整的原始回應本文、狀態與轉送標頭。此處理常式不會加入通用的 JSON 結構、文字欄位或工作封裝。
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
保留所有已完成的結果
請保留所有完整傳回的回應、檔案與內容區塊。
保留完整回應與標頭、所有實際輸出、原始回傳的識別碼,以及所有用量欄位。恢復原始作業時,請勿再次提交建立請求。
需要檢查原始回應時
請保留實際的 X-Client-Request-ID 與完整回應。請讀取原始自有資產及其完全相符的簽署內容 URL;切勿重新提交結果不明的建立請求。
回應欄位
| 欄位 | 類型 |
|---|---|
欄位text (when present) | 類型 |
欄位usage (when present) | 類型 |
錯誤與後續步驟
| 回應 | 條件 | 下一步 |
|---|---|---|
回應400 · invalid_request_error | 條件JSON 本文或明確的標準模型 ID 無效。 | 下一步請保留回應,並修正指出的請求欄位。 |
回應401 · authentication_error | 條件Ailoot API 金鑰無效。 | 下一步請使用您已獲授權的 Ailoot API 金鑰。 |
回應403 · permission_error | 條件此金鑰群組未獲准使用該方法。 | 下一步請保留回傳的錯誤詳細資訊。 |
回應404 · not_found_error | 條件所選方法沒有獲准使用的路由。 | 下一步請保留回傳的錯誤詳細資訊。 |
回應422 · price_unavailable | 條件已接受的費率無法取得其所需的輸入數量或界限。 | 下一步請保留回應,並使用已接受費率所要求的輸入表示方式。 |
回應503 · | 條件所需的儲存系統、路由、方法價格或預留額度無法使用。 | 下一步請保留完整的原始回應。預留額度狀態不明並不代表可以重新提交。 |
回應502 · server_error | 條件原始結果、用量或結算需要查核。 | 下一步請保留實際的請求 ID 與原始回應。請讀取現有的自有紀錄,切勿重新提交建立請求。 |
別名
模型別名
Ailoot Ultra fish-audio/transcribe-1
方法路徑別名
請使用上方列出的 API 方法路徑。
相關呼叫用 ID
FAQ · Fish Audio: Transcribe 1
- 可以使用哪些輸入與結果?
POST /v1/audio/transcriptions·fish-audio/transcribe-1:audio→text- 請求使用哪些欄位?
POST /v1/audio/transcriptions·fish-audio/transcribe-1:model,input_audio