Skip to content

MRCPv2 語音整合協定

MRCPv2(Media Resource Control Protocol Version 2)是專門為語音應用設計的協定,讓客戶端能去控制遠端的語音辨識(ASR)和語音合成(TTS)資源。說白了,它就是客服中心 IVR 跟 AI 語音引擎之間那個標準的對接介面。

MRCPv2 協定架構

協定概述

MRCPv2 由 IETF 在 RFC 6787 中標準化,它定義了一個客戶端-伺服器架構,其中:

  • MRCPv2 Client:通常是 IVR 伺服器或媒體伺服器
  • MRCPv2 Server:提供 ASR/TTS 資源的語音引擎

協定組成

MRCPv2 並非單一協定,而是整合了三個協定共同運作:

協定角色說明
SIP會話管理建立和管理 MRCPv2 會話(RFC 3261)
MRCPv2資源控制控制 ASR/TTS 引擎的命令與事件
RTP/RTCP媒體傳輸傳送語音串流至 ASR 或從 TTS 接收語音

協定堆疊

+----------------------------------+
|        MRCPv2 命令/事件           |  控制通道(TCP)
+----------------------------------+
|              SIP                  |  信令(UDP/TCP)
+----------------------------------+
|           RTP/RTCP               |  媒體(UDP)
+----------------------------------+
|            IP / UDP / TCP         |
+----------------------------------+

跟舊版 MRCPv1 差在哪:MRCPv1(非正式標準)用 RTSP 當控制協定,MRCPv2 改成 SIP 加一條獨立的 TCP 控制通道,功能更多,跟既有的 SIP 基礎設施也搭得更順。現在業界主流都用 MRCPv2。

ASR/TTS 資源管理

ASR 資源(語音辨識)

ASR(Automatic Speech Recognition)資源負責將語音串流轉換為文字。

MRCPv2 ASR 關鍵命令:

命令說明
RECOGNIZE開始辨識,指定文法(Grammar)
STOP停止辨識
GET-RESULT取得辨識結果
DEFINE-GRAMMAR載入辨識文法
START-INPUT-TIMERS啟動輸入計時器

ASR 關鍵事件:

事件說明
START-OF-INPUT偵測到用戶開始說話
RECOGNITION-COMPLETE辨識完成,附帶結果
INTERPRETATION-COMPLETE語意解析完成

ASR 重要參數:

參數說明建議值
confidence-threshold辨識信心度門檻0.5-0.8
sensitivity-level語音偵測靈敏度0.5
speed-vs-accuracy速度與準確度權衡依場景
no-input-timeout無輸入逾時5000-10000 ms
speech-complete-timeout說話結束判定逾時1000-2000 ms
speech-incomplete-timeout不完整語句逾時3000-5000 ms

TTS 資源(語音合成)

TTS(Text-to-Speech)資源負責將文字轉換為語音串流。

MRCPv2 TTS 關鍵命令:

命令說明
SPEAK合成並播放語音(支援 SSML)
STOP停止播放
PAUSE暫停播放
RESUME恢復播放
BARGE-IN-OCCURRED通知 TTS 用戶打斷了播放
CONTROL調整語速、音量等

TTS 關鍵參數:

參數說明
voice-name指定合成語音
speech-language語言(如 zh-TW)
prosody-rate語速
prosody-volume音量
prosody-pitch音調

SSML 支援

MRCPv2 的 TTS 支援 SSML(Speech Synthesis Markup Language)標記語言:

xml
<speak version="1.0" xml:lang="zh-TW">
  歡迎致電客服中心。
  <break time="500ms"/>
  請問您需要什麼服務?
  <prosody rate="slow">
    按1查詢帳戶,按2辦理業務。
  </prosody>
</speak>

與 IVR 的整合方式

典型 IVR + MRCPv2 架構

來電者                                          語音引擎
  |                                               |
  |── PSTN/SIP ──> IVR Server                    |
  |                    |                          |
  |                    |── SIP INVITE ──────────> | (建立 MRCPv2 會話)
  |                    |<─ 200 OK ───────────────|
  |                    |                          |
  |<── RTP(TTS 播放)─|<─ SPEAK(歡迎語)────────| (TTS 合成)
  |                    |                          |
  |── RTP(用戶語音)─>|── RECOGNIZE + RTP ──────>| (ASR 辨識)
  |                    |<─ RECOGNITION-COMPLETE ──| (回傳結果)
  |                    |                          |
  |                    | [IVR 根據結果路由通話]     |

整合流程詳解

步驟一:會話建立

IVR 向 MRCPv2 Server 發送 SIP INVITE,建立控制通道和媒體通道。SDP 中描述 MRCPv2 控制通道和 RTP 媒體通道的參數。

步驟二:TTS 播放提示語

IVR 透過 MRCPv2 控制通道發送 SPEAK 命令,TTS 引擎產生語音串流並透過 RTP 傳送給來電者。

步驟三:ASR 辨識用戶語音

IVR 發送 RECOGNIZE 命令並將來電者的 RTP 串流導向 ASR 引擎。ASR 引擎在辨識完成後發送 RECOGNITION-COMPLETE 事件。

