|
灰鴿子遠程控制軟件概念模型,背后有哪些強大的技術在支撐?(一)明天發文章(二)
當我們使用像Skype、QQ這樣的工具和朋友流暢地進行語音視頻聊天時,我們可曾想過其背后有哪些強大的技術在支撐?本文將對網絡語音通話所使用到的技術做一些簡單的介紹
一.概念模型
網絡語音通話通常是雙向的,就模型層面來說,這個雙向是對稱的。為了簡單起見,我們討論一個方向的通道就可以了。一方說話,另一方則聽到聲音?此坪唵味附,但是其背后的流程卻是相當復雜的。我們將其經過的各個主要環節簡化成下圖所示的概念模型:
1.png (11.09 KB, 下載次數: 446)
下載附件
灰鴿子遠程控制軟件
2017-12-16 21:51 上傳
1.語音采集
語音采集指的是從麥克風采集音頻數據,即聲音樣本轉換成數字信號。其涉及到幾個重要的參數:采樣頻率、采樣位數、聲道數。
簡單的來說:采樣頻率,就是在1秒內進行采集動作的次數;采樣位數,就是每次采集動作得到的數據長度。
而一個音頻幀的大小就等于:(采樣頻率×采樣位數×聲道數×時間)/8。
通常一個采樣幀的時長為10ms,即每10ms的數據構成一個音頻幀。假設:采樣率16k、采樣位數16bit、聲道數1,那么一個10ms的音頻幀的大小為:(16000*16*1*0.01)/8 = 320 字節。計算式中的0.01為秒,即10ms。
2.編碼
假設我們將采集到的音頻幀不經過編碼,而直接發送,那么我們可以計算其所需要的帶寬要求,仍以上例:320*100 =32KBytes/s,如果換算為bits/s,則為256kb/s。這是個很大的帶寬占用。而通過網絡流量監控工具,我們可以發現采用類似QQ等IM軟件進行語音通話時,流量為3-5KB/s,這比原始流量小了一個數量級。而這主要得益于音頻編碼技術。
所以,在實際的語音通話應用中,編碼這個環節是不可缺少的。目前有很多常用的語音編碼技術,像G.729、iLBC、AAC、SPEEX等等。
3.網絡傳送
當一個音頻幀完成編碼后,即可通過網絡發送給通話的對方。對于語音對話這樣Realtime應用,低延遲和平穩是非常重要的,這就要求我們的網絡傳送非常順暢。
4.解碼
當對方接收到編碼幀后,會對其進行解碼,以恢復成為可供聲卡直接播放的數據。
5.語音播放
完成解碼后,即可將得到的音頻幀提交給聲卡進行播放。
|
|