如何在ARM架构的Ubuntu系统下安装WebRTC使用回声消除(python)
本文分享了在NVIDIA Jetson Nano上实现WebRTC回声消除(AEC)的Python解决方案
·
在 NVIDIA Jetson Nano 上用 Python 实现 WebRTC 的回声消除(AEC)并不容易——官方没有现成的 Python 接口,ARM 架构下编译 WebRTC 也麻烦,相关教程更是寥寥无几。本文将带你一步步在 Jetson Nano 的 Ubuntu 系统中完成安装与集成。本人是新手,一点点尝试并且安装成功,主要是记录防止后期忘记。有大佬有更好的方法希望可以指导我。
首先git下相关包
git clone https://github.com/xiongyihui/python-webrtc-audio-processing.git
下载完成后
cd python-webrtc-audio-processing
修改 setup.py 排除 *_win.cc(把win相关代码删掉)
打开 setup.py 找到这段(大概在 26–31 行,这是代码中本来就有的代码块)
ap_sources = []
ap_dir_prefix = 'webrtc-audio-processing/webrtc/'
for i in range(8):
ap_sources += glob(ap_dir_prefix + '*.c*')
ap_dir_prefix += '*/'
在这段代码后加入一下代码
# 在非 Windows 平台上排除 Windows 专用的 *_win.cc 源文件
if os.name != 'nt':
ap_sources = [s for s in ap_sources if '_win.' not in s]
完整片段应类似这样:
ap_sources = []
ap_dir_prefix = 'webrtc-audio-processing/webrtc/'
for i in range(8):
ap_sources += glob(ap_dir_prefix + '*.c*')
ap_dir_prefix += '*/'
# 在非 Windows 平台上排除 Windows 专用的 *_win.cc 源文件
if os.name != 'nt':
ap_sources = [s for s in ap_sources if '_win.' not in s]
rw_lock_generic_path = os.path.join('webrtc-audio-processing', 'webrtc', 'system_wrappers', 'source', 'rw_lock_generic.cc')
condition_variable_path = os.path.join('webrtc-audio-processing', 'webrtc', 'system_wrappers', 'source', 'condition_variable.cc')
然后执行以下代码
python setup.py build
python setup.py install
现在就安装完成
可以使用以下代码测试
import webrtc_audio_processing
print(webrtc_audio_processing.__file__)
会获取以下信息就表示安装成功
使用示例
from webrtc_audio_processing import AP # AP = AudioProcessingModule
ap = AP(
aec_type=1, # 0=关AEC, 1=开AEC
enable_ns=True, # 开噪声抑制
agc_type=0, # 看需要,0=关AGC
enable_vad=False # 自带的VAD
)
但是目前用WebRTC的效果并不理想,做中途打断的时,ai边说话边录音的语音识别效果很差,如果有大佬希望可以指导一下。
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)