0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

網(wǎng)絡語音通話運用了哪些技術?

Dbwd_Imgtec ? 來源:未知 ? 作者:易水寒 ? 2018-08-12 11:38 ? 次閱讀

當我們使用像Skype、QQ這樣的工具和朋友流暢地進行語音視頻聊天時,我們可曾想過其背后有哪些強大的技術在支撐?本文將對網(wǎng)絡語音通話所使用到的技術做一些簡單的介紹,算是管中窺豹吧。

一、概念模型

網(wǎng)絡語音通話通常是雙向的,就模型層面來說,這個雙向是對稱的。為了簡單起見,我們討論一個方向的通道就可以了。一方說話,另一方則聽到聲音。看似簡單而迅捷,但是其背后的流程卻是相當復雜的。我們將其經(jīng)過的各個主要環(huán)節(jié)簡化成下圖所示的概念模型:

這是一個最基礎的模型,由五個重要的環(huán)節(jié)構成:采集、編碼、傳送、解碼、播放。

1. 語音采集

語音采集指的是從麥克風采集音頻數(shù)據(jù),即聲音樣本轉換成數(shù)字信號。其涉及到幾個重要的參數(shù):采樣頻率、采樣位數(shù)、聲道數(shù)。

簡單的來說:采樣頻率,就是在1秒內(nèi)進行采集動作的次數(shù);采樣位數(shù),就是每次采集動作得到的數(shù)據(jù)長度。

而一個音頻幀的大小就等于:(采樣頻率×采樣位數(shù)×聲道數(shù)×時間)/8。

通常一個采樣幀的時長為10ms,即每10ms的數(shù)據(jù)構成一個音頻幀。假設:采樣率16k、采樣位數(shù)16bit、聲道數(shù)1,那么一個10ms的音頻幀的大小為:(16000*16*1*0.01)/8 = 320 字節(jié)。計算式中的0.01為秒,即10ms。

附:可以參考了解語音視頻采集組件MCapture相關介紹及Demo源碼與SDK下載。

2. 編碼

假設我們將采集到的音頻幀不經(jīng)過編碼,而直接發(fā)送,那么我們可以計算其所需要的帶寬要求,仍以上例:320*100 =32KBytes/s,如果換算為bits/s,則為256kb/s。這是個很大的帶寬占用。而通過網(wǎng)絡流量監(jiān)控工具,我們可以發(fā)現(xiàn)采用類似QQ等IM軟件進行語音通話時,流量為3-5KB/s,這比原始流量小了一個數(shù)量級。而這主要得益于音頻編碼技術。

所以,在實際的語音通話應用中,編碼這個環(huán)節(jié)是不可缺少的。目前有很多常用的語音編碼技術,像G.729、iLBC、AAC、SPEEX等等。

3. 網(wǎng)絡傳送

當一個音頻幀完成編碼后,即可通過網(wǎng)絡發(fā)送給通話的對方。對于語音對話這樣Realtime應用,低延遲和平穩(wěn)是非常重要的,這就要求我們的網(wǎng)絡傳送非常順暢。

4. 解碼

當對方接收到編碼幀后,會對其進行解碼,以恢復成為可供聲卡直接播放的數(shù)據(jù)。

5. 語音播放

完成解碼后,即可將得到的音頻幀提交給聲卡進行播放。

附:可以參考了解語音播放組件MPlayer相關介紹與Demo源碼與SDK下載

二、實際應用中的難點及解決方案

如果僅僅依靠上述的技術就能實現(xiàn)一個效果良好的應用于廣域網(wǎng)上的語音對話系統(tǒng),那就沒什么太大的必要來撰寫此文了。正是有很多現(xiàn)實的因素為上述的概念模型引入了眾多挑戰(zhàn),使得網(wǎng)絡語音系統(tǒng)的實現(xiàn)不是那么簡單,其涉及到很多專業(yè)技術。當然,這些挑戰(zhàn)大多已經(jīng)有了成熟的解決方案。首先,我們要為“效果良好”的語音對話系統(tǒng)下個定義,我覺得應該達到如下幾點:

低延遲。只有低延遲,才能讓通話的雙方有很強的Realtime的感覺。當然,這個主要取決于網(wǎng)絡的速度和通話雙方的物理位置的距離,就單純軟件的角度,優(yōu)化的可能性很小。

背景噪音小。

聲音流暢、沒有卡、停頓的感覺。

沒有回音。

下面我們就逐個說說實際網(wǎng)絡語音對話系統(tǒng)中額外用到的技術。

1. 回音消除 AEC

現(xiàn)在大家?guī)缀醵家呀?jīng)都習慣了在語音聊天時,直接用PC或筆記本的聲音外放功能。殊不知,這個小小的習慣曾為語音技術提出了多大的挑戰(zhàn)。當使用外放功能時,揚聲器播放的聲音會被麥克風再次采集,傳回給對方,這樣對方就聽到了自己的回音。所以,實際應用中,回音消除的功能是必需的。

在得到采集的音頻幀后,在編碼之前的這個間隙,是回音消除模塊工作的時機。

