rk3568移植WebRTC AudioProcessing

前言:

大家好,我是飛一樣的成長,今天這篇文章主要想分享音頻3A的內容。在之前有網友找我怎么移植原生的webrtc到rk3568/rk3588上,當時我自己也沒有移植過,后面折騰了一個禮拜才搞定,當時遇到的最大問題,主要是編譯器g++對于webrtc最新版本是不兼容的,導致始終無法編譯過,后面切換了低一點的版本才搞定:

但是這里面的內容比較多,其實也是可以專門關注webrtc audio模塊的,主要就是關注音頻3A算法:

  • AEC

  • ANC

  • AGC

其實我自己也關注了很久了的音頻3A這塊,比如有rk自帶的3A模塊,還有一些開源的項目:

  • rnnoise

但是效果最好的還是webrtc的效果最好,而且也最成熟,如果從商業開發的角度來看的話。

而且為了簡化內容,webrtc 有專門抽取出來的webrtc audio開源模塊WebRTC AudioProcessing,所以我的精力就想專門研究里面的3A算法,要搞就搞最好的,不搞雜毛:

同時結合我自己的工作經歷,這塊的內容還是非常的重要,搞音頻最難的地方,就是這塊。當然還有底層的音頻,也會涉及到算法。在我們做嵌入式開發,音頻的指標,也是有嚴格的標準的,需要用專業的儀器測試,比如說信噪比指標。

rk3568移植WebRTC AudioProcessing:

其實這里沒有平臺的限制,只是我這里以我手上有的板子來進行移植,其他平臺都可以按照我下面的方法進行移植即可。

移植步驟:

  • 1、 meson和ninja安裝:

sudo apt update
sudo apt install meson ninja-build python3-pip
pip3 install --user meson
  • 2、在webrt audio processing源碼下創建一個文本,同時里面填寫的內容如下:

[binaries]
c =?'/home/txp/rk3568/rk3568_sdk/buildroot/output/rockchip_atk_dlrk3568/host/bin/aarch64-buildroot-linux-gnu-gcc'
cpp =?'/home/txp/rk3568/rk3568_sdk/buildroot/output/rockchip_atk_dlrk3568/host/bin/aarch64-buildroot-linux-gnu-g++'
ar =?'/home/txp/rk3568/rk3568_sdk/buildroot/output/rockchip_atk_dlrk3568/host/bin/aarch64-buildroot-linux-gnu-ar'
strip =?'/home/txp/rk3568/rk3568_sdk/buildroot/output/rockchip_atk_dlrk3568/host/bin/aarch64-buildroot-linux-gnu-strip'
pkgconfig =?'/home/txp/rk3568/rk3568_sdk/buildroot/output/rockchip_atk_dlrk3568/host/bin/pkg-config'
cmake =?'cmake'[properties]
needs_exe_wrapper =?true# 如果在構建中需要運行可執行文件(通常交叉時不能執行)
exe_wrapper =?'qemu-arm-static'# 如果有 QEMU 支持運行目標可執行文件來生成一些配置[host_machine]
system =?'linux'
cpu_family =?'arm'
cpu =?'aarch64'
endian =?'little'
  • 3、開始構建和編譯:

meson setup build_arm --cross-file cross_arm_linux.txt --buildtype=release
cd?build_arm
ninja
  • 最后,安裝編譯出來的庫:

ninja install

查看是否成功了:

可以看到成功了。

最后就開啟2025年正式研究音頻3A了。

后面的內容,會測試一下效果,先用alsa或者tinyalsa采集音頻,然后看一下經過webrtc audio processing處理效果以及里面的具體實現學習。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/923479.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/923479.shtml
英文地址,請注明出處:http://en.pswp.cn/news/923479.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

介紹一下 RetNet

RetNet(Retention Network)是微軟亞洲研究院于 2023 年提出的一種新型序列建模架構,旨在解決 Transformer 架構在長序列處理中存在的計算復雜度高、內存占用大、推理速度慢等核心問題。它通過創新的 “循環注意力機制”,實現了 “…

CANopen - PDO映射

CiA402為什么不放到一個PDO中。而是分成幾個PDO? 簡短答案:裝不下 解耦時序。 PDO負載上限:經典CAN的每個PDO只有8字節。TargetPosition(607A:0032bit) ProfileVelocity(60FF:0032bit) ModesOfOperation(6060:008bit) 共9字節,單個PDO放不…

北理工提出僅依賴機載傳感器針對IAP的控制與狀態估計框架

近日,度量用戶、北京理工大學俞玉樹老師團隊在IEEE RAL,IEEE TRO和IEEE TASE期刊上分別發表論文,研究著力于解決多飛行器集聯平臺(Integrated Aerial Platforms, IAPs)的相對位姿和全局定位問題,提出IAP的控…

13年測試老鳥,性能測試-618與雙11大促銷壓測(二)

目錄:導讀 前言一、Python編程入門到精通二、接口自動化項目實戰三、Web自動化項目實戰四、App自動化項目實戰五、一線大廠簡歷六、測試開發DevOps體系七、常用自動化測試工具八、JMeter性能測試九、總結(尾部小驚喜) 前言 1、準備工作 準備…

StreamCap(直播錄制) v1.0.2 綠色版

StreamCap 是一個基于FFmpeg和StreamGet的多平臺直播流錄制客戶端,覆蓋 40 國內外主流直播平臺,支持批量錄制、循環監控、定時監控和自動轉碼等功能。軟件特色 多端支持:支持Windows/MacOS/Web運行。循環監控:實時監控直播間狀態&…

OpenCV:圖像拼接(SIFT 特征匹配 + 透視變換)

