![]()
500毫秒,這是人類對(duì)話中"自然感"的生死線。超過它,你會(huì)感覺對(duì)面是個(gè)機(jī)器人;低于它,用戶幾乎察覺不到延遲。谷歌Gemini 2.5 Flash Live API把語(yǔ)音交互壓進(jìn)了這個(gè)區(qū)間,但一位開發(fā)者花了500多場(chǎng)真實(shí)對(duì)話才發(fā)現(xiàn)——真正的殺手不是推理速度,是回聲。
GoNoGo.team的創(chuàng)始人最初以為最難的是多智能體編排、40多個(gè)函數(shù)調(diào)用工具。結(jié)果上線后,AI面試代理頻繁打斷自己說話,像個(gè)人在空曠房間里聽到回音后愣住。問題的根源:瀏覽器自帶的回聲消除(Acoustic Echo Cancellation,AEC)在新型語(yǔ)音架構(gòu)里完全失效。
為什么傳統(tǒng)方案會(huì)"失明"
傳統(tǒng)語(yǔ)音AI走"語(yǔ)音→文字→語(yǔ)音"的拼接路線,延遲通常在1-3秒。Gemini Flash Live API是原生語(yǔ)音到語(yǔ)音(speech-to-speech),音頻進(jìn)、音頻出,沒有中間文本層。這意味著客戶端處理的是原始PCM數(shù)據(jù):16kHz麥克風(fēng)輸入,24kHz代理語(yǔ)音輸出,Base64編碼后走WebSocket傳輸。
瀏覽器端的AEC有個(gè)底層假設(shè)——"遠(yuǎn)端音頻"必須通過``元素或Web Audio API播放,這樣瀏覽器才能追蹤參考信號(hào)。但GoNoGo的實(shí)現(xiàn)是手動(dòng)解碼WebSocket傳來的24kHz PCM塊,用AudioContext緩沖區(qū)調(diào)度播放。瀏覽器看不到這個(gè)音頻流,自然無法消除它。
后果很荒誕:AI開口說話,筆記本揚(yáng)聲器出聲,麥克風(fēng)收進(jìn)去,AI以為用戶在打斷自己。最優(yōu)情況是它重復(fù)半句話;最差情況——作者說" constantly happened"——對(duì)話徹底崩掉。
500場(chǎng)對(duì)話磨出的野路子方案
開發(fā)者試過讓AI忽略自己的聲音,但語(yǔ)音活動(dòng)檢測(cè)(Voice Activity Detection,VAD)閾值調(diào)再高也攔不住物理層面的聲波耦合。最終方案是在客戶端建立"自引用消除":把即將播放的音頻幀緩存為參考信號(hào),與麥克風(fēng)輸入做實(shí)時(shí)對(duì)齊抵消。
這相當(dāng)于在瀏覽器里重寫半個(gè)AEC。對(duì)齊精度要控制在樣本級(jí)別——24kHz意味著每幀約21微秒的偏差都會(huì)漏出殘差。作者用512樣本塊(約32毫秒)處理,RMS能量檢測(cè)閾值設(shè)在0.05,低于此值直接丟棄。
更麻煩的是采樣率不匹配。輸入16kHz,輸出24kHz,重采樣本身引入延遲。GoNoGo的做法是統(tǒng)一在客戶端升到48kHz處理,再降回各自目標(biāo),把額外開銷壓到10毫秒以內(nèi)。
被忽視的工程暗角
這個(gè)案例暴露了一個(gè)行業(yè)盲區(qū):當(dāng)語(yǔ)音AI從"文本中介"轉(zhuǎn)向"端到端音頻",大量瀏覽器層面的音頻基礎(chǔ)設(shè)施需要重建。AEC、噪聲抑制、自動(dòng)增益控制(AGC)這些曾經(jīng)開箱即用的功能,在WebSocket+手動(dòng)解碼的架構(gòu)里全部需要自研。
作者提到一個(gè)細(xì)節(jié):測(cè)試時(shí)發(fā)現(xiàn)某些筆記本的揚(yáng)聲器-麥克風(fēng)物理隔離太差,即使軟件層面完美消除,機(jī)械振動(dòng)仍會(huì)漏音。最終被迫在檢測(cè)到AI說話時(shí),動(dòng)態(tài)壓低麥克風(fēng)增益——用信噪比換穩(wěn)定性,這是硬件層面的妥協(xié)。
500毫秒延遲的目標(biāo)達(dá)成了,但代價(jià)是團(tuán)隊(duì)把一半精力花在"讓AI聽不到自己"這種基礎(chǔ)問題上。語(yǔ)音AI的競(jìng)賽正在從模型能力轉(zhuǎn)向工程整合——誰(shuí)能把端到端延遲、回聲消除、網(wǎng)絡(luò)抖動(dòng)緩沖這些臟活累活打包好,誰(shuí)才能讓用戶覺得"對(duì)面像個(gè)真人"。
GoNoGo現(xiàn)在每天處理數(shù)百場(chǎng)創(chuàng)始人面試,回聲問題基本解決。但作者留下一個(gè)未回答的疑問:當(dāng)多模態(tài)模型開始同時(shí)處理語(yǔ)音、視覺、實(shí)時(shí)環(huán)境音,現(xiàn)有的音頻處理?xiàng)_€有多少能復(fù)用?下一代開發(fā)者會(huì)不會(huì)在同樣的坑里再栽一次?
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.