高手问答第 292 期 —— 实时互动娱乐场景下如何提升RTC音频引擎音质

OSC哒哒 发布于 09/13 18:06
阅读 3K+
收藏 5

传统RTC(语音通信)场景,音频引擎的整个处理链路如3A算法、编解码、丢包补偿等技术仅针对语音做处理。而实时互动娱乐场景(如主播连麦、互动播客、游戏语音等)会涉及到音乐、音效等,以优化语音质量为目标的音频引擎在面对这类场景时,经过算法处理后的音质会大打折扣。例如语音场景双讲问题出现的频率较低,然而在音乐一直播放时,只要对端说话,就会形成双讲,如果回声消除处理不好,就会对语音或者音乐造成很大的损伤;又如降噪算法在遇到音乐时也不可避免的对音乐产生损伤。因此在实时互动娱乐场景下需要对音频引擎的整个音频算法处理链路做出针对性的优化,以尽量提升实时互动娱乐场景下的音质。

OSCHINA 本期高手问答 (9 月 14 日 - 9 月 20 日) 我们请来了徐潇宇老师和大家一起探讨关于实时互动娱乐场景音频引擎整个链路的音频算法优化方向

必威体育app手机版可讨论的问题包括但不限于:

  • 音频采集
  • 回声消除
  • 降噪
  • AGC
  • 丢包补偿
  • 编解码
  • 传统算法与深度学习结合优化

或者其它关于实时互动娱乐场景音频引擎整个链路的音频算法优化方向相关问题,也欢迎大家积极提问!

嘉宾介绍

徐潇宇,荔枝资深音频算法工程师,精通数字信号处理、自适应滤波、3A算法、深度学习等,在荔枝负责通过传统音频算法+深度学习打造互动娱乐场景下的高音质RTC音频引擎。

github 账号http://github.com/ewan-xu

为了鼓励踊跃提问,荔枝集团会在问答结束后从提问者中抽取 5 名幸运会员赠予荔枝2022年度致敬T。

 

OSChina 高手问答一贯的风格,不欢迎任何与主题无关的讨论和喷子。

下面欢迎大家就实时互动娱乐场景音频引擎整个链路的音频算法优化方向相关问题向徐潇宇老师必威体育app手机版提问,请直接回帖提问。

加载中
1
OSC哒哒
OSC哒哒

高手问答第 292 期 —— 实时互动娱乐场景下如何提升 RTC 音频引擎音质

@xiaoaiwhc1 @向東不向西 @ericyan1 @auroa @mental

恭喜以上5位网友分别获得荔枝 2022 年度致敬 T一件

请于9月27日12:00前登陆账号, 私信@OSC哒哒  告知快递信息(格式:姓名+电话+地址)

1
xiaoaiwhc1
xiaoaiwhc1

@ewan_xu必威体育app手机版 记得做视频质量评估时,会分有源和无源情况。就是编码后的视频再解出YUV 跟源视频做对比。不知道这里的回声消除会不会也利用到类似的方法,至少音乐的特征可以实时获取到的。

e
ewan_xu
回复 @zn123 : 'F'一般叫做回声路径,包含线性和非线性两部分,一般使用自适应滤波器来估计线性回声路径,估计的回声路径会随着环境改变而动态更新,是不用每个机型都测试的。非线性部分使用NLP算法,其原理类似于降噪,通过估计残余非线性回声,构造一个滤波器进行消除,而残余回声较难精确建模,这部分需要针对机型去测试并优化。
zn123
zn123
回复 @ewan_xu : 对 这个F 如何得出的,每个android机型都测试么。
e
ewan_xu
你所说的音乐特征应该指的是播放信号,这是可以实时获取到的,例如我们的应用正在播放信号A,A又通过扬声器-环境-麦克风路径被录制形成回声A',假如我们将扬声器-环境-麦克风路径设为函数F,那么回声消除的基本原理就是通过估计函数F,然后利用A'=F(A)估计出回声,然后从麦克风录制的信号中减去这个回声。
1
zn123
zn123

@ewan_xu必威体育app手机版 说说你们在rtc 这个路上 做了哪些优化? 还有对语音识别,人声模拟方面有什么技术经验

e
ewan_xu
回复 @zn123 : 变声主要是依靠pitch shift、调制、失真、tremolo、混响、eq等手段实现,不过这方面没有统一的标准,按照我们定义,实现了小黄人、恶魔、机器人、金属音等之类的变声音效,并能够在rtc场景实时变声
zn123
zn123
回复 @ewan_xu : 已经实现了哪些 变声效果、音效效果
e
ewan_xu
rtc整个音频引擎音频链路都针对娱乐场景做了优化,如自研回声消除,保证回声消除效果。添加音乐检测,通过检测链路中的音乐,动态根据场景调整相应的优化算法。音乐场景降噪算法保证音乐不受损伤,语音AI降噪消除环境噪音和突发噪音。根据语音与音乐,调整相应的编解码格式和参数,以及jitterbuffer大小,plc算法等。另外还添加了实时变声、音效等效果。
0
某人gmgn3
某人gmgn3

必威体育app手机版web端如何做实时语音交互

e
ewan_xu
web端的实时通信主要依靠webrtc api,主流的浏览器都支持。由于其语音引擎集成到了浏览器的内核中,我们无法对其中的音频算法做优化,因此我们在优化语音引擎时一般不考虑web端。
0
程思
程思

@ewan_xu 请问如果想学习这个方面的技术,需要什么样的技术基础,以及推荐什么样的学习路径?

