语音压缩编解码器:lyra
語音壓縮編解碼器:lyra
New Lyra 是 Google 開源的超低比特率,卻擁有超高語音質量的編解碼器,即便在很糟糕的網絡情況下,lyra 也能讓你有流暢的語音體驗。Lyra 編解碼器的基本架構非常簡單,它每隔 40ms 從語音中提取語音特征,然后將其壓縮以 3kbps 的比特率進行傳輸。而這些特征本身是對數梅爾聲譜圖,代表了不同頻段語音能力的數字列表。
https://github.com/google/lyra
Lyra編碼器基礎環境搭建
https://blog.csdn.net/qq_36959443/article/details/116136965
1
為了使通用的最佳編解碼器普遍可用,我們開放了Lyra的源代碼,使其他開發人員可以為其通信應用程序提供支持,并朝著強大的新方向發展Lyra。此版本提供了開發人員使用Lyra進行音頻編碼和解碼所需的工具,Lyra已針對64位ARM安卓平臺進行了優化。我們希望與社區一起擴展此代碼庫并開發對其他平臺的改進和支持。
01 Lyra的體系結構
Lyra的體系結構分為編碼器和解碼器兩部分。當有人在電話里講話時,編碼器會從他們的語音中捕獲獨特的屬性。這些語音屬性(也稱為特征)以40ms的塊提取,然后壓縮并通過網絡發送。解碼器的工作是將功能轉換回可以在聽眾的電話揚聲器上播放的音頻波形,通過生成模型將特征解碼回波形。生成模型是一種特殊類型的機器學習模型,非常適合從有限的功能中重新創建完整的音頻波形。Lyra架構與傳統的音頻編解碼器非常相似,傳統的音頻編解碼器已經成為互聯網通信的骨干力量,已有數十年的歷史了。這些傳統的編解碼器基于數字信號處理(DSP)技術,而Lyra的主要優勢來自生成模型重建高質量語音信號的能力。
02 Lyra對未來音頻的影響
在過去十年中,盡管移動網絡持續穩步發展,但移動設備運算能力的爆炸性增長依然超過了可靠的高速無線基礎架構的處理能力。對于存在這種反差的地區,尤其是發展中國家,下一個十億互聯網用戶將上網,這種技術將使人們之間的聯系更加緊密的希望仍然渺茫。即使在連接高度可靠的區域,異地工作和遠程辦公的出現也進一步限制了移動數據的限制。雖然Lyra可以將原始音頻壓縮到3kbps的質量,從而與其他編解碼器(例如Opus)相比質量不錯,但它的目標不是成為一個完整的替代方案,而是可以在這種情況下節省有意義的帶寬。
這些趨勢為Lyra提供了動力,也是我們的開放源代碼庫專注于其實時語音通信潛力的原因。我們認為還有其他應用,Lyra可能特別適合,例如,存檔大量語音,通過利用計算便宜的Lyra編碼器節省電池,緩解緊急情況下,許多人同時打電話的網絡擁塞。我們很高興看到開源社區以Lyra聞名于世,以提出更獨特,更具影響力的應用程序。
03 Lyra的開源版本
Lyra代碼使用C++編寫,以實現速度,效率和互操作性,并使用帶有Abseil的Bazel構建框架和用于全面單元測試的GoogleTest框架。核心API提供了用于在文件和數據包級別進行編碼和解碼的接口。還提供了完整的信號處理工具鏈,其中包括各種濾波器和變換。我們的示例應用程序與Android NDK集成在一起,以展示如何將本機Lyra代碼集成到基于Java的android應用程序中。我們還提供了運行Lyra所需的權重和矢量量化器。
我們今天將Lyra作為Beta版本發布是因為我們希望使開發人員能夠獲得盡快的反饋。因此,隨著開發的深入,API和比特流很有可能會發生變化。除數學內核外,所有運行Lyra的代碼均根據Apache許可開放源代碼,為此提供了共享庫,直到我們可以在更多平臺上實現完全開放的解決方案為止。既然Lyra是開源的,我們期待看到人們對Lyra的處理。在GitHub上查看代碼和演示,讓我們知道您的想法以及打算如何使用它!
文 / Andrew Storus & Michael Chinen - Chrome
https://opensource.googleblog.com/2021/04/lyra-enabling-voice-calls-for-next-billion-users.html
2
3kbps也能清晰通話的神器Lyra,開源了!
Lyra是谷歌公司推出的一款不懼低帶寬的音頻編解碼器,用來實現隨時隨地高質量通話。
3kbps是什么概念?
換算成生活中常見的單位,等于0.375KB/s。
對比來看更加直觀,Skype官網給出的通話最低速度是30kbps,帶寬要求整整高出了10倍。
Lyra利用機器學習模型,將原始音頻壓縮到3kbps,即使沒有高速網絡,也能得到自然清晰的語音。
它的架構與傳統的編解碼器類似,分為編碼器和解碼器兩部分:
編碼器以40毫秒為單位,從語音中提取特征,進行壓縮后通過網絡傳輸。
解碼器利用機器學習模型,能使用最少的數據量重建語音,將特征轉換成完整的音頻波形,以進行播放。
帶寬要求低、效果更好
在Lyra之前,音頻編解碼器的比特率越低,語音的清晰度就越差,并且機械感越重。
傳統的音頻編解碼器使用的是數字信號處理技術,而Lyra則依賴其強大的信號重建能力。
由于Lyra無需逐個處理信號,因此無需高帶寬,而且在保持低比特率的同時,還能提供高質量的音頻輸出。
谷歌還使用Lyra與Opus、Speex,在6kbps和3kbps的情況下,對同一音頻的壓縮質量進行對比測試。
結果顯示:
在3kbps的情況下,Lyra性能優于現有的其他編解碼器;
在8kbps的情況下,其性能優于Opus,同時降低了超過60%的帶寬;
甚至,Lyra在3kbps情況下的語音清晰度,也優于6kbps情況下的Opus。
谷歌公司認為Lyra可能有廣泛的應用前景,比如:降低音頻文件大小,以存儲大量語音;節省手機電量;以及緩解網絡擁堵等。
已在GitHub開源
現在,Lyra已經在GitHub上開源
Lyra使用Bazel構建框架,并且使用C++編寫代碼,以保證速度、效率和可操作性。
這一版本支持用戶在Linux上開發和調試,還針對64位ARM Android平臺進行了性能優化,使它不僅能在云服務器上運行,而且還可以在手機上實時運行和訓練。
此外,Lyra還為開發人員提供了編碼和解碼所需的工具。
谷歌工程師Andrew Storus和Michael Chinen表示:
“很高興看到開源社區的創造力能體現在Lyra上,以開發更多獨特和有影響力的應用。”
感興趣的讀者可戳下方鏈接了解詳情。
1
sudo apt install vim export PATH=$PATH:/home/jack/bin wget https://github.com/bazelbuild/bazel/releases/download/4.0.0/bazel-4.0.0-installer-linux-x86_64.sh wget https://github.com/google/lyra/archive/refs/tags/v0.0.2.tar.gz2
sudo apt-get install sox sudo apt-get install sox libsox-fmt-all play *mp33
111 wget https://raw.githubusercontent.com/the0demiurge/CharlesScripts/master/charles/bin/ssr112 ls113 cat ssr 114 ls115 sudo mv ssr /usr/local/bin116 sudo chmod 766 /usr/local/bin/ssr117 ssr install118 ssr config119 sudo apt install jq120 sudo apt install curl121 ssr start122 ls123 cd lyra-0.0.2/124 ls125 bazel build -c opt :encoder_main126 ls127 cd testing/128 ls129 cd ..130 ls131 cd testdata/132 ls133 cd ..134 cd ~135 mkdir temp136 cd work/137 cd wo138 cd work139 ls140 mkdir temp141 cd temp/142 pwd143 cd ..144 ls145 cd lyra-0.0.2/146 bazel-bin/encoder_main --model_path=wavegru --output_dir=/home/jack/work/temp --input_path=testdata/16khz_sample_000001.wav147 cd ..148 cd temp/149 ls150 ls -l 16khz_sample_000001.lyra 151 ls -lh 16khz_sample_000001.lyra 152 cp ../lyra-0.0.2/testdata/16khz_sample_000001.wav .153 ls154 ls -lh 155 cd ..156 cd lyra-0.0.2/157 ls158 bazel build -c opt :decoder_main159 bazel-bin/decoder_main --model_path=wavegru --output_dir=$HOME/temp/ --encoded_path=$HOME/temp/16khz_sample_000001.lyra160 bazel-bin/decoder_main --model_path=wavegru --output_dir=$HOME/temp/ --encoded_path=/home/jack/work/temp/16khz_sample_000001.lyra161 ls162 cd ..163 ls164 cd temp/165 ls166 ls -lh *167 cp 16khz_sample_000001.wav old_16khz_sample_000001.wav 168 ls169 rm 16khz_sample_000001.wav 170 ls171 cd ..172 cd lyra-0.0.2/173 ls174 bazel-bin/decoder_main --model_path=wavegru --output_dir=/home/jack/work/temp/ --encoded_path=/home/jack/work/temp/16khz_sample_000001.lyra175 cd ..176 ls177 cd temp/178 ls179 ls -lh *180 sudo apt-get install sox181 ls182 cd work/183 ls184 cd temp/185 ls186 play old_16khz_sample_000001.wav 187 ls188 play 16khz_sample_000001_decoded.wav 189 play old_16khz_sample_000001.wav 190 play 16khz_sample_000001_decoded.wav 191 ls192 cd ..193 ls194 history195 ls196 cd temp/197 ls198 rm 16khz_sample_000001.lyra 199 ls200 rm 16khz_sample_000001_decoded.wav 201 ls202 cd ..203 ls204 cd lyra-0.0.2/205 ls206 history4
play 16khz_sample_000001.wav play WARN alsa: can't encode 0-bit Unknown or not applicable16khz_sample_000001.wav:File Size: 242k Bit Rate: 256kEncoding: Signed PCM Channels: 1 @ 16-bit Samplerate: 16000Hz Replaygain: off Duration: 00:00:07.56 In:100% 00:00:07.56 [00:00:00.00] Out:121k [ | ] Clip:0 Done.5
play 32khz_sample_000002.wav play WARN alsa: can't encode 0-bit Unknown or not applicable32khz_sample_000002.wav:File Size: 324k Bit Rate: 512kEncoding: Signed PCM Channels: 1 @ 16-bit Samplerate: 32000Hz Replaygain: off Duration: 00:00:05.06 In:100% 00:00:05.06 [00:00:00.00] Out:162k [ | ] Clip:0 Done.中文
bazel-bin/encoder_main --model_path=wavegru --output_dir=/home/jack/work/temp --input_path=testdata/16khz_sample_000001.wavbazel-bin/decoder_main --model_path=wavegru --output_dir=/home/jack/work/temp/ --encoded_path=/home/jack/work/temp/zw1.lyra需要科學---- 上網— ,不需要 llvm
總結
以上是生活随笔為你收集整理的语音压缩编解码器:lyra的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab多目标遗传算法工具箱,运用M
- 下一篇: 505_TextWatcher可以重复添