10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

荔枝音质高保真的降噪技术实践与研究

邱威

  • 2022-08-24
    北京
  • 本文字数:2492 字

    阅读完需:约 8 分钟

荔枝音质高保真的降噪技术实践与研究

当前直播行业愈发火热,用户通常处于不同的环境中,身边的键盘声,敲击声,空调声,喧哗声等噪声有时会对实时互动产生严重的干扰。然而传统的降噪算法针对平稳噪声有比较好的降噪效果,针对上述这一类非平稳噪声,比较难处理,收效甚微,降噪效果很差。

 

随着近年深度学习的广泛应用,使用神经网络的降噪算法喷涌而出,而且这类算法不管是在降噪力度上,还是鲁棒性上,都要优于传统降噪,是当前处理各种不同场景噪音的首选方案。

 

但是,在实时互动环境下,对于音频实时处理和性能要求比较高,这对于 AI 模型的设计和效果的平衡带来了的巨大的挑战。

 

基于上述挑战,荔枝集团音频团队提出了一种轻量的降噪方案--LizhiAiDenoiser,该方案不仅能处理日常生活中常见的平稳和非平稳噪声,而且能很好的保留语音的音质,同时该 AI 降噪模型在运行时占用的内存和 cpu 消耗都极低,满足了全量 iPhone 机型以及大部分 Android 中低端机型。

一、基本原理


LizhiAiDenoiser 采用传统算法和深度学习结合的混合结构。为了可实际在移动端部署,LizhiAiDenoiser 采用了比较精细的模型结构,主要使用低性能消耗的 CNN-RNN 结构。


1. 数据和增强


训练深度学习降噪模型的数据集是通过混合纯净语音和噪音音频的方式。纯净语音主要使用的是开源数据集,包括英文数据集和中文数据集,英文数据集 300 小时,中文数据集 200 小时。噪音音频由两部分构成,一部分是开源噪音集 audioset,大约 120 小时,一部分是自己录制的噪音集,大约 60 小时。数据增强的方法被应用于语音和噪声样本,目的是进一步扩展模型在训练的过程中看到的数据分布。当前,LizhiAiDenoiser 支持以下随机增强的方法:


○ 重采样速度和改变 pitch

○ 添加混响,在纯净语音中添加少量混响

○ 使用[-5,25]的信噪比来混合纯净语音和噪音

 

2. 模型目标


语音降噪通常采用有噪声语音的短时傅里叶变换(STFT),只增强幅度谱,而保持相位谱不变。这样做是因为人们相信,相位谱对语音增强并不重要。然而,最近的研究表明,相位对感知质量很重要。我们的方法使用深度神经网络来估计在复数域中的理想比值 Mask 的实部分量和虚部分量,这种方法更好的保留了语音的质量

 

同时以更小的模型参数达到了大模型同样的降噪效果。原始的 AI 降噪模型,模型大小大概 3M,固定测试集 mos 分为 3.1。对模型做一些剪枝同时调整模型结构,再针对模型输出目标进行调整,在保持 3.1 的 mos 的情况下,最终模型大小降为 900k。

 

复数理想比值 Mask 的推导过程如下:


S(t,f) = M(t,f) * Y(t,f) .........(1)

 

公式(1)中 S(t,f)代表纯净语音,Y(t,f)代表带噪语音,M(t,f)代表模型估计出来的复数域中的理想比值 Mask。

为了方便起见,上式没有体现出时间和频率的下标,但给出了每个 T-F 单元的定义。公式(1)可以扩展为:

 

