Back to blog
    語音 AI 代理微調:Vapi、ElevenLabs 和本地模型
    voice-aiagentsfine-tuningvapicost-reductionsegment:agency

    語音 AI 代理微調:Vapi、ElevenLabs 和本地模型

    運行在 GPT-4 上的語音 AI 代理每分鐘對話花費 $0.10-0.30。微調的本地模型將成本降至幾乎為零。以下是如何構建不會讓你每次通話都破產的語音代理。

    EErtas Team·

    語音 AI 代理市場已經爆炸式增長。Vapi、ElevenLabs、Retell、Bland.ai——現在有數十個平台承諾為客戶支援、預約、潛在客戶資格認定和外撥銷售提供對話式語音代理。代理商在幾小時內就為客戶搭建起語音機器人。演示電話聽起來令人印象深刻。

    然後發票到了。

    每月處理 1,000 個通話、平均每次通話 4 分鐘的單個語音 AI 代理,僅 LLM 骨幹成本就高達 $400-$1,200/月。這還不包括 STT、TTS、電話和平台費用。每月 10,000 次通話時,你要看的是 $4,000-$12,000——僅僅是讓語言模型決定下一步說什麼。

    LLM 骨幹是昂貴的部分。而對於絕大多數語音代理使用案例,GPT-4 是嚴重的過度殺傷。

    語音代理架構

    每個語音 AI 代理遵循相同的管道:

    1. 語音轉文字(STT): 將呼叫者的音頻轉換為文本(Whisper、Deepgram、AssemblyAI)
    2. LLM 處理: 根據轉錄、上下文和指令生成代理響應
    3. 文字轉語音(TTS): 將響應文本轉換回音頻(ElevenLabs、PlayHT、XTTS)

    STT 和 TTS 步驟相對便宜——Deepgram 每分鐘 $0.006,ElevenLabs 每分鐘 $0.01-0.03(取決於你的計劃)。LLM 步驟是錢花的地方。

    典型的語音對話每輪生成 500-2,000 個 token,每次通話有 10-30 輪。這是每次對話 5,000-60,000 個 token。按 GPT-4o 定價(輸入/輸出每百萬 token $2.50/$10),一次有 20 輪的 4 分鐘通話僅 LLM 推理就花費約 $0.15-0.40。

    微調的本地模型將 LLM 成本降至實際上為零。

    為什麼語音代理非常適合微調

    語音代理對話的範圍出乎意料地窄。牙科診所的預約代理可能只處理 15-20 種不同的對話模式:

    • 安排新預約
    • 重新安排現有預約
    • 詢問保險接受情況
    • 詢問辦公時間
    • 請求方向指引
    • 處理緊急情況
    • 有禮貌的閒聊和問候

    這是一個分類和響應生成任務——正是微調的 7B 或 8B 模型匹配 GPT-4 品質的工作類型。代理不需要推理新問題或從不同領域綜合信息。它需要識別呼叫者的意圖,從上下文中提取正確的信息,並生成自然的響應。

    小型模型的延遲優勢

    語音代理有嚴格的延遲要求。呼叫者期望在 300-800ms 內得到響應。超過 1 秒就感覺不自然。超過 2 秒,人們開始說「喂?你還在嗎?」

    這是小型模型實際上比雲 API 有優勢的地方:

    設置首個 Token 時間完整響應(平均)
    GPT-4o 通過 API200-600ms800-2,000ms
    GPT-3.5 通過 API150-400ms500-1,200ms
    微調 8B(本地,RTX 4090)30-80ms150-400ms
    微調 3B(本地,RTX 3090)15-40ms80-250ms

    本地推理完全消除了網絡往返時間。對於每 100ms 都很重要的語音代理,在本地硬體上運行微調模型產生明顯更自然的對話。代理響應速度比人類更快——這反直覺地讓它聽起來更像人類,因為沒有尷尬的沉默。

    從對話轉錄構建訓練資料

    語音代理模型最好的訓練資料是真實的對話轉錄。如果你已經在 GPT-4 上運行語音代理,你每天都在積累大量的訓練資料。

    以下是流程:

    第一步:收集轉錄

    從你的語音平台匯出對話日誌。Vapi 通過其 API 提供完整的對話轉錄。Retell 和 Bland.ai 有類似的匯出功能。你需要包括系統提示和工具調用在內的完整輪流轉錄。

    第二步:過濾品質

    不是每次對話都是好的訓練資料。過濾以下條件:

    • 成功結果: 代理實現目標的通話(預約完成、問題回答、潛在客戶資格確認)
    • 自然流程: 沒有過多重試或混亂的對話
    • 代表性覆蓋: 確保包含所有主要對話類型

    通常,60-70% 的對話是好的訓練候選者。從 1,000 次總通話中,預計有 600-700 個可用的轉錄。

    第三步:格式化為訓練對

    將每次對話轉換為你的目標模型所期望的聊天格式:

    {
      "messages": [
        {"role": "system", "content": "你是 Downtown Dental 的預約助手..."},
        {"role": "user", "content": "你好,我想預約"},
        {"role": "assistant", "content": "很高興幫您安排預約..."},
        {"role": "user", "content": "你們接受 Delta Dental 嗎?"},
        {"role": "assistant", "content": "是的,我們接受 Delta Dental PPO 和 Premier 計劃..."}
      ]
    }

    第四步:添加邊緣案例

    用邊緣案例的合成範例補充你的真實轉錄:

    • 沮喪或困惑的呼叫者
    • 代理需要說「我不知道」或轉接人工的通話
    • 同時請求(「我需要重新安排預約,也想問關於我的賬單」)
    • 代理應優雅地偏轉的離題請求

    500-1,000 次對話的資料集通常足以進行語音代理微調。更多資料有幫助,但對於單一目的代理,超過 1,000 個範例後回報遞減。

    規模化成本比較

    以下是不同規模級別的數字。假設平均通話時長 4 分鐘,每次通話 20 輪,每次對話約 30,000 個 token。

    每月 1,000 次通話

    組件GPT-4o 代理微調 8B 代理
    LLM 推理$400-$1,200$0(本地)
    STT(Deepgram)$24$24
    TTS(ElevenLabs)$99-$330$99-$330
    硬體/託管$0$50-$100(雲 GPU)
    每月總計$523-$1,554$173-$454

    每月 10,000 次通話

    組件GPT-4o 代理微調 8B 代理
    LLM 推理$4,000-$12,000$0(本地)
    STT$240$240
    TTS$330-$990$330-$990
    硬體/託管$0$150-$300
    每月總計$4,570-$13,230$720-$1,530

    每月 100,000 次通話

    組件GPT-4o 代理微調 8B 代理
    LLM 推理$40,000-$120,000$0(本地)
    STT$2,400$2,400
    TTS$3,300-$9,900$3,300-$9,900
    硬體/託管$0$500-$1,500
    每月總計$45,700-$132,300$6,200-$13,800

    在每月 100K 次通話時,微調模型每月節省 $39,500-$118,500。經濟學並不微妙。

    架構:替換 LLM 骨幹

    替換很簡單。你的語音代理架構保持不變——STT、LLM、TTS——你只需替換 LLM 層。

    選項 A:Ollama + OpenAI 相容 API

    大多數語音平台讓你指定自定義 LLM 端點。通過 Ollama 運行你的微調模型,它暴露 OpenAI 相容的 API:

    ollama serve
    # 模型可在 http://localhost:11434/v1/chat/completions 訪問

    將 Vapi 或你的自定義語音管道指向 http://your-server:11434/v1/chat/completions 而不是 https://api.openai.com/v1/chat/completions。請求格式是相同的。

    選項 B:vLLM 用於高吞吐量

    如果你處理超過 50 個並發通話,Ollama 的單請求處理成為瓶頸。vLLM 提供帶有連續批處理的批量推理——它可以在單個 GPU 上處理數百個並發請求:

    python -m vllm.entrypoints.openai.api_server \
      --model ./fine-tuned-voice-agent \
      --max-model-len 4096 \
      --gpu-memory-utilization 0.9

    選項 C:帶雲端回退的混合方案

    對於適合你的微調模型訓練分佈的 90% 通話運行本地推理。將不尋常或複雜的通話路由到 GPT-4 作為回退。你在邊緣案例上保持品質的同時獲得大部分成本節省。

    偵測很簡單:如果模型的置信度分數低於閾值,或者如果對話超過一定輪數,則升級到雲模型。

    硬體要求

    對於語音代理推理,延遲比吞吐量更重要。以下是有效的配置:

    硬體模型大小並發通話成本
    RTX 4090(24GB)8B Q45-15一次性 $1,600
    A6000(48GB)8B Q8 或 14B Q410-30一次性 $4,500
    L4(雲端)8B Q45-15$0.50/小時
    A10G(雲端)8B Q810-25$1.00/小時

    一個 RTX 4090 每小時處理 10 個並發通話,平均每次通話 4 分鐘,可以處理 150 次通話——每天 3,600 次——每月 108,000 次。一個消費者 GPU。$1,600。

    自托管 TTS 進一步降低成本

    ElevenLabs 和 PlayHT 產生出色的語音品質,但在規模上成本累積起來。開源 TTS 模型已大大縮小了差距:

    • XTTS v2(Coqui):接近人類品質,支援語音克隆,本地運行
    • Piper TTS:品質較低但速度非常快,適合簡單使用案例
    • StyleTTS2:帶有風格控制的高品質神經 TTS

    本地運行 XTTS v2 每次通話零邊際成本。品質對於大多數語音而言大約是 ElevenLabs 的 85-90%。對於成本敏感的部署,自托管 TTS 可以從賬單中消除另外 $99-$9,900/月。

    訓練微調語音代理模型

    微調過程本身與任何聊天模型微調相同,帶有一些語音特定的注意事項:

    1. 保持響應簡短。 語音響應應該是 1-3 句話。長段落用語言說出來聽起來不自然。訓練模型要簡潔。
    2. 包含填充語和對話標記。 真實語音包括「當然」、「讓我查一下」、「請稍等」。這些讓 TTS 輸出聽起來自然。
    3. 在多輪對話上訓練。 模型需要處理來回對話,而不僅僅是單個問答對。
    4. 包含中斷處理。 呼叫者會打斷。訓練模型優雅地處理部分輸入。

    將格式化後的資料集上傳到 Ertas 並選擇你的基礎模型——Llama 3.1 8B Instruct 或 Qwen 2.5 7B Instruct 對語音代理效果很好。根據資料集大小,微調需要 1-3 小時。通過 Ollama 部署生成的模型,並將你的語音管道指向它。

    何時保留 GPT-4 在循環中

    微調的本地模型適用於大多數語音代理使用案例,但某些場景仍然受益於前沿模型:

    • 開放域對話,其中呼叫者可以詢問任何事情(通用客戶服務熱線)
    • 複雜的故障排除,需要對技術問題進行多步驟推理
    • 處理 10 種以上語言的多語言代理(雖然微調的多語言模型改進很快)
    • 在你有對話資料進行微調之前的初始原型開發

    對於大多數生產語音代理——預約、潛在客戶資格認定、訂單狀態、常見問題處理——微調的 7-8B 模型以相等或更好的品質處理 95% 以上的通話,延遲更低,成本顯著降低。


    Ship AI that runs on your users' devices.

    Ertas early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.

    延伸閱讀

    Ship AI that runs on your users' devices.

    Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.

    Keep reading