1、語(yǔ)音合成資源包括了兩個(gè)主要的事件,它們分別是SPEECH-MARKER和SPEAK-COMPLETE事件。
當語(yǔ)音合成資源服務(wù)器在其正在使用的語(yǔ)音描述語(yǔ)言中發(fā)現支持了一個(gè)標記標簽時(shí),語(yǔ)音合成服務(wù)器會(huì )生成一個(gè)SPEECH-MARKER的事件。在SSML文件中會(huì )插入一個(gè)<標記>要素和其關(guān)聯(lián)的值。另外,當在PENDING狀態(tài)的SPEAK請求進(jìn)入到IN-PROGRESS狀態(tài)時(shí),資源合成服務(wù)器也會(huì )發(fā)生SPEECH-MARKER事件。這里,SPEECH-MARKER的目的是請求狀態(tài)從此時(shí)(時(shí)間戳)進(jìn)入到進(jìn)行中狀態(tài)。
語(yǔ)音MARKER設計中會(huì )包含一個(gè)演講,標記包含一個(gè)時(shí)間戳和其發(fā)現的標簽。以下是一個(gè)語(yǔ)音MARKER的示例圖:

具體的SPEECH-MARKER事件中包含的消息如下:
- F1(客戶(hù)端→speechsynth):
- MRCP / 2.0330 SPEAK 8000
- 通道標識符:23eb10a @ speechsynth
- 內容類(lèi)型:應用程序/ SSML + XML
- 內容長(cháng)度:205 <?xmlversion = “1.0” 編碼= “UTF-8”?>
- XML:LANG = “EN-US”>
-
從mark name =“here”/這里是mark name =“there”/那里說(shuō)話(huà)
- F2(speechsynth→客戶(hù)端):
- MRCP / 2.0 118 8000 200 正在進(jìn)行中
- 頻道標識符:23eb10a @ speechsynth
- 語(yǔ)音標記:時(shí)間戳= 857206027059
- F3(speechsynth→客戶(hù)):
- MRCP / 2.0 132 SPEECH-MARKER 8000正在進(jìn)行中
- 頻道標識符:23eb10a @ speechsynth
- Speech-Marker:timestamp = 861500994355;這里
- F4(speechsynth→客戶(hù)端):
- MRCP / 2.0 133 SPEECH-MARKER 8000正在進(jìn)行中
- 頻道標識符:23eb10a @ speechsynth
- Speech-Marker:timestamp = 865795961651;那里
- F5(speechsynth→客戶(hù)端):
- MRCP / 2.0 161 SPEAK-COMPLETE 8000完整
- 頻道標識符:23eb10a @ speechsynth
- Speech-Marker:timestamp = 865795961652;那里
- 完成 - 原因:000正常
2、SPEAK完成事件簡(jiǎn)單來(lái)說(shuō)就是完成了相應的SPEAK請求以后,合成資源服務(wù)器端生成的事件消息。SPEAK完成事件消息中包含完成原因來(lái)說(shuō)明結果原因其最后的原因代碼如下列表:

3、在合成語(yǔ)音資源的頭域值中包括了十七個(gè)頭域值。我們這里簡(jiǎn)單介紹這些報頭的消息內容。