S(r)+iS(i)= (M(r) +iM(i)*(Y(r)+iY(i))=(M(r)Y(r)-M(i)Y(i)+i(M(r)Y(i)+M(i)Y(r)) .........(2)


纯净语音的实部分量和虚部分量为:


S(r) = M(r)Y(r) - M(i)Y(i) .........(3)

S(i) = M(r)Y(i) + M(i)Y(t) .........(4)


根据公式(3)和公式(4)可以得到 M 的实部和虚部分量:


M(r)=(Y(r)S(r)+Y(i)S(i))/(Y(r)2+Y(i)2).........(5)

M(i)=(Y(r)S(i)-Y(i)S(r))/(Y(r)2+Y(i)2).........(6)


从而得到复数域理想比值的 Mask:


M=(Y(r)S(r)+Y(i)S(i))/(Y(r)2+Y(i)2)+i((Y(r)S(i)-Y(i)S(r))/(Y(r)2+Y(i)2)).........(7)


3. 网络模型


从上图可以看出,我们使用的模型结构极其简单,并且 CNN 能够很好的提取 local feature,GRU 能够学习时序上的特征,这对于模型的泛化和推理实时性都起到了很好的正向作用。

二、效果和性能


效果


在效果验证上,我们采用日常常见的八种噪音不同的信噪比与传统降噪进行对比测试,使用 POLQA 测试降噪后的音频 mos 分,对比结果如下:

如上效果所示,LizhiAiDenoiser 在不同信噪比和场景下,取得了不错的效果。这里测试 40db 和 50db 的音频,主要是为了测试 LizhiAiDenoiser 对近乎纯净语音有没有损伤,从最终结果能够看出,LizhiAiDenoiser 对于纯净语音几乎不产生损伤情况。


音质保护示例


结论:在语音的中频部分能看到 LizhiAiDenoiser 降噪后对语音保留的更好。


降噪示例


性能


在 LizhiDenoiser 的模型前向推理过程中,我们没有使用开源的推理框架,而是使用自研的推理框架,不使用开源推理框架原因有:


• 不依赖第三方推理框架,使得前向推理更加灵活多变;

• 减少 LizhiDenoiser 模块占包大小;

• 更加自由灵活的针对模型结构做极致的推理速度优化

分别测试了 iPhone 和 Android 较低机型的性能,这里主要采用 cpu 消耗和实时率来度量 LizhiAiDenoiser 的性能。


cpu 消耗


因为模型设计比较精细,参数占用比较小,cpu 占用不超过 3%。


实时率


实时率是指处理每帧音频所要花费的时间,通常是处理整个音频来统计总的耗时,再除以音频的总帧数,得到平均每帧耗时,这种方式在实时率要求比较高的任务中是很难有说服力的,因为此时任务比较单一,CPU 利用率比较高,所以总的耗时统计大大减少。


我们在统计实时率时采用最真实的统计方法,即在 RTC 应用中统计每帧音频的真实耗时情况。统计情况如下:


说明:上图中横坐标是音频帧数,每一帧 10 毫秒,纵坐标是每一帧经过 LizhiAiDenoiser 降噪耗时,单位是微秒


从图中可以看出,android 较低机型实时率不超过 0.3,iPhone 较低机型实时率不超过 0.2。

三、规划


AI 降噪在 RTC 任务中还有很多优化的空间:


1. 实时率的优化

进一步对模型进行剪枝和使用更低计算消耗的网络,同时进一步优化我们的 AI 推理框架,以及对模型进行量化,通过这几个维度的优化来进一步提升我们 AI 降噪的实时率。


2. 全频带 AI 降噪

因为全频带 AI 降噪不管是在特征输入上还是网络结构设计上都比较大,很难在 RTC 这种对实时率要求比较高的任务达到好的效果,所以我们接下来准备将音频转换到比较小的特征维度上,通过设计比较小的网络来拟合该任务。


3. 模型的压缩

在算法落地上,对于模型大小有时也有一定的要求,同时也是模型轻量的一个体现,更少的占用设备资源。所以在模型落地时,一般会对模型大小进行压缩,接下来我们会使用占用内存更小的数据类型来存储数据,优化模型存储的格式以进一步减少模型存储的大小。

 

作者:

邱威:荔枝音视频研发中心高级音频算法工程师,主要从事音频相关 AI 算法研究和 AI 模型在移动端部署的工作。

 

2022-08-24 18:085599

评论 2 条评论

发布
用户头像
荔枝的技术低调大气有实力,可以给外界多多分享干货!
2022-08-26 10:53 · 广东
回复
用户头像
公式很长
2022-08-24 22:56 · 广东
回复
没有更多了
发现更多内容

链路追踪可视化利器之火焰图

观测云

链路追踪

SelectDB 多计算集群核心设计要点揭秘与场景应用

SelectDB

数据库 数据仓库 云原生 存算分离架构 云数据仓库

技术前沿:“环抱”晶体管与“三明治”布线

E科讯

前端 Vuer,为自己的项目搭建一个 Playwright 测试环境吧,给自己多一点安全感!

OpenTiny社区

Vue 前端 OpenTiny

Apache Doris Flink Connector 24.0.0 版本正式发布

SelectDB

实时数仓 Doris 数据导入 Flink CDC 数据同步工具 CDC

使用CLion进行ROS开发

芯动大师

CLion 2023

百度梁志祥:樱桃好吃树好栽 智能体让营销更简单

极客天地

软件测试学习笔记丨Docker 安装、管理、搭建服务

测试人

软件测试

国际网络互联,帮助跨国企业全球协同办公

Ogcloud

SD-WAN 企业组网 SD-WAN组网 跨国组网 跨国网络

对标世界一流!望繁信科技受邀参加2023企业财务数智化转型论坛

望繁信科技

数字化转型 流程挖掘 财务管理 流程资产 流程智能

C++:使自定义类支持迭代器

不在线第一只蜗牛

c++

告别性能瓶颈!四大关系型数据库向 TDengine 迁移的最佳解决方案

TDengine

数据库 tdengine

移动医疗|基于音视频SDK和即时通讯IM技术实现线上问诊技术

ZEGO即构

直播技术 音视频sdk 互联网医疗 在线问诊 直播SDK

如何用 Scrapy 爬取网站数据并在 Easysearch 中进行存储检索分析

极限实验室

爬虫 Scrapy easysearch

一个故事理解限流熔断降级

老张

系统架构 服务治理 基础架构 流量治理

Kotlin函数竟然如此简洁

Silently9527

Java kotlin

mac苹果电脑风扇控制软件:Macs Fan Control Pro for mac 激活版

你的猪会飞吗

mac软件下载 Mac软件下载站 mac破解软件下载

阿里云AMD护航,天谋科技携IoTDB登顶TPCx-IoT国际权威榜单

Apache IoTDB

数据资产入表全流程解析,助力企业数据要素价值释放

袋鼠云数栈

为什么说Scrum是有效的?(Why does Scrum work)

ShineScrum

黑神话云端开放!ToDesk 云电脑、青椒云、网易云,不用高配电脑也能畅玩!

阿Q说代码

青椒云云桌面 ToDesk云电脑 黑神话悟空 网易云游戏电脑

荔枝音质高保真的降噪技术实践与研究_移动_InfoQ精选文章