谷歌開源 Lyra——用機器學習改善語音質量
在新冠肆虐的一年來,在線交流成了我們生活的一部分,微信通話、QQ 聊天,釘釘會議,各種網絡會議系統成了大家生活的一部分,然而由於網絡條件限制,有事時候通話質量不是那麼的令人滿意,如何改善成了一個技術問題。最近谷歌開放了其 Lyra 系統 :一個全新的革命性的音頻編解碼器,Lyra 使用機器學習來產生高質量的語音通話。
Lyra 架構
Lyra 的體系結構分爲兩部分,編碼器和解碼器。當進行語音會話時,編碼器會從通話語音中捕獲一些特徵。這些語音特徵以每隔 40ms 進行塊提取,然後壓縮並通過網絡發送。解碼器的工作是將功能轉換到可以在揚聲器上播放的音頻信號。通過將特徵解碼到波形生成模型 。生成模型是一種特殊類型的機器學習模型,非常適合從有限的功能中重新創建完整的音頻波形。Lyra 架構與傳統的音頻編解碼器非常相似,傳統的音頻編解碼器已經有幾十年的歷史,成了目前互聯網通信的骨幹力量。這些傳統的編解碼器基本上都是基於數字信號處理(DSP)技術,而 Lyra 的主要通過生成模型重建高質量語音信號。
優勢
在過去十年中,儘管移動連接穩步增長,但設備上計算能力的爆炸性增長已遠遠超過了基礎的通訊架構(網速)。尤其對於基礎設施相對比較落後發展中國家差異更是明顯,人們可以買個高配的手機就能獲得一個高算力的終端,但是能不能連上網,能不能連上 5G,甚至是 4G 都是問題。即使在連接高度可靠的區域,異地工作和遠程辦公的出現也會有這個情況。
Lyra 可以將原始音頻壓縮到 3kbps 的質量,而能保持與其他編解碼器同等的通話質量,可以大大節省網絡帶寬和提高較差網絡條件下的通話質量。在官方的博客,示例顯示了他們的質量對比。
Lyra 還比較適合,諸如對大量存量語音信息處理,通過利用 Lyra 編碼器節省電池。也能緩解多人同時撥打電話的緊急情況下網絡擁塞。
下載試用
大家可以在 Github 下載源碼(github:/google/lyra)和示例學習。示例提供了應用程序與 Android NDK 集成工作以及將本機 Lyra 代碼集成到安卓應用程序中。還提供了運行 Lyra 所需的權重和矢量量化器。
git clone github:/llvm/llvm-project.gitcd llvm-projectgit checkout 96ef4f307df2mkdir build_clangcd build_clangcmake -G Ninja -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DLLVM_ENABLE_PROJECTS="clang" -DCMAKE_BUILD_TYPE=release ../llvmninjasudo $(which ninja) installcd ..mkdir build_libcxxcd build_libcxxcmake -G Ninja -DCMAKE_C_COMPILER=/usr/local/bin/clang -DCMAKE_CXX_COMPILER=/usr/local/bin/clang++ -DLLVM_ENABLE_PROJECTS="libcxx;libcxxabi" -DCMAKE_BUILD_TYPE=release ../llvmninjasudo $(which ninja) installsudo ldconfig然後編譯bazel build -c opt :decoder_mainbazel-bin/decoder_main --model_path=wavegru --output_dir=$HOME/temp/ --encoded_path=$HOME/temp/16khz_sample_000001.lyra
Lyra 代碼使用 C++ 編寫,實現速度,效率和互操作性,其基礎架構使用 Bazel 和 Abseil 構建,測試框架使用 GoogleTest 進行全面單元測試。除數學內核外,所有運行 Lyra 的代碼均根據 Apache 許可開放源代碼。
Lyra 核心 API 提供了用於在文件和數據包級別進行編碼和解碼的接口。還提供了完整的信號處理工具鏈,其中包括各種濾波器和變換。
希望國內的視頻 / 語音會議系統的開發同學們趕緊更近,這樣以後不會太卡頓了。
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/KVAp3j2p842eLL9yDupi_w