目錄 一、核心技術原理與對應 API 解析 1.1 SIFT 特征檢測與描述(尺度不變特征提取) 1.1.1 灰度圖轉換:cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) 1.1.2 SIFT 檢測器初始化:cv2.SIFT_create() 1.1.3 特征點檢測與描述符計算&…

日語學習-日語知識點小記-進階-JLPT-N1階段藍寶書,共120語法(10):91-100語法+考え方13

日語學習-日語知識點小記-進階-JLPT-N1階段藍寶書,共120語法(10):91-100語法1、前言(1)情況說明(2)工程師的信仰(3)高級語法N1語法和難點2、知識點-語法&…

繼承與組合:C++面向對象的核心

C 繼承:從基礎到實戰,徹底搞懂面向對象的 “代碼復用術” 在面向對象編程(OOP)的世界里,“繼承” 是實現代碼復用的核心機制 —— 就像現實中孩子會繼承父母的特征,C 的子類也能 “繼承” 父類的成員&#…

Matplotlib定制:精解顏色、字體、線型與標記

Matplotlib定制:精解顏色、字體、線型與標記導語 Matplotlib 是 Python 數據可視化領域的基石。雖然它的默認樣式足以滿足快速分析的需求,但要創作出具有專業水準、信息清晰、視覺美觀的圖表,就必須掌握其強大的定制功能。本文將深入探討 Mat…

Qt開發經驗 --- Qt監聽文件/文件夾改變(17)

文章目錄[toc]1 概述2 演示效果3 簡單使用示例4 帶界面的使用示例5 源代碼地址更多精彩內容👉內容導航 👈👉Qt開發經驗 👈1 概述 QT實現實時監控文件的創建、修改、刪除操作 跟蹤文件夾內容的增刪改變化 可用于文件發生變化時自…

數據分析:合并一

🔷 DA37:統計運動會項目報名人數(僅輸出有人報名的項目)? 題目描述給定兩個 CSV 文件:items.csv:包含項目信息(item_id, item_name, location)signup.csv:包含員工報名信…

WWW‘25一通讀 |圖Anomaly/OOD檢測相關文章(1)

寫在前面:進入新一輪學習階段,從閱讀開始。 本文分享的是WWW2025收錄的與作者研究相近的graph-based xx相關paper的閱讀筆記,含個人理解,僅供參考😄 0x01 HEI:利用不變性原理實現異配圖結構分布偏移學習 J…

static_cast:C++類型系統的“正經翻譯官”

1. 背景與核心概念 1.1 C的“類型安全”哲學 想象一下,你所在的世界突然失去了所有規則:文字可以隨意變成數字,人可以瞬間變成椅子,汽車能飛上天變成飛機… 這聽起來像是瘋狂的夢境,但對于早期C語言來說,這…

【嵌入式原理系列-第八篇】USART從原理到配置全解析

目錄 一.通信領域基礎知識介紹 1.1 串行和并行通信 1.2 同步和異步傳輸 1.3 串口和COM口 1.4 通信協議標準以及物理層定義 1.5 物理層協議之TTL / RS-232 / RS-485 二.USART介紹 2.1 USART特點介紹 2.2 UART和TTL / RS-232 / RS-485 2.3 USART硬線流控介紹 2.4 USAR…

MariaDB介紹和MariaDB包安裝

文章目錄MariaDB介紹和安裝1.MariaDB介紹1.1 起源與背景1.2 核心特性1.2.1 高度兼容 MySQL1.2.2 優化的存儲引擎1.2.3 企業級功能增強1.2.4 性能優化1.2.5 安全增強1.3 社區與生態1.4 應用場景1.5 總結2.MariaDB安裝2.1 主機初始化2.1.1 設置網卡名2.1.2 設置ip地址2.1.3 配置鏡…

雙指針與滑動窗口算法精講:從原理到高頻面試題實戰

引言:算法選擇的十字路口 在算法面試中,雙指針和滑動窗口如同兩把瑞士軍刀,能高效解決80%以上的數組和字符串問題。本文將深入解析這兩種技術的核心差異,結合力扣高頻題目,提供可直接復用的代碼。 一、算法核心思想解析…

蘋果MAC、MacBook air和pro安裝windows雙系統與iOS分發

文章目錄1. main1.1 準備工作1.2 啟動轉換助理1.3 Windows安裝1.4 蘋果電腦安裝Windows雙系統切換2. 蘋果(iOS)分發/上架2.1 上架App Store2.2 上架TestFlight2.3 webClip免簽上架2.4 超級簽名2.5 企業證書2.6 app分發系統Reference1. main 蘋果電腦安裝windows雙系統 https:…

ArcGIS定向影像(1)——非傳統影像輕量級解決方案

常常聽到這樣的需求,ArcGIS能讓用戶自己低成本的做出谷歌街景嗎?現在 _ArcGIS Pro 3.2 和 ArcGIS Enterprise 11.2 _能夠讓用戶不使用任何插件和擴展的情況下完成街景數據集的構建,數據管理,發布服務和調用的完整解決方案。非常體…

uni-app 網絡之封裝實戰HTTP請求框架

前言在uniapp開發中,網絡請求是每個應用都必不可少的功能模塊。一個優秀的網絡請求封裝不僅能提高開發效率,還能增強代碼的可維護性和可擴展性。本文將基于實際項目經驗,詳細介紹如何封裝一個高效、可維護的Uniapp網絡請求框架,并…

架構師成長之路-架構方法論

文章目錄前言一、先搞懂:架構師不僅僅是“技術大佬”,更是“問題解決者”1.1 架構師的分類:不止“開發架構師”一種1.2 架構師要關注什么?別只盯著技術1.3 架構師解決問題的4步心法:從定義到落地1.4 架構師的成長攻略&…