- 作者:james.zhu(james.zhu@hiastar.com) www.hiastar.com 微信公眾號(hào):asterisk-cn
- Asterisk課堂-如何通過(guò)源代碼安裝方式安裝Asteisk/dahdi
- Asterisk課堂-系統(tǒng)部署環(huán)境要求
- Asterisk課堂-Asterisk技術(shù)架構(gòu)
- Asterisk課堂-撥號(hào)規(guī)則基礎(chǔ)
- Asterisk課堂-創(chuàng)建第一個(gè)撥號(hào)規(guī)則
- Asterisk課堂-撥號(hào)規(guī)則中的Contexts
- Asterisk課堂-撥號(hào)規(guī)則中變量的使用
- Asterisk課堂-撥號(hào)規(guī)則中的Extensions用法
- Asterisk課堂-撥號(hào)規(guī)則中匹配模式
- Asterisk課堂-IAX2 介紹
- Asterisk課堂-IAX2 呼叫流程
- Asterisk課堂-SIP介紹
- Asterisk課堂-SIP呼叫流程
- Asterisk課堂-終端注冊(cè)
- Asterisk課堂-SIP Trunk
- Asterisk課堂-SIP和NAT
- Asterisk課堂-撥號(hào)規(guī)則中的Include使用方法
- Asterisk課堂-撥號(hào)規(guī)則中的語(yǔ)音播放
- Asterisk課堂-DTMF 介紹
- Asterisk課堂-語(yǔ)音IVR基礎(chǔ)
- Asterisk課堂-Timeout 超時(shí)設(shè)置
- Asterisk課堂-CLI 使用方法
- Asterisk課堂-關(guān)于Input DTMF介紹
- Asterisk課堂-撥號(hào)規(guī)則中呼叫控制
- Asterisk課堂-如何使用Debug
- Asterisk課堂-撥號(hào)規(guī)則中的優(yōu)先級(jí)
- Asterisk課堂-語(yǔ)音編碼介紹

視頻中介紹了幾種編碼的特點(diǎn)和各自的特點(diǎn):
本章節(jié)主要介紹幾個(gè)在A(yíng)sterisk環(huán)境中關(guān)于語(yǔ)音編碼的相關(guān)問(wèn)題。它們包括:語(yǔ)音編碼的基本屬性,使用語(yǔ)音編碼原因,幾種語(yǔ)音編碼的各自的特點(diǎn)。
語(yǔ)音編碼包括四個(gè)基本的屬性,它們是:Sampling rate,Packet size,Complexity,Bandwidth。 語(yǔ)音首先經(jīng)過(guò)空氣傳播,并且通過(guò)一定的設(shè)備采集了語(yǔ)音以后,經(jīng)過(guò)設(shè)備的處理,完成數(shù)字轉(zhuǎn)換,最后轉(zhuǎn)化成一定的數(shù)據(jù)形式,通過(guò)網(wǎng)絡(luò)或者其他設(shè)備發(fā)送到相應(yīng)的目的地。對(duì)于語(yǔ)音電話(huà)系統(tǒng)來(lái)說(shuō),根據(jù)數(shù)字通信之父Nyquist的采樣定律,8kHz是可以滿(mǎn)足窄帶采樣率的要求。這個(gè)過(guò)程就涉及了以上這四個(gè)屬性。因?yàn)橐m應(yīng)不同的環(huán)境和設(shè)備的要求,采樣律可能有所不同。Packet size 是語(yǔ)音的打包時(shí)長(zhǎng),顧名思義就是在一定時(shí)間內(nèi)語(yǔ)音文件在傳輸之前打包幀數(shù)據(jù)需要的時(shí)間。因?yàn)椴煌幋a的傳輸帶寬要求不同,語(yǔ)音數(shù)據(jù)以幀的方式來(lái)測(cè)試,這樣需要要求在一定時(shí)間內(nèi)對(duì)每個(gè)幀數(shù)據(jù)進(jìn)行打包,以便穩(wěn)定地發(fā)送到對(duì)端。一般都限定在20毫秒內(nèi)完成,有的語(yǔ)音編碼可支持靈活配置。語(yǔ)音編碼算法的計(jì)算復(fù)雜度和帶寬,CPU有著非常緊密的聯(lián)系,采用不同算法會(huì)消耗不同的系統(tǒng)資源,例如需要高壓縮比的編碼還是低壓縮比的編碼。這樣就會(huì)導(dǎo)致網(wǎng)絡(luò)帶寬占用的不同。Bandwidth 是一個(gè)核心的考慮因素,為了節(jié)省帶寬,很多用戶(hù)考慮使用G.729 編碼。但是,G.729 會(huì)提高部署成本。



