随着线上泛娱乐的兴起,语聊房、在线 KTV 以及直播等场景在人们的日常生活中占据越来越重要的地位,用户对于音质的要求也越来越高,因此超越传统语音降噪算法的 AI 降噪算法应运而生,所以目前各大 RTC 厂商普遍使用 AI 技术进行降噪处理,使用 AI 降噪技术消除除人声外的一切声音。

但对于一些特殊场景,如在线 KTV、线上直播等声卡场景,或者弹唱、伴奏、乐器等使用场景中,我们可以明显的感受到,一般降噪处理或 AI 降噪处理的过程中会将音乐/伴奏误识别为噪音,并进行降噪处理,给用户带来很不好的线上体验。因此,在此类使用场景中用户越来越不满足于背景降噪,而是提出更高要求,那就是深度降噪的同时保留音乐的音质。为了满足用户消噪与音乐音质高保真的需求,ZEGO 即构科技自研了一套自适应降噪方案,能在音乐与非音乐场景中智能切换,既保证了无音乐场景下的语音的质量,又保留了音乐的高保真音质。

音乐场景降噪方案简介

首先简单了解一下即构音乐场景降噪的方案流程:

从图中可以看到,经过前处理后的音频数据会被送入 AI 音乐检测模块,接着根据检测结果将场景分为音乐和非音乐场景。若检测出音乐场景则会使用传统降噪对音频数据进行处理,以减少对音乐的损伤,非音乐场景则继续使用 AI 降噪进行更深度的噪声消除。最后数据会经过自动增益模块完成最终的语音增强。

关于 AI 音乐检测算法

由上文描述中可以看到,完成音乐场景降噪功能最重要的一环就是 AI 音乐检测算法。为了满足音乐场景的实时切换与极高检测率的需求,我们自研了基于AI的音乐检测算法 ZegoAIMusicDetecion。 算法流程如下:

我们对数据进行帧长为 20ms,帧移为 10ms 的 STFT 处理后,使用 Bark 频带尺度将数据分为8 个子带,再分别求取一阶差分,二阶差分和谱平坦度最终得到 25 维特征。将计算得到的特征送入到我们设计的轻量型网络模型 CRNN,模型结构如下:

这里使用多层 Conv1d 卷积层能进一步的对特征进行提取。训练时,我们搜集了大量的开源音乐、语音与噪声数据进行训练,同时使用不同信噪比进行数据混合增强,确保模型有足够的泛化性。在训练优化器上,我们选择了 AdamW 以更好地对模型进行正则化处理,学习率为 0.001,批大小是 64,损失函数我们使用了交叉熵函数,公式如下:

算法效果与性能开销

有了 AI 音乐检测算法的帮助,我们最终可以实现针对音乐场景的降噪方案,方案最终的效果如下:

从上面的频谱图以及实际的听感来看,都可以直观的感受到即构音乐场景降噪方案对音乐音质的保护。在提供良好效果的同时,ZegoAIMusicDetecion 秉承着极轻量级模型的设计理念,整体计算量大约为 1.2M FLOPS,RTF 指标在各个平台和终端上均控制在 0.2% 以内。在此基础上,我们采用多帧平滑的后处理技术使音乐检测误检率低于 1%,音乐检测率达到 95% 以上。

技术展望

音乐场景在泛娱乐社交和互动中十分常见,需要注重用户和听众的使用感觉,做好音乐场景降噪处理。综上所述,ZEGO 即构科技为了同时兼顾降噪与音乐音质体验,自研了基于 AI 的音乐检测算法(点这里),设计出一套音乐场景降噪方案,充分体现即构对于用户良好体验的高度重视。

未来,我们会结合具体行业和场景,引入更多的可行性方案,提升产品的场景适应能力,给用户提供更好的音频体验!了解更多ZEGO即构IM即时通讯服务

