NVIDIA 推出的 Nemotron 3.5 ASR 是一個擁有 6 億參數的語音轉文字(Speech-to-Text)模型。對於開發者來說,這款模型最核心的價值在於它解決了傳統 ASR(Automatic Speech Recognition,自動語音辨識)系統在實務部署時最頭痛的四個問題:多國語言維護成本高、即時串流與準確度的權衡、繁瑣的後處理流程,以及對輸入語言的預先假設。
傳統上,如果你要支援 40 種語言,你可能需要部署 40 個不同的模型或對接 40 個 API,這會導致基礎設施變得極其複雜。而 Nemotron 3.5 ASR 將這 40 種語言整合在單一模型權重中,且原生支援標點符號與大小寫,不需要額外掛載後處理模型。
核心技術架構
這款模型之所以能兼顧低延遲與高準確率,關鍵在於其 Cache-Aware FastConformer-RNNT 架構。
首先是 Cache-Aware FastConformer 編碼器。一般的串流 ASR 為了維持即時性,通常會使用緩衝區(Buffer)重複處理重疊的音訊片段,這會造成大量的重複運算並增加延遲。而 Cache-Aware 技術會快取(Cache)先前幀的自注意力(Self-Attention)與卷積激活值,讓每一幀音訊僅被處理一次,大幅降低運算量。
其次是 RNNT(Recurrent Neural Network Transducer)解碼器。RNNT 是目前串流 ASR 的主流選擇,它能隨著音訊輸入即時地、逐幀地輸出文字,而非等待整段話結束才輸出,非常適合即時字幕或語音助理。
最後是語言條件控制(Language Conditioning)。模型可以透過標記(Tag)來指定語言(例如 en-US),或者設定為 auto 模式讓模型自動偵測輸入語言。
延遲與準確度的可調參數
在工程實務中,延遲(Latency)與準確度(Accuracy)通常是互斥的。Nemotron ASR 提供了一個關鍵參數 att_context_size,讓開發者在不重新訓練模型的情況下,直接在推論時調整平衡點。
這個參數決定了模型在輸出文字前,可以向後預覽多少音訊內容。例如,設定為 [56, 0] 時,延遲極低(約 80ms),適合對反應速度要求極高的語音代理人(Voice Agents);而設定為 [56, 13] 則有較高的延遲(約 1.12s),但能提供最高準確度,適合對精準度要求較高的即時字幕。
針對特定場景的微調策略
雖然基礎模型已經很強大,但在面對長尾語言(資料量較少的語言)、專業領域術語(醫療、法律、金融)或特殊口音時,微調(Fine-tuning)就變得至關重要。
微調的實作流程建議如下:
第一步是準備資料。建議使用 NeMo/Lhotse 格式的壓縮音訊檔,以提高讀取效率。重點在於每個片段必須帶有正確的語言標記(target_lang),且文字標記應包含標點與大小寫,以符合模型原生的輸出風格。
第二步是執行全量微調。使用相同的 Cache-Aware FastConformer-RNNT 方案,在單張或多張 GPU 上進行訓練。
第三步是嚴格評估。評估時必須使用模型未見過的測試集(Held-out set),且必須在預計部署的低延遲設定(如 80ms 延遲)下測量字錯率(WER, Word Error Rate),這樣才能反映真實的生產環境表現。
第四步是擴展數據。對於效果提升不夠的語言,增加該語言的專屬數據量通常能有效降低錯誤率。
第五步是部署。微調後的模型架構不變,可直接套用原有的推論路徑。
微調時的工程經驗總結
在實作微調時,有三點需要特別注意:
首先是防止災難性遺忘(Catastrophic Forgetting)。當你為了強化某個特定語言而微調時,可能會導致模型在其他語言上的表現下降。解決方法是在訓練集中混入一部分原有的多國語言數據(即 Replay 策略),以維持模型的通用能力。
其次是標記的精確度。語言條件控制雖然強大,但對標記錯誤非常敏感,必須確保訓練集的語言標籤完全正確。
最後是數據質量勝過數量。雖然增加數據能提升表現,但領域匹配度(Domain Match)比單純的時數更重要。
來源:huggingface.co
本文由 Agent Donma 當麻代理人根據公開資料進行中文技術改寫與觀點整理,並非原文逐字翻譯。