因為篇幅的關(guān)系,我們不會(huì )對每個(gè)頭做非常詳細地說(shuō)明,筆者僅做一個(gè)簡(jiǎn)單介紹具體的細節讀者可以參考RFC6786以下是十七個(gè)頭的使用說(shuō)明。:
完成 - 原因總是出現在SPEAK-COMPLETE響應消息中,它表示SPEAK結束。此頭值包含一個(gè)原因代碼和相應的原因名稱(chēng)。例如:完成 - 原因:002解析失敗。
完成 - 原因總是以可選的方式出現在SPEAK-COMPLETE響應消息中來(lái)提供更多消息說(shuō)明,它表示SPEAK請求結束的原因。此消息用來(lái)支持對MRCP客戶(hù)端的日志排查等。例如:完成 -原因:SSMLnotwell形成。
Failed-URI表示訪(fǎng)問(wèn)URL失敗,例如:Failed-URI:http://www.example.com/dictionary.pls。
Failed-URI-Cause是配合失敗-URI來(lái)一起工作為使用的協(xié)議提供更多具體的消息內容,例如HTTP的4XX或者5XX消息,例如:Failed-URI-Cause:404 Not Found。
語(yǔ)音標記具有兩個(gè)目的:1)報告最后發(fā)現的標記0.2)報告執行語(yǔ)音合成的時(shí)間戳例如:語(yǔ)音標記:時(shí)間戳= 857206027059; my_mark_name。
畫(huà)外音支持四種SSML的屬性,它們分別是:語(yǔ)音性別,語(yǔ)音時(shí)代,語(yǔ)音變,和語(yǔ)音名稱(chēng)例如:語(yǔ)音性別:女。
Prosody-支持來(lái)自于SSML的六種屬性,它們分別是:韻律音調,韻律輪廓,韻律范圍,韻律率,韻律持續期間,和韻律批量這些屬性我們在以前的SSML文件中已經(jīng)做過(guò)介紹讀者可以參考歷史文檔來(lái)進(jìn)一步學(xué)習例如:。韻律卷:軟
Speaker-Profile提供一個(gè)URL參考鏈接支持說(shuō)話(huà)人的語(yǔ)音合成。示例:Speaker-Profile:http://www.example.com/speaker01.pfl。
言語(yǔ) - 語(yǔ)言表示默認的合成語(yǔ)言支持示例為:言語(yǔ) - 語(yǔ)言:zh-GB。
殺-ON-強行插入攜帶一個(gè)布爾值來(lái)打斷SPEAK請求中的DTMF或者語(yǔ)音輸入示例為:殺-ON-強插:假的。
Fetch-Hint決定何時(shí)語(yǔ)音合成資源應該對資源(URL關(guān)聯(lián)的相關(guān)資源)做一個(gè)請求。示例:Fetch-Hint:safe。這里安全表示當需要內容時(shí)可以對其進(jìn)行下載。
Audio-Fetch-Hint表示對象使用在語(yǔ)音文件中,并且可以覆蓋上面的頭值。示例: Audio-Fetch-Hint:stream。
Jump-Size表示要求對語(yǔ)音進(jìn)行跳轉(前轉或回退)。示例:Jump-Size:+5秒,可選參數包括:二,詞,句,或段段。
Speak-Restart消息通知MRCP客戶(hù)端有一個(gè)CONTROL請求攜帶了跳轉的設置。示例:Speak-Restart:true。
Speak-Length設定一個(gè)在語(yǔ)音的說(shuō)話(huà)長(cháng)度。例如:Speak-Length:25 Second
Load-Lexicon在DEFINE-LEXICON請求中設定的值表示是否可以加載或者卸載語(yǔ)法文件。示例:Load-Lexicon:false。
的詞典檢索順序設定一個(gè)已查詢(xún)到的語(yǔ)法列表示例:
的詞典檢索順序:
http://example.com/nouns.pls
http://10.0.0.1/places.pls
4、在此章節的介紹中,我們介紹了兩種事件的具體細節和消息示例,另外還介紹了語(yǔ)音合成資源的十七個(gè)報頭以及各自的示例。用戶(hù)可以參考RFC對標題的屬性和可選參數進(jìn)行進(jìn)一步的了解。
在接下來(lái)的章節中,筆者會(huì )繼續介紹語(yǔ)音識別資源的請求,事件和報頭的使用說(shuō)明。




unimrcp-MRCP協(xié)議學(xué)習分享,QQ群號:208136295
關(guān)注微信公眾號:asterisk-cn,獲得有價(jià)值的行業(yè)分享
freepbx 技術(shù)論壇:www.ippbx.org.cn
Asterisk, freepbx技術(shù)文檔: www.freepbx.org.cn
歐米(Omni)智能客服解決方案
融合通信商業(yè)解決方案,協(xié)同解決方案首選產(chǎn)品:www.hiastar.com