一起调试XVF3800麦克风阵列(九)

PP_MGSCALE 参数详解

1. 核心功能

PP_MGSCALE 控制远端活动期间的额外噪声抑制,用于平衡

  • 远端静止活动期间:优化近端语音清晰度
  • 远端非静止活动期间:确保良好的回声抑制

2. 解决的问题

问题场景

参考信号(far-end)是干净的播放音频

  • AEC 能准确判断:

  • 什么时候是 远端(只有远端的人在讲话)

  • 什么时候是 近端(只有近端的人在讲话)

  • 什么时候是 双讲(远端和近端的人同时在讲话)

当参考信号中存在低电平噪声(如 ADC 噪声)时:

  • 噪声被误检测为远端语音

  • 系统误判为双讲(double-talk)(参考信号路径往往并不干净,比如DAC / ADC 本底噪声;功放 idle noise,数字音量太低但仍有量化噪声静音不是真静音(尤其 48kHz 系统)结果就是:参考通道里存在“低电平、平稳的噪声”AEC 可能会误判为 “远端在说话”进而认为发生 Double-Tal,于是过度压制近端语音)

  • 过度抑制近端语音,导致失真(近端语音被过度压制,出现失真、抽吸、发虚

PP_MGSCALE 的作用

通过设置增益缩放范围,在回声抑制与近端语音清晰度之间取得平衡。

PP_MGSCALE的参数:

名称范围说明
value0max[1.0 .. 1e5]最大增益缩放值(上限)
value1min[0.0 .. max]最小增益缩放值(下限)
value2curmin 或 max当前使用的值(只能是 min 或 max)

通过上面的流程分析我们可以得到DSP内部进行了如下的操作:

场景PP_MGSCALE 行为听感结果
只有远端说话用 max,强烈衰减回声最干净
远端 + 近端(双讲)用 min,收手一点近端不容易被闷
参考里只有噪声用 min,别乱压避免近端抽吸

当只有远端在讲话、而且信号是正常语音时,系统会“下手更狠地压”,把所有像回声的东西都狠狠压下去,所以听起来回声被消得更干净。

能确定是回声 → 宁可错杀也不放过!!!
不能确定是不是回声 → 宁可放过也不误杀!!!

xvf_host --use i2c PP_MGSCALE

默认值为1000 、1 和 cur:

3.调优步骤

步骤 1:设置基础参数

#### 回声抑制强度控制组
- **PP_GAMMA_E** (1.0) - 直接/早期回声
- **PP_GAMMA_ETAIL** (1.0) - 尾部分量回声
- **PP_GAMMA_ENL** (1.0) - 非线性回声

#### 功能开关组
- **PP_ECHOONOFF** (1) - 回声抑制总开关
- **PP_NLATTENONOFF** (0) - 非线性回声衰减开关

#### 噪声抑制隔离组
- **PP_MIN_NS** (1.0) - 静止噪声抑制下限

参数名默认值有效范围通俗功能解释(一句话版)
PP_GAMMA_E1.00.0 ~ 2.0线性回声下手的力度:对“直达声 + 早期反射”回声减得有多狠
PP_GAMMA_ENL1.10.0 ~ 5.0非线性回声的下手力度:专门对扬声器失真产生的谐波回声
PP_GAMMA_ETAIL1.00.0 ~ 2.0混响尾巴的抑制力度:主要处理房间反射、延迟回声
PP_ECHOONOFF1 (on)0 / 1回声抑制总开关:关了就完全没有后级回声抑制
PP_NLATTENONOFF0 (off)0 / 1非线性回声模型开关:是否启用训练好的扬声器失真模型
PP_MIN_NS0.150.0 ~ 1.0静态噪声的“最低保留音量”:防止把背景噪声压没到死寂
xvf_host --use i2c PP_GAMMA_E 1.0
xvf_host --use i2c PP_GAMMA_ENL 1.0
xvf_host --use i2c PP_GAMMA_ETAIL 1.0
xvf_host --use i2c PP_ECHOONOFF 1
xvf_host --use i2c PP_NLATTENONOFF 0
xvf_host --use i2c PP_MIN_NS 1.0

设置标准抑制和隔离干扰因素后,设置PP_MGSCALE 最大最小值全部为 1(xvf_host PP_MGSCALE <max> <min> <cur>)

xvf_host --use i2c PP_MGSCALE 1 1 1

设置左输出为自动选择的波束(多路竞争的结果),右声道静音:

xvf_host --use i2c AUDIO_MGR_OP_L 6 3
xvf_host --use i2c AUDIO_MGR_OP_R 0 0
步骤 2:调优 max 值(回声抑制)
  1. 播放远端信号:循环播放 IEEE_269-2010_Male_mono_48_kHz.wav 作为参考输入。
  2. 提供近端噪声:播放低电平白噪声(从房间内第二个扬声器/音源)
  3. 观察输出:查看设备输出和频谱图
  4. 调整 max:逐步增加 max,直到残留回声不再改善
  • 典型值范围:100 - 1000

为什么这么调试的原因:

是cur使用max值的时候只有在仅仅有远端信号的时候才会激活max!!!

此时max = 1时观察输出:

设置max为100的时候 播放远端音频的时候,可以看到cur = max 与我们推测的是一致的!

由于我们这边的测试环境底噪较大!!故无法展示变化时候的效果,实际与预测应该是一致的

步骤 3:设置 min 值

将 min 设置为与 max 相同的值:

xvf_host PP_MGSCALE <max> <max> <max>

步骤 4:调优 min 值(近端语音清晰度)
  1. 播放静音到参考输入:48kHz:silence_2ch_48khz.wav
  2. 播放近端语音:播放 IEEE_269-2010_Male_mono_48_kHz.wav 作为近端信号
  3. 主观听测:如果存在近端语音失真(双讲或者仅有近端语音的时候使用的是min!
  • 原因:参考信号中的静止噪声被误判为远端语音,导致过度抑制
  • 解决:降低 min 值,以牺牲部分静止噪声抑制为代价,减少近端语音失真(min越大抑制越厉害!

6. 参数关系

参数作用与 PP_MGSCALE 的关系
PP_GAMMA_E回声过减因子共同控制回声抑制强度
PP_ECHOONOFF回声抑制开关PP_MGSCALE 仅在开启时生效
PP_DTSENSITIVE双讲敏感度影响双讲检测,进而影响 PP_MGSCALE 的使用
PP_MIN_NS静止噪声抑制增益下限调优时设为 1.0 以隔离影响

7. 典型配置示例

配置 1:默认配置(保守)

PP_MGSCALE: (1000.0, 1.0)

max = 1000.0(强回声抑制能力)

min = 1.0(最小抑制,保护近端语音)

配置 2:强回声抑制

PP_MGSCALE: (1000.0, 100.0)

max = 1000.0

min = 100.0(允许更强抑制)

配置 3:平衡配置

PP_MGSCALE: (500.0, 10.0)

max = 500.0(中等回声抑制)

min = 10.0(中等保护)

8. 注意事项

  1. max 调优:在存在远端回声时进行,目标是减少残留回
  2. min 调优:在参考信号为静音时进行,目标是减少近端语音失真
  3. 典型 max 值:100 - 1000
  4. 如果参考信号质量好(无 ADC 噪声),min 可等于 max
  5. 如果参考信号有静止噪声,需要降低 min 以保护近端语音

9. 总结

PP_MGSCALE 是一个权衡参数:

  • max:控制远端非静止活动时的回声抑制能力
  • min:控制远端静止活动时对近端语音的保护程度
  • 目标:在回声抑制与近端语音清晰度之间取得平衡

调优时,先调 max 以优化回声抑制,再调 min 以优化近端语音清晰度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1125298.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Go语言微服务文档自动化生成:基于DeepSeek的智能解析实践

Go语言微服务文档自动化生成&#xff1a;基于DeepSeek的智能解析实践第一章&#xff1a;微服务文档化的核心挑战在分布式架构中&#xff0c;微服务API文档的准确性与实时性直接影响开发效率。传统文档维护存在三大痛点&#xff1a;人工滞后性&#xff1a;代码迭代后文档需手动更…

【C/C++】RAII,Stack-only对象和Heap-only对象

RAII 详解 什么是 RAII Resource Acquisition Is Initialization&#xff08;资源获取即初始化&#xff09; 核心思想&#xff1a;把资源的生命周期绑定到对象的生命周期 构造函数获取资源析构函数释放资源对象销毁时&#xff0c;资源自动释放FileHandler 示例 没有 RAII 的写法…

2026必备!8个AI论文写作软件,继续教育学生轻松搞定论文格式规范!

2026必备&#xff01;8个AI论文写作软件&#xff0c;继续教育学生轻松搞定论文格式规范&#xff01; AI 工具助力论文写作&#xff0c;高效又省心 在当今信息化时代&#xff0c;继续教育学生面临着越来越高的学术要求。无论是撰写论文还是完成各类研究任务&#xff0c;如何确保…

【开题答辩全过程】以 旅游直通车服务为例,包含答辩的问题和答案

个人简介一名14年经验的资深毕设内行人&#xff0c;语言擅长Java、php、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。感谢大家的…

基于Spring Boot的装饰工程管理系统(11653)

有需要的同学&#xff0c;源代码和配套文档领取&#xff0c;加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码&#xff08;前后端源代码SQL脚本&#xff09;配套文档&#xff08;LWPPT开题报告&#xff09;远程调试控屏包运行 三、技术介绍 Java…

全网最全专科生必备TOP8 AI论文网站测评

全网最全专科生必备TOP8 AI论文网站测评 2026年专科生必备AI论文写作工具测评 随着人工智能技术的不断发展&#xff0c;越来越多的专科生开始借助AI工具提升论文写作效率。然而&#xff0c;面对市场上琳琅满目的AI写作平台&#xff0c;如何选择真正适合自己需求的产品成为一大难…

AI Agent在智能保险定价中的角色

AI Agent在智能保险定价中的角色 关键词:AI Agent、智能保险定价、风险评估、数据处理、决策优化 摘要:本文深入探讨了AI Agent在智能保险定价中的角色。首先介绍了研究的背景,包括目的、预期读者等内容。接着阐述了AI Agent和智能保险定价的核心概念及两者之间的联系,通过…

springboot健身房管理系统(11654)

有需要的同学&#xff0c;源代码和配套文档领取&#xff0c;加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码&#xff08;前后端源代码SQL脚本&#xff09;配套文档&#xff08;LWPPT开题报告&#xff09;远程调试控屏包运行 三、技术介绍 Java…

学长亲荐!继续教育必备TOP8 AI论文平台测评

学长亲荐&#xff01;继续教育必备TOP8 AI论文平台测评 一、不同维度核心推荐&#xff1a;8款AI工具各有所长 在继续教育的学习过程中&#xff0c;学术写作是一个不可或缺的环节&#xff0c;涵盖开题、初稿、查重、降重、排版等多个阶段。每种AI工具都有其独特的优势和适用场景…

audio2face mh_arkit_mapping_pose_A2F 不兼容

配置audio2face 是 mh_arkit_mapping_pose_A2F 不兼容怎么办如果你不想改 JSON 或者改映射太麻烦&#xff1a;用 Audio2Face 输出动画数据流&#xff08;gRPC / Python&#xff09;在 UE 中用 Control Rig / Morph Target 接收 A2F 输出数据可以 直接驱动任何自定义角色优点&am…

springboot智能学习平台系统(11655)

有需要的同学&#xff0c;源代码和配套文档领取&#xff0c;加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码&#xff08;前后端源代码SQL脚本&#xff09;配套文档&#xff08;LWPPT开题报告&#xff09;远程调试控屏包运行 三、技术介绍 Java…

两阶段目标检测的边框回归(学习记录)

两阶段目标检测:分两步&#xff1a;1. 第一步&#xff1a;生成候选区域&#xff08;可能包含目标的框&#xff09;2. 第二步&#xff1a;对候选区域做分类 边框回归。分类就是判断候选框是否包含目标&#xff0c;不包含就是背景。边框回归就是使得包含目标的边框靠近真实框。一…

AI智能体改变材料研发:7个案例,架构师的创新思路

AI智能体改变材料研发&#xff1a;7个案例&#xff0c;架构师的创新思路——技术博客文章 下面是根据用户输入的文章主题“AI智能体改变材料研发&#xff1a;7个案例&#xff0c;架构师的创新思路”撰写的一篇技术博客文章。文章采用Markdown格式&#xff0c;内容包括标题选项、…

基于springboot的疾病防控综合系统的设计与实现(11651)

有需要的同学&#xff0c;源代码和配套文档领取&#xff0c;加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码&#xff08;前后端源代码SQL脚本&#xff09;配套文档&#xff08;LWPPT开题报告&#xff09;远程调试控屏包运行 三、技术介绍 Java…

互联网大厂Java工程师面试实战:严肃面试官与搞笑谢飞机的技术对话

互联网大厂Java工程师面试实战&#xff1a;严肃面试官与搞笑谢飞机的技术对话 在互联网大厂的Java工程师面试中&#xff0c;技术深度和业务场景理解至关重要。本文通过一场模拟面试对话&#xff0c;展现严肃面试官如何循序渐进地提问&#xff0c;以及搞笑程序员谢飞机如何应答…

c盘应用程序怎么转移到d盘?无需重装,一键帮你迁移!

我们都知道C盘容易变满&#xff0c;但还是有很多人不好好管理&#xff0c;总是把应用程序下载到里面&#xff0c;让本就不足的空间“雪上加霜”。这时你可能会想到转移应用程序&#xff0c;给C盘“减负”。那么&#xff0c;c盘应用程序怎么转移到d盘&#xff1f;如果你不知道正…

企业估值中的量子加密通信卫星网络评估

企业估值中的量子加密通信卫星网络评估关键词&#xff1a;企业估值、量子加密通信、卫星网络、评估方法、技术原理摘要&#xff1a;本文聚焦于企业估值中量子加密通信卫星网络的评估。首先介绍了相关背景&#xff0c;包括目的范围、预期读者等内容。接着深入探讨量子加密通信卫…

论文降AI干货汇总:实测这几款免费降ai率工具,降ai率从80%到10%的保姆级教程!

宝子们&#xff0c;这一篇真的是救命干货&#xff0c;建议先点赞收藏&#xff0c;不然答辩前找不到真的会哭死&#xff01;&#x1f62d; 最近好多家人们在后台私信我&#xff0c;说论文查重都要被逼疯了。特别是学校现在严查AIGC&#xff0c;看着查重报告上那个鲜红的“88%”…

数据建模在大数据社交网络分析中的应用

数据建模在大数据社交网络分析中的应用&#xff1a;从理论到实践的完整指南 副标题&#xff1a;如何用图模型、社区检测与影响力预测解决真实场景问题 摘要/引言 社交网络已成为人类生活的核心场景——从微信的13亿月活用户到Twitter的5亿月活&#xff0c;每天产生的10TB级社…

asferror.dll文件丢失找不到 打不开问题 免费下载方法分享

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…