步驟四:處理結果

IVR 根據辨識結果進行業務邏輯處理(如路由通話、查詢資料、進入下一層選單)。

Barge-in 機制

Barge-in 允許來電者在 TTS 播放提示語時打斷並直接說出回應:

類型說明
Speech Barge-in偵測到用戶說話時停止 TTS
DTMF Barge-in偵測到按鍵時停止 TTS

別小看 Barge-in。老客戶早就摸熟選單了,根本不想聽完整段提示語,能打斷直接講,體驗好很多、也省時間。不過靈敏度要調好,不然背景噪音一大就誤觸發。

典型呼叫流程

完整的 IVR 語音導航流程

以下描述一個完整的語音自助服務流程:

1. 來電進入 IVR(SIP INVITE 到 IVR Server)
2. IVR 建立 MRCPv2 會話(SIP INVITE 到 MRCP Server)
3. IVR 發送 SPEAK(歡迎語:"歡迎致電XX銀行客服中心")
4. TTS 播放歡迎語(RTP 串流)
5. IVR 發送 SPEAK + RECOGNIZE 同時啟動("請問您需要什麼服務?")
6. TTS 播放提示語,同時準備 ASR 辨識
7. 用戶說:"我要查帳戶餘額"(Barge-in 或等 TTS 結束)
8. ASR 回傳 RECOGNITION-COMPLETE:
   - 結果:"查帳戶餘額"
   - 信心度:0.92
   - 語意:intent=balance_inquiry
9. IVR 根據辨識結果:
   - 信心度 >= 門檻 → 進入餘額查詢流程
   - 信心度 < 門檻 → 發送 SPEAK 再次確認
10. IVR 查詢後端系統取得餘額
11. IVR 發送 SPEAK:
    "您的帳戶餘額為 <say-as interpret-as="currency">50000</say-as> 元"
12. 流程結束或進入下一個對話回合

辨識失敗的處理策略

情境處理方式
無輸入(no-input)重播提示語,最多 3 次後轉人工
無法辨識(no-match)請用戶重新說明,提供按鍵替代方案
低信心度複述辨識結果請用戶確認
連續失敗直接轉接人工客服

與 HTTP API 整合方式的比較

HTTP API 語音辨識

現代雲端 ASR/TTS 服務通常提供 HTTP REST API 或 WebSocket API 介面。

HTTP API 的運作方式:

方式說明
批次辨識上傳完整音檔,等待辨識結果
串流辨識(WebSocket)即時傳送音訊串流,即時回傳結果
串流辨識(gRPC)雙向串流,效率最高

MRCPv2 vs HTTP API 對照表

特性MRCPv2HTTP API
協定標準IETF RFC 6787各廠商自定
媒體傳輸RTP(直接串流)HTTP/WebSocket/gRPC
延遲低(直接 RTP)中(HTTP overhead)
與電話系統整合原生整合(SIP + RTP)需要媒體轉換層
Barge-in 支援原生支援需自行實作
高可用架構SIP 層面的容錯雲端服務 HA
廠商鎖定低(標準協定)高(API 各異)
部署模式地端或雲端主要為雲端
成本模式授權費 + 硬體按使用量計費
語言模型更新需部署更新雲端自動更新
隱私合規語音不離開企業網路語音上傳至雲端

金融業要特別權衡合規這一塊。處理敏感資訊的金融客服,用 MRCPv2 搭地端部署的語音引擎,語音資料就不會離開企業網路,個資法和金融監管比較好過。反過來若走雲端 HTTP API,語音要上傳到雲端,這中間的合規風險得先評估清楚。

混合架構

現代客服中心可採用混合架構,根據場景選擇最適合的整合方式:

場景建議方式理由
IVR 語音導航MRCPv2低延遲、Barge-in 原生支援
通話後語音分析HTTP API(批次)非即時需求、彈性擴展
即時語音助理MRCPv2 或 WebSocket即時互動需求
語音生物辨識依引擎支援部分僅支援 HTTP API

常見 MRCPv2 方案

產品廠商ASR/TTS 引擎特點
長問語音引擎長問科技(Bronci)自有 ASR/TTS 引擎台灣在地語音引擎,針對在地口音與中英混合語音場景最佳化
Nuance Speech ServerMicrosoft/NuanceNuance Recognizer + Vocalizer國際市場長期使用的商業方案,多語系支援完整

選型時除了辨識率,還要看幾件事:語言與口音的涵蓋範圍(尤其中文與台語)、是否支援地端部署以符合資料治理要求、以及授權計價方式(依並發數或依時數)。

效能與調校

ASR 效能指標

指標說明目標值
WER(Word Error Rate)字詞錯誤率< 10%
辨識延遲從說話結束到回傳結果< 500 ms
並發會話數同時處理的辨識會話依硬體規格
CPU 使用率ASR 伺服器 CPU< 70%(預留 headroom)

TTS 效能指標

指標說明目標值
首位元組延遲從收到 SPEAK 到開始播放< 200 ms
合成速度實時比(Real-time Factor)> 5x(每秒合成 5 秒語音)
自然度 MOS語音自然度評分> 4.0

承暉資訊資源中心