程思
程思
回复 @PanPacificTech : 没有。纯粹外行,了解一下。因为搞图像视频,有时候还是会擦擦边。
e
ewan_xu
算法基础:学习滤波器、音效、经典3A算法,编解码、neteq等基本的音频算法,这些算法一般都可以找到一些开源的算法,可以根据代码去学习,例如webrtc、speex、sox等
e
ewan_xu
理论基础:学习数学、声学、数字信号处理、自适应滤波等相关理论知识。目前基于深度学习的音频算法的研究也比较火热,也可以学习一些深度学习的基本理论。这些理论基础学习可通过阅读专业书籍、网课、学术会议或期刊发表的专业论文等渠道去学习
e
ewan_xu
编程基础:推荐学习matlab、python、C/C++,若能熟悉汇编/指令集更好。
PanPacificTech
PanPacificTech
程思同学,是做战屡研究嘛
0
PanPacificTech
PanPacificTech

@ewan_xu 使用BIGO LIVE这种产品,音频处理的很好,但是使用Starmaker这种产品,音频听的非常不清晰,是两个厂商技术的问题导致的嘛

 

e
ewan_xu
不同的产品应用场景不同,不能一概而论是技术问题导致的。
0
mental
mental

@ewan_xu必威体育app手机版 用过webrtc, 其实它的回音消除效果很差的, iOS, android,window还是用硬件支持的, 试过在window设置关闭了回音消除, webrtc的aec效果很差, 还是靠硬件, 你们的aec是自己做吗

e
ewan_xu
回复 @mental : 另外我们目前正在研究基于深度学习的NLP模型。相比传统NLP算法,深度学习的NLP模型在面对强非线性失真以及低信回比时回声消除效果和双讲效果要好很多,不久后就会上线。
e
ewan_xu
回复 @mental : 我们使用了子带卡尔曼滤波器来做延时估计和自适应滤波,延时估计计算量低且准确率高,自适应滤波收敛速度、回声消除能力也更好。NLP和AEC3思路一样,都是估计残余回声,然后构造一个滤波器进行消除。但我们使用了基于心理声学的滤波器,残余回声估计根据机型进行专门的优化。
e
ewan_xu
回复 @mental :webrtc回声消除分AEC和AEC3两个版本。延时估计算法AEC使用二值谱相似度,计算量小,但准确率低,不实用。AEC3使用时域nlms算法,准确率高,但计算量大。AEC和AEC3都使用了频域分块的自适应滤波,但AEC的滤波器为固定步长,收敛速度慢、回声消除能力有限、稳定性差,AEC3的滤波器为自适应步长兼具双滤波器结构,其收敛速度和回声消除能力一般,优点是比较稳定。
mental
mental
回复 @ewan_xu : 你们的延时估计,自适应滤波、NLP和webrtc的有什么不同, 基于什么模型来实现
e
ewan_xu
是的,webrtc的aec仅提供了一个针对rtc场景的算法,仅能保证消除回声,不保证双讲效果,而娱乐场景中音频内容就很丰富了,不仅有语音,还有音乐、音效等,可以说大部分都是双讲状态,所以我们是自己做aec,延时估计、自适应滤波、NLP都是针对娱乐场景研发的
下一页
0
pyboy58
pyboy58

@ewan_xu  1. RTC (语音通信 ,我有个劣质耳机,有的人和我通话,他经常反馈有刺耳的声音,有的人没有反应任何问题,这是不同的手机端做了优化效果,降低噪音了吗?

2.作为一个java的web项目,webrtc怎么加进web项目的需求比较好,智能客服这类,识别语音转为文字,不知道大哥推荐用哪个算法库的工具?

 

e
ewan_xu
2、目前有比较成熟的产品,不在本次讨论范围内,就不展开讲了
e
ewan_xu
1、刺耳声音有可能是啸叫或是噪声,不同应用处理的效果可能不同,需要具体测试分析,才好准确定位问题所在。
0
e
ericyan1

@ewan_xu  
1. 语音如何做自动会测试呢 ,要模拟不同的场景?
2. 算法是否考虑开源,更好的构建良性社区?

e
ewan_xu
后续优化成熟后可能会有开源计划,但目前以算法优化落地为主。
e
ewan_xu
语音主要分主观和客观两种方法。主观评价以ITU-T P.800 MOS得分最为常见,客观评价又分为有参考和无参考评价,有参评价方法pesq、polqa使用较多,无参评价方法有ITU-T P.563、E-model等。 主观评价优点是符合人的听觉准则,缺点是评测费时费力,评测不规范会带来误差,而客观评价则相反。其中pesq免费开源,但只支持窄带语音,polqa可以支持全频带,但需购买相应设备。
0
向東不向西
向東不向西

RTC引用场景,深度学习有哪些有效较为通用的方法,可以结合传统技术,弥补传统技术缺陷?@ewan_xu

e
ewan_xu
比如传统NLP算法很难对残余回声精确建模,靠适配和调参费时费力,且很难达到很好的效果。而深度学习模型的强大的非线性学习能力正好可以弥补传统算法的缺点,但深度学习模型的稳定性不如传统算法,在面对与训练集差异较大的数据时,效果会大打折扣,所以在传统自适应滤波的基础上结合深度学习的NLP模型,弥补双方不足,可以较好的解决传统回声消除的非线性回声问题。
e
ewan_xu
而且由于rtc场景下数据是以数据流形式进行推理,CNN不能使用普通的conv和transpose conv,需要使用casual conv和casual transpose conv,并且实现类似于RNN的流式推理方式。主流的开源离线推理框架都没有这种方式,还需要自己实现一套rtc场景的离线推理框架。
e
ewan_xu
rtc场景对数据的处理是实时的,而且需要在手机端处理,由于目前手机算力限制,不能做很复杂的模型。目前在rtc场景中,通用的模型以CNN和RNN为主。
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部