其原理簡單地來說就是,回音消除模塊依據(jù)剛播放的音頻幀,在采集的音頻幀中做一些類似抵消的運算,從而將回聲從采集幀中清除掉。這個過程是相當復雜的,而且其還與你聊天時所處的房間的大小、以及你在房間中的位置有關,因為這些信息決定了聲波反射的時長。 智能的回音消除模塊,能動態(tài)調(diào)整內(nèi)部參數(shù),以最佳適應當前的環(huán)境。

2. 噪聲抑制 DENOISE

噪聲抑制又稱為降噪處理,是根據(jù)語音數(shù)據(jù)的特點,將屬于背景噪音的部分識別出來,并從音頻幀中過濾掉。有很多編碼器都內(nèi)置了該功能。

3. 抖動緩沖區(qū) JitterBuffer

抖動緩沖區(qū)用于解決網(wǎng)絡抖動的問題。所謂網(wǎng)絡抖動,就是網(wǎng)絡延遲一會大一會小,在這種情況下,即使發(fā)送方是定時發(fā)送數(shù)據(jù)包的(比如每100ms發(fā)送一個包),而接收方的接收就無法同樣定時了,有時一個周期內(nèi)一個包都接收不到,有時一個周期內(nèi)接收到好幾個包。如此,導致接收方聽到的聲音就是一卡一卡的。

JitterBuffer工作于解碼器之后,語音播放之前的環(huán)節(jié)。即語音解碼完成后,將解碼幀放入JitterBuffer,聲卡的播放回調(diào)到來時,從JitterBuffer中取出最老的一幀進行播放。

JitterBuffer的緩沖深度取決于網(wǎng)絡抖動的程度,網(wǎng)絡抖動越大,緩沖深度越大,播放音頻的延遲就越大。所以,JitterBuffer是利用了較高的延遲來換取聲音的流暢播放的,因為相比聲音一卡一卡來說,稍大一點的延遲但更流暢的效果,其主觀體驗要更好。

當然,JitterBuffer的緩沖深度不是一直不變的,而是根據(jù)網(wǎng)絡抖動程度的變化而動態(tài)調(diào)整的。當網(wǎng)絡恢復到非常平穩(wěn)通暢時,緩沖深度會非常小,這樣因為JitterBuffer而增加的播放延遲就可以忽略不計了。

4. 靜音檢測 VAD

在語音對話中,要是當一方?jīng)]有說話時,就不會產(chǎn)生流量就好了。靜音檢測就是用于這個目的的。靜音檢測通常也集成在編碼模塊中。靜音檢測算法結合前面的噪聲抑制算法,可以識別出當前是否有語音輸入,如果沒有語音輸入,就可以編碼輸出一個特殊的的編碼幀(比如長度為0)。

特別是在多人視頻會議中,通常只有一個人在發(fā)言,這種情況下,利用靜音檢測技術而節(jié)省帶寬還是非??捎^的。

5. 混音算法

在多人語音聊天時,我們需要同時播放來自于多個人的語音數(shù)據(jù),而聲卡播放的緩沖區(qū)只有一個,所以,需要將多路語音混合成一路,這就是混音算法要做的事情。即使,你可以想辦法繞開混音而讓多路聲音同時播放,那么對于回音消除的目的而言,也必需混音成一路播放,否則,回音消除最多就只能消除多路聲音中的某一路。

混音可以在客戶端進行,也可以在服務端進行(可節(jié)省下行的帶寬)。如果使用了P2P通道,那么混音就只能在客戶端進行了。如果是在客戶端混音,通常,混音是播放之前的最后一個環(huán)節(jié)。

綜合上面的概念模型以及現(xiàn)實中用到的網(wǎng)絡語音技術,下面我們給出一個完整的模型圖:

本文是我們在實現(xiàn)OMCS語音部分功能的一個粗略的經(jīng)驗總結。在這里,我們只是對圖中各個環(huán)節(jié)做了一個最簡單的說明,而任何一塊深入下去,都可以寫成一篇長篇論文甚至是一本書。所以,本文就算是為那些剛剛接觸網(wǎng)絡語音系統(tǒng)開發(fā)的人提供一個入門的地圖,給出一些線索。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Skype
    +關注

    關注

    0

    文章

    27

    瀏覽量

    13894
  • 噪聲抑制
    +關注

    關注

    0

    文章

    29

    瀏覽量

    12158
  • 語音通話
    +關注

    關注

    0

    文章

    29

    瀏覽量

    9409

原文標題:淺談網(wǎng)絡語音技術

