我們對 GPT-Live-1 語音智慧體 API 的第一印象
OpenAI 兩天前在 API 中推出了全新的全雙工語音模型 GPT-Live-1。我們在正式環境中打造並營運 AI 電話智慧體,因此我們把它接上一個真實電話號碼,然後打給它。打了很多通。
我們使用一位保險客戶提供、約 13,000 個權杖的熱絡潛在客戶資格確認腳本進行測試,內容包含必須逐字念出的台詞、嚴格的覆誦規則,以及分支式追問。在一整天的長時間測試中,我們進行了 12 通真實電話、約 25 場模擬訪談,以及一批非結構化測試。
以下是我們的初步印象,附上逐字稿與音訊。更深入的分析很快就會推出。
逐字稿來自我們的測試通話,並由 GPT-Live 轉錄。我們變更了姓名與可識別身分的措辭、刪減部分對話,並合併被拆分的片段。時間戳記以通話開始後的秒數計算,均來自原始紀錄。
自然度極為出色
GPT-Live-1 是我們在電話線路上部署過、對話聽起來最自然的模型。這是真正的一大進步。
它會在同一條連續音訊串流中聆聽與說話,不需要分開進行轉錄與語音合成。大多數對話機制都運作良好。來電者停止說話後,中位數約 1.3 秒就會聽到它的第一段音訊;若不計電話連線端,則約為 0.7 秒。我們沒有加入任何語音活動偵測或輪替發言邏輯。它能從容處理打斷,產生自然的回應聲(「嗯哼」),並以明快、近似真人的節奏說話。
當我們提供目標而非要它照念的台詞時,它會依據對話調整問題,也能從容接受修正:
無論是修正、打斷,或是來電者在通話中途改變答案,它都不曾失去鎮定。如果自然度就是全部工作,這篇文章到這裡就可以結束了。可惜事情不只如此。
它無法穩定遵循指示
對於腳本式電話通話中重要的行為,GPT-Live-1 無法穩定遵循指示。
不只一次,它把明確的「是」當成「否」來回應,重新詢問問題,或彷彿來電者已拒絕般繼續往下進行。
最一致的失敗情況,是它過度照字面理解指示。我們的提示詞寫道:如果來電者表示檔案紀錄中的住房狀態有誤,就詢問對方是擁有自宅、租屋,還是與父母同住。一位來電者說「不,我現在擁有它」,這其實已經回答了問題,但模型仍把選單念了出來:
一些早期的怪異表現是我們提示詞的問題,但這種過度字面化的情況,在我們嘗試的每一種提示詞版本中都持續出現。任何我們沒有明確寫出的回答,它都會以機械化方式處理,而非做出合理判斷。
它有時也會在壓力下把思考過程說出口:
數字與英數字元有風險
拼字、地址、出生日期和身分證號碼都必須精確無誤。這正是 GPT-Live-1 的語音最容易出問題的地方。
我們聽到它在英數字串中遺漏或替換字元。以下是它讀出一組虛構的理賠編號;除了裁去靜音片段外,音檔未經任何處理。在英文中,它的逐字稿正確,但音訊多加了一個「Y」:
俄文的情況更糟:「Q」在音訊和逐字稿中都變成了「X」。
日期也出現了同樣的問題。來電者以數字說出出生日期,但模型之後將它覆誦成一個數字:
它也偶爾會說出原本屬於來電者的那一句話:
其他語言的口音
我們會針對產品支援的 47 種語言測試新語音模型。GPT-Live-1 的俄文很流暢,但帶有濃厚的美式口音(相較之下,我們在正式環境中使用的 TTS 語音通常聽起來像母語人士):
我們也試了盧干達語。第一次通話時,它改以史瓦希里語回答。第二次時,它說的是盧干達語,比我們原本預期通用模型能做到的更自然,但同樣帶有濃厚的美式口音。我們尚未測試每一種語言,但預期這種口音模式很可能普遍存在。對只使用英文的智慧體而言,這不成問題;但對其他語言的使用情境來說,則是相當重要的限制。
幾項值得了解的 API 限制
根據我們本週的發現,有幾項 API 限制對真正的智慧體很重要:
- 工作階段開始後,指示內容即無法變更,且上限為 16,384 個 token。
- 輸出音訊永不停止串流——連靜音也會串流——因此,對於需要切分輪次的使用情境,無法將「音訊停止」作為輪次結束的訊號。
- 它只能透過新的
v1/live/sessions端點存取,而且我們檢查時 Azure 尚未提供。
目前的印象
正式上線的電話智慧體必須聽起來自然,並且穩定遵循腳本。GPT-Live-1 在前者表現驚人,但在後者仍有一些嚴重問題。隨著時間推進,我們會持續進行更多測試,並繼續分享我們的發現。