自己CSDN的博客搬家轉過來的 CSDN上傳太麻煩,而且同質化比較嚴重,在這裏從零開始
Speex是一套主要針對語音的開源免費,無專利保護的音頻壓縮格式。Speex工程着力於通過提供一個可以替代高性能語音編解碼來降低語音應用輸入門檻。另外,相對於其它編解碼,Speex也很適合網絡應用,在網絡應用上有着自己獨特的優勢。同時,Speex還是GNU工程的一部分,在改版的BSD協議中得到了很好的支持。Speex是基於CELP並且專門爲碼率在2-44kbps的語音壓縮而設計的。Speex源碼是基於c語音實現的(也有Java實現,效率相對較低)。 · 開源的自由軟件,免專利,免版權 · 通過嵌入的比特流集成窄帶和寬帶 · 可大範圍改變比特率(bit-rate)(從2.15kbps到44kbps) · 動態比特率交換(AMR)和變比特率(VBR)操作 · 靜音檢測(VAD,和變比特率(VBR)集成)和非連續性傳輸(DTX) · 可變複雜度 · 嵌入的寬帶結構(可變的比特率) · 32kHz的超寬帶採樣率 · 強立體聲編碼選項 · 定點執行 節約流量。使用Speex來壓縮音頻文件,可以將音頻壓文件小數倍。 http://blog.csdn.net/xyz_lmn/article/details/8013490 speex 回聲消除的用法 http://www.cnblogs.com/kinyer/p/3326570.html http://blog.csdn.net/leixiaohua1020/article/details/51187668 http://blog.csdn.net/leixiaohua1020/article/details/50159563 speex算法在android上的移植 http://www.360doc.com/content/15/0818/07/9200790_493005949.shtml Speexmanul(手冊)中文版 http://www.cnblogs.com/rosesmall/archive/2012/04/18/2455395.html 編譯speex http://www.cnblogs.com/chef/archive/2012/07/19/2599067.html 基於C的Speex 音頻編解碼 http://www.cnblogs.com/myitm/archive/2011/07/21/2113299.html SPEEX抖動緩存 http://blog.163.com/yuan_zhch/blog/static/193790046201172743047588/ Opus是一款完全開放,免版稅,高度通用的音頻編×××。Opus是通過互聯網進行交互式語音和音樂傳輸的無與倫比的,同時也適用於存儲和流媒體應用。它由互聯網工程任務組(IETF)標準化爲RFC 6716,其中包含Skype的SILK編×××和Xiph.Org的CELT編×××的技術。 Opus的前身是celt編碼器。在當今的有損音頻格式爭奪上,擁有衆多不同編碼器的AAC格式打敗了同樣頗有潛力的Musepack、Vorbis等格式,而在Opus格式誕生後,情況似乎不同了。通過諸多的對比測試,低碼率下Opsu完勝曾經優勢明顯的HE AAC,中碼率就已經可以媲敵碼率高出30%左右的AAC格式,而高碼率下更接近原始音頻。 以上來自百度百科(PS:百度百科對opus的介紹都很少) 簡單來說,opus是一個高保真的適合在網絡中傳輸的開源的語音編碼格式,相對於其他編碼格式來講,保真性更好,但體積會稍微大一些。 ² 比特率從6 kb / s到510 kb / s ² 從8 kHz(narrowband)到48 kHz(全頻)的採樣率 ² 幀大小從2.5 ms到60 ms ² 支持恆定比特率(CBR)和可變比特率(VBR) ² 音頻帶寬從窄帶到全頻 ² 支持言語和音樂 ² 支持單聲道和立體聲 ² 支持多達255個通道(多幀) ² 動態可調比特率,音頻帶寬和幀大小 ² 良好的穩定性和丟包隱藏(PLC)(Good loss robustness and packet loss concealmen) ² 浮點和定點實現 官網 編譯 Android 版本的 Opus 音頻編解碼庫的方法 http://www.linuxidc.com/Linux/2015-12/126094.htm FFmpeg是一個自由軟件,可以運行音頻和視頻多種格式的錄影、轉換、流功能1,包含了libavcodec─這是一個用於多個項目中音頻和視頻的×××庫,以及libavformat——一個音頻與視頻格式轉換庫。 ffmpeg 是1個非常快速的音視頻轉換器,還能夠從實時的音視頻流源中獲得音視頻。它還能在任意的採樣率之間轉化. 官網 雷神零基礎學習ffmpeg http://blog.csdn.net/leixiaohua1020/article/details/15811977/ 入門 http://www.fx114.net/qa-244-147595.aspx iLBC 是爲專爲提供穩健的 IP 語音通信而開發的語音 codec,以窄帶語音爲設計基礎,具有 8 kHz 的採樣率。iLBCcodec 支持兩種基本的幀長度:13.3kbps 比特率下編碼幀長度爲30 ms;而15.2 kbps比特率下編碼幀長度則爲20 ms。 採用 iLBC 算法可以獲得一個具有丟包響應控制的語音編碼系統。iLBC對每一個數據包的處理都能夠獨立於其它數據包來進行,是數據包通信的理想選擇。即使IP 丟包和/或延遲現象的惡化,這種 codec 的語音質量下降情況也不會太差。這與基於CEIP 模型的一般codec 的行爲不同,這類codec 最先是爲交換電路網絡或無線網絡而設計的,是設計來恢復位錯誤而非丟包的。 丟包現象發生時,語音codec 的一項相關基準是從單個丟包情況下恢復過來所需的幀/包數量。在 iLBC 的情況中,數量是零。在丟包之後的第一個數據包總仍能按原本安排的被精確解碼。 iLBC 是一種窄帶語音codec,使用了整個4kHz 頻帶,而大多數標準低比特率codec 只利用從300 Hz 到3400 Hz 的頻帶。這一點對音質的影響是相當明顯的。此外,iLBC語音編碼的頻譜特性精確模擬了原始信號的特性,其語音比標準低比特率codec 的更自然清晰。 總而言之,iLBC 算法爲數據包網絡實現了尖端的固定比特率編碼,在質量與比特率之間取得了非常出色的平衡。 https://github.com/bjdodson/iLBC-Android code.google:(http://code.google.com/p/android-ilbc/) Android-ilbc的Demo(國內):http://download.csdn.net/detail/xyz_lmn/4594662 OpenSL ES(用於嵌入式系統的開放式聲音庫)是用於2D和3D音頻的免版稅,跨平臺,硬件加速的C語言音頻API。它提供對3D位置音頻和MIDI播放等功能的訪問。它是爲移動和遊戲行業的開發人員製造的,並且正在努力允許在多個平臺上輕鬆移植應用程序。 OpenSL ES 提供了一個 C 語言接口,您也可以使用C++ 訪問此接口。它提供了類似於下列 Android Java API 音頻部分的功能: android.media.MediaPlayer android.media.MediaRecorder Android音頻開發之OpenSL ES http://www.jianshu.com/p/2b8d2de9a47b · 高性能音頻基礎 MPEG-2的音頻編碼技術。由Fraunhofer IIS、杜比實驗室、AT&T、Sony等公司共同開發,目的是取代MP3格式。2000年,MPEG-4標準出現後,AAC重新集成了其特性,加入了SBR技術和PS技術,爲了區別於傳統的MPEG-2 AAC又稱爲MPEG-4 AAC。 AAC優點:相對於mp3,AAC格式的音質更佳,文件更小。 AAC不足:AAC屬於有損壓縮的格式,與時下流行的APE、FLAC等無損格式相比音質存在“本質上”的差距。加之,傳輸速度更快的USB3.0和16G以上大容量MP3正在加速普及,也使得AAC頭上“小巧”的光環不復存在了。 https://code.google.com/archive/p/android-recorder/downloads Demo特點: 使用android中的AudioRecord類,獲取原始PCM數據. 將PCM數據用speex編碼. 將編碼後的數據打包錄製成flv文件. 使用android-rtmp-client庫將編碼,打包後的數據直接發佈到流媒體服務器. 本地與服務器端錄音同時進行. 在手機上通過rtmp協議回放服務器端錄好的文件. 使用android-rtmp-client庫將編碼,打包後的數據直接發佈到流媒體服務器. 本地與服務器端錄音同時進行. 在手機上通過rtmp協議回放服務器端錄好的文件. 音頻庫PESQ性能比較Speex
簡介
特性
speex編解碼在android上實現
資源地址
Opus音頻編解碼庫
簡介
特性
地址
ffmpeg
簡介
資源地址
iLBC-Android
簡介
源碼地址
OpenSL ES
簡介
地址
AAC音頻編碼
Android-Recorder(Demo)