① 求助android 處理 雙通道實時對講 消除回聲
問題
我們在做語音實時對講的時候往往會碰到一個瓶頸,這個瓶頸就是在不戴耳機的情況下會有很大的迴音,本文就討論如何解決。
解決方式:
(1)其實有做了同一時間只有一端能夠說或者聽,類似於對講機,這種雖然是實時的,但是體驗不好,還不如微信;
(2)兩邊戴上耳機,這樣也沒迴音,但是也不可能一直帶著耳機吧,而且有時還不只一個人聽呢;
(3)將這個回應消除,這個也是本文的重點。
3.speex迴音消除
做迴音消除有硬體消除和軟體消除,這里採用硬體消除,通過三方開源庫speex消除,對於speex可以查看下相關資料,我也是略懂,只是會用它而已;
speex不僅僅可以做迴音消除,它本身也是一個音頻的編解碼庫,但是它只能解碼自己編碼的音頻文件,但這在做語音通信已經足夠了。
經過實際測試,在不開外音的情況下可以消除百分之八十以上的迴音,但是開外音的話還是有迴音,畢竟是軟體消除,不可能那麼干凈的;
② 音視頻入門-音頻壓縮技術(二)
音頻壓縮技術是保證信號在聽覺不失真的前提碼咐襪下,對音頻數據信號進行盡可能大的壓縮
壓縮的主要方簡和法就是去除採集到的冗餘信息,所謂冗餘信息就是超出人耳聽覺范圍的音頻信號和被遮蔽掉的音頻信號
遮蔽的音頻信號包括 頻域遮蔽 和 時域遮蔽
熵編碼:哈夫曼編碼、算術編碼、香農編碼
常見的遲激音頻編碼器包括:OPUS(文件小、壓縮率高)、AAC(運用最廣泛的音頻編碼器,IOS、Android 嵌入式)Ogg、Speex(解決了迴音消除,在AAC之前比較受歡迎的音頻編碼器)、iLBC、AMR、G.711
編解碼器總結:不同的場景使用的音頻編碼器可能不一樣,一般情況下,AAC在直播系統中使用比較廣泛、OPUS是比較新的編碼器,WebRTC默認使用的是OPUS音頻編碼器、固話使用的是G.711系列
AAC(Advanced Audio Coding)由Fraunhofer IIS、杜比實驗室、AT&T、Sony等公司共同開發、目前是取代MP3格式
最開始是基於MPEG-2的音頻解碼技術,MPEG-4標准出現後,AAC重新集成其特性,加入了SBR技術和PS技術
目前常用的規格有:AAC LC、AAC HE V1和AAC HE V2
AAC LC:(LOW Complexity)低復雜度規格,碼流是128K,音質好
AAC HE V1:AAC LC + SBR(Spectral Band Replication),其核心思想是按頻譜分保存,低頻編碼保存主要成分,高頻單獨放大編碼保存音質
碼率在64K左右
AAC HE V2:AAC LC + SBR + PS(Parametric Stereo)其核心思想是雙聲道中的聲音存在某種相似性,只需要存儲一個聲道的全部信息,然後,花很少的位元組用描述另一個聲道在不同的地方
這種格式的特性是可以確定找到這個音頻數據的開始,只能從頭開始解碼,不能從音頻數據流的中間開始,這種格式常用在磁碟文件中
這種格式的特性是每一幀都有一個同步字,所以可以在音頻流的任意位置開始解碼,它類似於數據流格式
ADTS由7/9個位元組組成 ADTS格式查詢
-i:輸入的多媒體文件
-vn:v表示的是video ,n表示的no 意思是過濾掉視頻數據
-c:a : c表示的是codecs編碼器,a表示的是audio,也就是指定的音頻編碼器
-ar:表示的是音頻的采樣率
-channels:聲道數
-profile:對fdk-aac編碼器設置了參數,對應的是a,也就是對音頻的參數
最後3.aac也就是輸出的aac格式的文件名稱
③ 有哪些開源的回聲消除演算法
關於聲學回聲的演算法其實在美國貝爾實驗室60年代就有這方面的理論基礎,但是受到處理器元件的計算速度限制,一直到上世紀90年代才投入正式運用;聲學回聲消除演算法——分為線性消除和非線性消除兩個部分,線性部分最多能抵消40dB,剩下的就要靠非線性來處理了(目前能處理到20dB),國際上處理AEC(聲學回聲)的及格線是45dB,這方面比較專業的國外公司有POLYCOM,國內的有朗谷、速嵌,浙大也有此方面的研究。背景噪音消除演算法上世紀70年代就在使用雜訊門的辦法來處理,但是需要預先設置雜訊門的閥值,遇到環境改變的情況,往往需要重新設置;第二種是採用麥克風陣列的演算法來處理,典型的晶元有AUDIENCE(用於IPHONE4手機,華為、三星、摩托羅拉智能手機都在使用),國內的FORTMEDIA晶元,都是使用2-3支以上的麥克風來處理,一支麥克風來採集人聲,另外的麥克風用於採集背景噪,在DSP中產生一個等幅反向的波形來抵消背景噪音;還有一個就是源自日本理化學所為日本機器人做的研究,語音分離技術,從控制論角度出發使用AI(人工智慧演算法)來區分噪音和語音(兩種音源有不同的特徵信號),使用自適應濾波濾除背景噪音,最大能消除15dB的背景噪音,使用單麥克風就可以實現消噪。。另外webrtc現在用的是以前GIPS的,挺好使。還有skype的回聲消除做的不錯,另外雅馬哈和JBL的做的也不錯,但是消耗非常大。另外還有speex與webrtc的aec,aecm再比如:OpenSSL,CyaSSL,jsCrypto,pidCrypt ,Botan 等等。