ZEGO 即构音乐场景降噪技术解析的更多相关文章

  1. 用UE4来做Zego即构的房间列表

    Zego即构是一家做直播的服务商,Zego即构自己的房间列表,本文只是测试功能用,相应代码并没完全测试,请选择性参考. 我们在UE4中来实现一下,我感觉这个过程有点意思,UE4中C++与蓝图和UI的互 ...

  2. 网络框架OKHTTP使用场景全解析

    [本文版权归微信公众号"代码艺术"(ID:onblog)所有,若是转载请务必保留本段原创声明,违者必究.若是文章有不足之处,欢迎关注微信公众号私信与我进行交流!] 一.引言 说句实 ...

  3. ReadWriteLock场景应用解析

    本人免费整理了Java高级资料,涵盖了Java.Redis.MongoDB.MySQL.Zookeeper.Spring Cloud.Dubbo高并发分布式等教程,一共30G,需要自己领取.传送门:h ...

  4. 网易云音乐JS逆向解析歌曲链接

    Request URL:   https://music.163.com/weapi/song/enhance/player/url?csrf_token= FormData : params: BV ...

  5. ZEGO音视频服务的高可用架构设计与运营

    前言: ZEGO 即构科技作为一家实时音视频的提供商,系统稳定性直接影响用户的主观体验,如何保障服务高可用且用户体验最优是行业面临的挑战,本文结合实际业务场景进行思考,介绍 ZEGO 即构在高可用架构 ...

  6. 主流的第三方直播SDK对比(腾讯云、即构、阿里云、声网、网易云信、网宿)

    直播业务概述 大家所熟知的直播平台虎牙.斗鱼.快手.抖音.B站,直播功能看似普遍,但从零到一开发却不简单.直播中运用到的技术难点非常之多,音频视频处理/编解码,前后处理,直播分发,即时通讯等技术,学好 ...

  7. 网站app被劫持怎么办?HTTPDNS阿里云域名防劫持, DNSPod 移动解析服务 D+

    网站app被劫持怎么办?HTTPDNS阿里云域名防劫持, DNSPod 移动解析服务 D+ HTTPDNS_移动开发_域名解析_域名防劫持-阿里云https://www.aliyun.com/prod ...

  8. [PY3]——内置数据结构(8)——解构与封装

    ### 解构的理解与用法 ### 解构是python很有特色的一个功能,被很多语言借鉴(例如ES6) # 元素按照顺序赋值给变量 In [31]: lst=list(range(5)) In [32] ...

  9. 【系统学习ES6】第二节:解构赋值

    [系统学习ES6] 本专题旨在对ES6的常用技术点进行系统性梳理,帮助大家对其有更好的掌握,希望大家有所收获. ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构.解构是一种打 ...

  10. ES6(二) Destructuring-变量的解构赋值

    1.解构的含义 允许按照一定的模式,从数组和对象中取值,对变量进行赋值,称为解构. 解构赋值时,只要等号右边的值不是对象,就先将其转换成对象. 本质上,这种写法属于 “模式匹配”,只要两边模式相同,左 ...

随机推荐

  1. Java:如何加密或解密PDF文档?

    在工作中,我们会将重要的文档进行加密,并且设置用户的访问权限,其他外部人员均无法打开,只有获取该权限的用户才有资格打开文档.此外,限制用户的使用权限,极大程度上阻止了那些有意要篡改.拷贝其中内容的人, ...

  2. [OpenCV-Python] 16 图像平滑

    文章目录 OpenCV-Python:IV OpenCV中的图像处理 16 图像平滑 16.1 平均 16.2 高斯模糊 16.3 中值模糊 16.4 双边滤波 OpenCV-Python:IV Op ...

  3. Nuxt3.0中使用EChart可视化图表📊

    在Nuxt3.0项目中用到了可视化图表,于是我用了EChart可视化图表库.但是在官网我没有找到针对在Nuxt3.0中使用EChart的方法,于是在这里记录我的引入EChart并简单使用的步骤.需要声 ...

  4. 2023-02-25:请用go语言调用ffmpeg,解码mp4文件并保存为YUV420SP格式文件,YUV420P不要转换成YUV420SP。

    2023-02-25:请用go语言调用ffmpeg,解码mp4文件并保存为YUV420SP格式文件,YUV420P不要转换成YUV420SP. 答案2023-02-25: 使用 github.com/ ...

  5. redis内存突然暴增,排查思路是什么

    1 这种暴增的应该还是上次一个群友说的,更多可能是外部因素导致的,应用新上线,定时任务这些,再有就是cat上查是哪些指令多,以及比对和之前的时间的差异 看是否有定时任务 或者 新上线的活动 ,在看下监 ...

  6. defer()排除某些字段

    defer()排除某些字段 不显示nickname,age两列的数据 Student.objects.all().defer('nickname','age')

  7. LOTO示波器如何测试阻抗的频响曲线

    LOTO示波器如何测试阻抗的频响曲线 模块的输入输出端口,在电路分析上,一般简单表征为电阻来进行计算和分析.但多数情况下,这些端口并不是纯电阻的特性,更精确一些,它可能是电阻电容以及电感的组合,表现为 ...

  8. 为什么 GPU 更适用于时域算法,而 CPU 更适用于频域算法?

    对于懂电脑的人来讲,他们可以简单地区分出电脑的GPU和CPU的应用范畴及其优势,而今天我们要讨论的问题是"为什么 GPU 更适用于时域算法,而 CPU 更适用于频域算法?"在讨论这 ...

  9. Java网络编程----通过实现简易聊天工具来聊聊NIO

    前文我们说过了BIO,今天我们聊聊NIO.NIO 是什么?NIO官方解释它为New lO,由于其特性我们也称之为,Non-Blocking IO.这是jdk1.4之后新增的一套IO标准.为什么要用NI ...

  10. mac -bash: ls: No such file or directory

    再mac 输入ls 竟然提示我 如图其他到命令都不能用了??? 网上找了大半天.看见这种类似的很多,但是最后都不是我要的答案,最后没辙,注销用户,重新登陆,问题没有了,也不知道是不是mac的bug:有 ...