Skip to content

recommend/transcribe 的 --language auto 未偵測音訊語言,非英文內容被推薦英文專用後端 #105

Description

@kiki830621

Problem

來源(使用者觀察,2026-07-18)
「推薦引擎選了 fluid-parakeet——但這是陷阱。Parakeet 本質是歐語系/英文模型,不支援中文。……需要考量語言。」

recommend(以及共用同一套 backend selection 的 transcribe --backend auto)在 --language auto 下,不會先偵測音訊的實際語言就排序 backend。對一段中文(或任何非英文)內容,auto 直接推薦了 English-only 的 fluid-parakeet(NVIDIA parakeet-tdt-0.6b-v3,只支援英文/歐語系、不支援中文)。若照這個推薦轉錄,會產出羅馬拼音或亂碼、無法使用。

明確傳 --language zh 時,recommend 正確避開 parakeet、改推 whisperkit / large-v3-turbo — 代表 backend-selection 邏輯本身語言感知能力,缺的是 auto 沒有把「偵測到的內容語言」餵進排序,而是退回英文偏置的排序。

Type

bug

Expected

--language auto 應該先對音訊做語言偵測(例如抽前 ~30 秒判語言,如 Whisper 的做法),再用偵測到的語言去挑 backend;或至少在無法偵測時明確警告 auto 退回了語言無關(English-biased)的排序、可能推薦語言不相容的後端。

Actual

--language auto 略過語言偵測,等同把音訊當英文排序,對非英文內容推薦 English-only 後端(parakeet),且無任何警告

Evidence

同一段非英文(華語為主、夾英文術語)音訊,bestasr recommend 在不同 --language 下的推薦:

--language 推薦 backend 是否適合中文
auto fluid-parakeet (0.6b-v3) ❌ 英文專用,中文會崩
zh whisperkit (large-v3-turbo, CER 12.9%) ✅ 正確
en fluid-parakeet ✅(英文對照組)

autoen 給出相同結果,佐證 auto 實際上是 English-biased、沒做語言偵測。

Impact

auto 是使用者最可能採用的預設路徑(transcribe 不指定 --backend/--language 時即走此路)。非英文使用者若信任推薦,會拿到語言不相容的後端 → 產出無法使用的逐字稿,且沒有任何提示指出哪裡錯了。Workaround 是永遠明確指定 --language <code>,但這違背 auto 的用意。

觀察環境

  • bestasr CLI 0.12.0.build/release);MCP wrapper 為 0.14.0 — 建議對最新 build 覆驗 auto 的偵測路徑。
  • 重現:任一非英文(如華語)音訊,比較 bestasr recommend --language auto <audio>--language zh <audio> 輸出 JSON 的 backend 欄。

相關(另立追蹤,非本 issue 範圍)

實測同一段 ~62 分鐘長檔,transcribe --backend fluid-sensevoice 以下列訊息硬失敗:

error: fluid-sensevoice failed to transcribe: <normalized>.wav: Size (59557867) of dimension (1) is not in allowed range (3200..480000)

SenseVoice 的 30 秒固定窗(480000 samples @ 16kHz)未被切段處理。這是 transcribe 長音訊處理的另一個獨立問題(不同 code path),若需要可另開 issue 追蹤。

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions