目前無(wú)繩電話(huà)或IP電話(huà)使用的通用SoC集成了接入器件和統(tǒng)一的無(wú)線(xiàn)通信器件,并且在系統(tǒng)軟件中集成軟件語(yǔ)音引擎,可以完全支持VoIP要求的軟件數(shù)字信號(hào)處理。語(yǔ)音引擎采用了軟DSP(soft-DSP)實(shí)現(xiàn)技術(shù),能夠滿(mǎn)足嵌入式處理器的系統(tǒng)性能要求。為了確保VoIP具有電話(huà)質(zhì)量的語(yǔ)音性能,系統(tǒng)軟件必須滿(mǎn)足語(yǔ)音引擎的實(shí)時(shí)要求。
下一代軟DSP產(chǎn)品采用了實(shí)時(shí)處理和寬帶(高清晰度)語(yǔ)音通信技術(shù),可以比當(dāng)前技術(shù)取得更大的最終用戶(hù)滿(mǎn)意度和市場(chǎng)潛力。這些產(chǎn)品為語(yǔ)音通信建立了新的高清晰度標(biāo)準(zhǔn)。根據(jù)本文建議開(kāi)發(fā)的產(chǎn)品可以取得超過(guò)電話(huà)質(zhì)量通信的效果。相反,不滿(mǎn)足這些實(shí)時(shí)要求將造成許多語(yǔ)音質(zhì)量劣化的癥狀,包括掉話(huà)、顯著的時(shí)延、爆破音或卡嗒聲、傳真/調(diào)制解調(diào)器呼叫失敗或傳真頁(yè)錯(cuò)亂,以及由于丟包或超額延時(shí)造成的語(yǔ)音不清等等。不滿(mǎn)足實(shí)時(shí)要求還將導(dǎo)致錯(cuò)過(guò)時(shí)限,這將是嚴(yán)重的系統(tǒng)故障,需要整個(gè)系統(tǒng)復(fù)位才能解決,除非系統(tǒng)支持硬件和軟件的恢復(fù)。
電話(huà)呼叫中的語(yǔ)音通信是雙向的:音頻的發(fā)送和接收同時(shí)進(jìn)行。因此盡量減小語(yǔ)音系統(tǒng)中的延時(shí)以確保音頻質(zhì)量很關(guān)鍵;然而,減小時(shí)延的優(yōu)化工作與滿(mǎn)足語(yǔ)音處理要求相沖突。在傳統(tǒng)的回放音頻系統(tǒng)中,如音頻(MP3)回放或多媒體流,緩存可以做得很大以補(bǔ)償系統(tǒng)處理能力的低下,此時(shí)延時(shí)與質(zhì)量無(wú)關(guān)。語(yǔ)音引擎卻不能這樣做,因?yàn)橐纛l緩存必須能在固定時(shí)間得到全部處理。這種架構(gòu)通常采用中斷優(yōu)先級(jí)劃分和軟件調(diào)度,利用甚至在某些時(shí)候增強(qiáng)操作系統(tǒng)的實(shí)時(shí)性能來(lái)保證語(yǔ)音處理的完成。
在語(yǔ)音引擎系統(tǒng)中,軟件中斷服務(wù)程序?qū)⑴c語(yǔ)音硬件編解碼器交換語(yǔ)音采樣。語(yǔ)音硬件編解碼器以8kHz的采樣速率完成模擬信號(hào)與音頻采樣之間的來(lái)回轉(zhuǎn)換。在電話(huà)應(yīng)用中,硬件編解碼器被連接到作為電話(huà)物理接口的用戶(hù)線(xiàn)接口電路(SLIC)或無(wú)繩電話(huà)的DECT射頻電路。而在IP電話(huà)或移動(dòng)手機(jī)場(chǎng)合,硬件編解碼器被連接到放大器,放大器再與麥克風(fēng)和揚(yáng)聲器相連。
SoC硬件接口在保證語(yǔ)音引擎的實(shí)時(shí)性能和準(zhǔn)確調(diào)度方面扮演著關(guān)鍵的角色。如果SoC帶TDM或AC97外設(shè),電話(huà)語(yǔ)音編解碼器可以直接連到處理器。如果嵌入式處理器不帶這些外設(shè),最低成本的解決方案是經(jīng)過(guò)一個(gè)CPLD再與處理器相連。CPLD可以從硬件編解碼器逐個(gè)收發(fā)采樣,這種方案對(duì)時(shí)間最敏感,并且代表了最壞情況下的時(shí)序要求。
不管是通過(guò)TDM、AC97還是CPLD,語(yǔ)音硬件服務(wù)必須優(yōu)先處理以確保中斷得到響應(yīng);其他系統(tǒng)軟件必須不影響這個(gè)中斷的關(guān)鍵時(shí)序。在8kHz的采樣速率下,中斷將每125μs發(fā)生一次。對(duì)于運(yùn)行在200MHz的SoC來(lái)說(shuō),針對(duì)速度優(yōu)化過(guò)的CPLD中斷服務(wù)程序處理時(shí)間在25μs以?xún)?nèi)。這就允許最大中斷延時(shí)的計(jì)算值為90μs(125μs–(25μs+中斷服務(wù)建立時(shí)間10μs))。系統(tǒng)要想滿(mǎn)足實(shí)時(shí)時(shí)限,操作系統(tǒng)必須在收到編解碼器中斷后的90μs內(nèi)調(diào)用中斷服務(wù)程序,并且操作系統(tǒng)必須允許服務(wù)運(yùn)行并立即完成。
操作系統(tǒng)還必須保證中斷服務(wù)程序可以調(diào)度語(yǔ)音引擎,以便立即對(duì)在音頻緩存進(jìn)行處理。中斷服務(wù)程序使用緩存準(zhǔn)備好信號(hào)激活這種調(diào)度,如圖所示。在該圖中可以看到,DMA外設(shè)用來(lái)將音頻采樣采集到緩存中供語(yǔ)音引擎的處理,這種方法的效率要比CPLD實(shí)現(xiàn)高。
對(duì)語(yǔ)音引擎的要求是要在下一個(gè)語(yǔ)音緩存準(zhǔn)備好之前完成語(yǔ)音采樣的處理。語(yǔ)音引擎中處理語(yǔ)音所需的時(shí)間取決于多個(gè)因素,包括處理器、緩存大小、RAM速度、物理語(yǔ)音接口數(shù)量(音頻通道)、緩存要求的軟件DSP處理以及所用的語(yǔ)音編碼器類(lèi)型。
要想全面地分析語(yǔ)音引擎時(shí)序要求,請(qǐng)參考附表。tidle參數(shù)代表的是所有其他系統(tǒng)進(jìn)程或系統(tǒng)應(yīng)用程序留給可用處理的剩余時(shí)間。從語(yǔ)音引擎設(shè)計(jì)角度看,就是指空閑時(shí)間。所有較低優(yōu)先級(jí)系統(tǒng)的處理都是發(fā)生在語(yǔ)音引擎完成實(shí)時(shí)語(yǔ)音處理后的空閑時(shí)間內(nèi)。在最壞情況下,tidle可能為0ms,此時(shí)語(yǔ)音引擎處理會(huì)有多次反復(fù)。
D2科技公司的vPort軟件包含了針對(duì)所支持配置的性能基準(zhǔn)。例如,vPort版本可能規(guī)定三方G.729AB語(yǔ)音會(huì)議呼叫的語(yǔ)音處理,作為最壞情況和緩存連續(xù)清空的條件下,要求語(yǔ)音引擎提供每10ms最大100MHz的處理能力。如果運(yùn)行在400MHz RISC處理器上,tvoice在最壞情況處理時(shí)要求100MHz(CPU處理能力的25%),對(duì)應(yīng)每隔10ms處理間隔中的2.5ms處理時(shí)間。如果tswitch超過(guò)7.5ms(tswitch=tbuffer–(tvoice+tidle)),實(shí)時(shí)時(shí)限就無(wú)法滿(mǎn)足,這個(gè)時(shí)間還不包括在語(yǔ)音引擎處理期間由于其他外設(shè)中斷、下半部處理或“tasklet”軟中斷引起的額外開(kāi)銷(xiāo)。
以下是設(shè)計(jì)師在集成用于軟DSP處理的語(yǔ)音引擎時(shí)需要考慮的最重要的一些設(shè)計(jì)準(zhǔn)則:
1. 為了使質(zhì)量最優(yōu),語(yǔ)音通信要求最小化系統(tǒng)時(shí)延;
2. 語(yǔ)音通信是連續(xù)的,丟失采樣或失去實(shí)時(shí)性將是最嚴(yán)重的錯(cuò)誤;
3. 語(yǔ)音硬件有嚴(yán)格的時(shí)序要求,在丟失時(shí)序時(shí)需要一種差錯(cuò)恢復(fù)機(jī)制;
4. 語(yǔ)音引擎實(shí)時(shí)處理必須在10ms的軟件時(shí)限內(nèi)完成對(duì)語(yǔ)音緩存的處理。語(yǔ)音引擎中斷服務(wù)程序在CPU外設(shè)硬件基礎(chǔ)上有嚴(yán)格的時(shí)序限制。
圖1:語(yǔ)音引擎時(shí)序圖
責(zé)任編輯:gt
-
dsp
+關(guān)注
關(guān)注
552文章
7959瀏覽量
347927 -
調(diào)制解調(diào)器
+關(guān)注
關(guān)注
3文章
847瀏覽量
38744
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論