文章出處:【微信號:Imgtec,微信公眾號:Imagination Tech】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    干貨!全面解析幾種LTE語音通話技術

    over LTE”,翻譯過來可以理解為一種“通過LTE網(wǎng)絡傳輸?shù)?b class='flag-5'>語音技術”。那么,什么是VoLTE語音技術、基于4G LTE
    發(fā)表于 04-10 10:09 ?2.4w次閱讀

    基于ZigBee網(wǎng)絡語音應急通信可行性研究

     基于ZigBee網(wǎng)絡語音應急通信可行性研究簡要介紹ZigBee無線網(wǎng)絡技術以及電信行業(yè)通話質量的評估標準。通過仿真模擬,對ZigBee無線信道上的VoIP和PTT兩種
    發(fā)表于 09-19 09:25

    移動視頻語音通話/全平臺視頻監(jiān)控/視頻直播源碼出售

    移動視頻語音通話/全平臺視頻監(jiān)控/視頻直播源碼出售移動端視頻采集:通過android系統(tǒng)采集視頻,并實時在3G環(huán)境下將視頻傳輸?shù)娇偛繑U展靈活:支持3G/wifi等無線網(wǎng)絡,效果商業(yè)運營保證高清視頻
    發(fā)表于 03-19 15:53

    移動視頻語音通話/全平臺視頻監(jiān)控/視頻直播源碼出售

    移動視頻語音通話/全平臺視頻監(jiān)控/視頻直播源碼出售移動端視頻采集:通過android系統(tǒng)采集視頻,并實時在3G環(huán)境下將視頻傳輸?shù)娇偛繑U展靈活:支持3G/wifi等無線網(wǎng)絡,效果商業(yè)運營保證高清視頻
    發(fā)表于 03-31 09:30

    可實現(xiàn)通話語音芯片有哪些,求推薦

    想做個東西實現(xiàn)與手機通話,求問有什么合適的語音芯片
    發(fā)表于 09-14 10:29

    多方通話中的語音優(yōu)先技術

      語音通信實時性要求較高。為了保證提供高音質的IP 電話通信,在帶寬不足、信息擁擠不堪的iP 網(wǎng)絡上,一般需要采用語音優(yōu)先技術?! ‘攺V域網(wǎng)(WAN ) 帶寬低于512kbit/s
    發(fā)表于 12-30 17:20

    Mate30 SA終端語音通話不能正常回落至4G網(wǎng)絡

    Mate30 SA終端語音通話不能正?;芈渲?G網(wǎng)絡?
    發(fā)表于 03-02 07:31

    啟英泰倫通話降噪方案,采用深度學習降噪算法,讓通話更清晰

    生活中的通話應用場景無處不在,如電話、對講機、遠程會議、在線教育等。普遍存在的問題是環(huán)境噪音、干擾聲導致通話聲音不清晰,語音失真等。 為了解決這一問題,啟英泰倫基于自適應線性濾波聯(lián)合非線性濾波的回聲
    發(fā)表于 08-22 17:36

    SRVCC語音技術

    SRVCC(單一無線語音呼叫連續(xù)性)實現(xiàn)從LTE網(wǎng)絡到WCDMA網(wǎng)絡的首次語音呼叫切換。作為支持LTE網(wǎng)絡
    發(fā)表于 02-08 15:18 ?2140次閱讀

    基于VoWLAN終端實現(xiàn)無線VoIP語音通話解決方案

    本文介紹通過VoWLAN終端利用現(xiàn)有WLAN網(wǎng)絡,實現(xiàn)無線VoIP無線語音通話的幾種解決方案,并介紹方案具體的構成組件。
    發(fā)表于 12-14 14:10 ?3358次閱讀

    中移動稱4G通話比2G清晰 語音通話質量提升2倍

    6月27日消息,中移動首次發(fā)布了關于4G語音技術白皮書,能將采用VoLTE技術語音呼叫切換至2G/3G網(wǎng)絡上,
    發(fā)表于 06-27 11:09 ?1.4w次閱讀

    Volte是基于IMS域的純IP的語音通話技術

    現(xiàn)在三大運營商都開始了Volte的商用(聯(lián)通是試商用),Volte可以帶來語音的提升,但是現(xiàn)在在大多數(shù)的地區(qū),不僅僅需要兩臺手機都支持Volte,而且需要是同一運營商之間的通話才屬于高清通話,才可以帶來
    發(fā)表于 10-14 10:14 ?2790次閱讀

    VoLTE語音通話究竟是一個什么樣的技術

    隨著通信技術飛速發(fā)展,以往2G、3G時代的數(shù)據(jù)語音傳輸已經(jīng)無法滿足用戶需求了,大家都在期待更高質量的高通通話或者視頻通話,對此2G、3G網(wǎng)絡
    發(fā)表于 10-31 10:56 ?3001次閱讀
    VoLTE<b class='flag-5'>語音</b><b class='flag-5'>通話</b>究竟是一個什么樣的<b class='flag-5'>技術</b>

    高通和中興通訊利用5G網(wǎng)絡實現(xiàn)了語音通話

    語音服務是移動運營商提供的基礎性服務,利用5G網(wǎng)絡實現(xiàn)語音通話被稱為新空口承載語音(VoNR)。實現(xiàn)VoNR
    發(fā)表于 01-07 09:44 ?693次閱讀

    衛(wèi)星通話網(wǎng)絡通話如何相互轉換?

    衛(wèi)星通話網(wǎng)絡通話如何相互轉換? 在當今信息化社會,通信和信息的傳播變得越來越發(fā)達。無線通信,尤其是衛(wèi)星通信的出現(xiàn),極大地改變了人們之間的通信方式。人們在地球上可以使用網(wǎng)絡
    的頭像 發(fā)表于 08-30 17:27 ?1701次閱讀