為什么在asterisk中使用語(yǔ)音編碼? 根據(jù)上面的介紹,因?yàn)榫W(wǎng)絡(luò)的不同和終端的不同,導(dǎo)致通話(huà)使用的語(yǔ)音編碼不同,雙方不同的語(yǔ)音編碼不會(huì)實(shí)現(xiàn)正常的通話(huà)。這時(shí),需要Asterisk來(lái)進(jìn)行一個(gè)語(yǔ)音編碼的轉(zhuǎn)換功能,這樣會(huì)導(dǎo)致系統(tǒng)CPU負(fù)載增加,可能影響系統(tǒng)的穩(wěn)定性。


Asterisk環(huán)境中常用編碼的特點(diǎn)。在目前經(jīng)常使用的幾種語(yǔ)音編碼中,大部分用戶(hù)需要使用G.711 或者G.729 編碼。G.711 使用在傳統(tǒng)的PSTN語(yǔ)音接入環(huán)境中,G.729 則使用在IP測(cè)定語(yǔ)音編碼環(huán)境,例如現(xiàn)在的SIP中繼或者IMS。為了保證系統(tǒng)的穩(wěn)定性,選擇語(yǔ)音編碼時(shí)管理員需要考慮幾個(gè)方面的因素,例如語(yǔ)音質(zhì)量,帶寬占用比,CPU消耗情況,部署費(fèi)用的問(wèn)題。當(dāng)然管理員也只能在這幾個(gè)因素之間做一個(gè)平衡和妥協(xié)。圖例中列出了它們各自的特點(diǎn)。如果采用了G.729編碼,在系統(tǒng)部署時(shí)要考慮編碼轉(zhuǎn)換的問(wèn)題。編碼轉(zhuǎn)化的成本大約一路差不多10美金左右。編碼轉(zhuǎn)換的解決方案包括通過(guò)IMS設(shè)備或者語(yǔ)音編碼卡來(lái)解決,也可以購(gòu)買(mǎi)Digium官方的軟件許可證來(lái)支持。另外,還有免費(fèi)的編碼解決方案,但是這里提醒大家,這種解決方案不能使用在商業(yè)的環(huán)境中,以免引起法律方面的糾紛,同時(shí)語(yǔ)音質(zhì)量也得不到保障。管理員在部署Asterisk服務(wù)器時(shí),筆者建議用戶(hù)使用計(jì)算工具來(lái)計(jì)算出不同編碼的帶寬占用比,這樣可以獲得一個(gè)大概部署預(yù)算費(fèi)用。


本章節(jié)簡(jiǎn)單討論了語(yǔ)音編碼的基本概念和相關(guān)的幾個(gè)參數(shù),也討論了為什么使用不同的語(yǔ)音編碼,還有幾個(gè)不同語(yǔ)音編碼的特點(diǎn)。另外,我們這里沒(méi)有討論寬帶的編碼和其他高清編碼,還有最新的Opus 和其他編碼類(lèi)型。當(dāng)然,這些編碼也逐漸支持了Asterisk環(huán)境。因?yàn)榫W(wǎng)絡(luò)環(huán)境不同,終端不同,筆者建議用戶(hù)需要根據(jù)自己的網(wǎng)絡(luò)環(huán)境做進(jìn)一步的測(cè)試來(lái)保證系統(tǒng)的語(yǔ)音質(zhì)量。