聊聊语音聊天室app源码实时音视频中的技术难点:回声消除+噪声消除

在聊聊语音聊天室app源码各个实时音视频互动场景中,回声和噪声对于影响用户体验而言都是很大的问题。音视频正在发展成为互联网线上沟通的必然趋势,在自然的交流环境中,回声和噪声是非常影响沟通体验的。不论是社交、教育、直播场景中的“疑难杂症”或是智能硬件通话中的“痛点问题”还是银行视频客服和企业视频会议的“严格要求”,都与回声噪音有关,因为人对音频都很敏感,声音一旦有任何瑕疵,人耳都会特别容易感觉到,而且难以忍受,这都会直接影响到用户体验及用户留存率。而回声消除与噪声消除也一直是实时音视频的技术难点。

声学回声消除AEC

声学回声是在麦克风采集了近端声音的同时也采集了扬声器发出来的声音,如果没有回声消除模块(Acoustic Echo Cancelation – AEC),对端将听到自己的声音又被传了回来,这就是恼人的回声产生的原理。容易理解,语音通话中,通常声学回声是在用户打开了免提模式,即开启扬声器时产生的,不打开免提模式的情况下一般不需要启用AEC。但是,有时候由于结构设计的问题,尽管没有打开免提模式,听筒上的声音也可能作为回声被麦克风采集到,此时也需要使用AEC。

消除回声就像把红墨水倒进蓝墨水里,混合在一起,然后要求把红墨水从蓝墨水中分离出来,这存在着很大的技术难度。对于采集端来说,无论是近端的声音,还是扬声器播放出来的声音,都是从空气中无差别地采集到的声音。对机器来说,远端信号播放出来的声音和近端的声音是没有任何区别的,就像对水来说红墨水和蓝墨水没有区别一样。回声消除的工作就是要把没有任何区别的远端回声和近端声音分离。AEC算法的基本思路是,参考远端信号将混有回音的近端信号“减去”回声。然而由于Speaker和MIC的模数转换和回声多途效应等因素,回声和远端参考信号具有非线性失真,无法做到完全消除回声的同时确保近端信号质量不下降,因此可能有回声残留或近端信号质量下降或被抑制。

语音聊天室app源码搭建过程中的自适应回声消除技术,可自动适配市场上各类新旧机型,大规模节约调试和部署成本。实际测试表明,AEC能显著改善双端通话的质量,下图是实测的回声消除前和回声消除后的语音质量的MOS(Mean Opinion Score)分的对比,Sig表示信号维度的质量,Echo表示回声消除维度的质量,Ovrl表示总体质量。

噪声消除

在语音聊天室app源码搭建过程中除了回声消除,噪声消除也是实时音视频中的必修课。噪声消除是一个十分复杂的技术,不同的环境噪声所需要的处理方法是不同的,纯软件的噪声消除的能力也是有限的,有条件采用带有消噪能力的双麦克风的平台可以获得更佳的消噪质量。

MME主要是通过软件的方式对噪声进行消除,它可以对输出和输入两个方向的语音信号进行处理,即对近端信号和远端信号处理,前者的调用接口为Mvc_DspSetAnrEnable(),后者调用接口为Mvc_DspSetRxAnrEnable()。如果两个通信端都采用了菊风MME,只要打开一个方向的噪声消除功能即可,同时进行两个处理过程跟一个过程相比不会提高信噪比(Signal-to-Noise Ratio : SNR),也不会提高语音质量。但如果另一个终端采用的是第三方媒体处理模块,且传过来的信号噪音比较大,则需要对远端信号进行处理,因此默认两个噪声消除的接口都打开。从数字信号处理角度来说,对远端信号和近端信号进行噪声消除是没有区别的,下图对比了语音叠加噪音信号经MME处理前后的波形。

在语音聊天室app源码的搭建过程中可以从三个方面考查噪声消除模块的性能:其一是信号的保真度,要做到有效的语音信号不损失或微损失;其二是噪声消除了多少的考量,在信号不损失或微损失的情况下,做到尽可能的消除噪声;其三是声音给测试人员的整体感受,最终给测试人员的感受才是最有效的考量。下图是基于ITU-T P.835标准,对叠加了噪音信号经过MME的处理后的MOS分对比。实验表明,在平均-30dbov白噪音情况下,SNR上升12db,MOS上升1.13。

Sig - Speech signal rating scale

Bak - Background noise rating scale

Ovrl - Overall quality rating scale

本文转载自网络,感谢(菊风 Juphoon)的分享,转载仅为分享干货知识,如有侵权欢迎联系云豹科技进行删除处理

聊聊语音聊天室app源码实时音视频中的技术难点:回声消除+噪声消除相关推荐

  1. 聊聊实时音视频中的技术难点:回声消除+噪声消除

    文 | 菊风媒体引擎资深研究团队 在各个实时音视频互动场景中,回声和噪声对于影响用户体验而言都是很大的问题.音视频正在发展成为互联网线上沟通的必然趋势,在自然的交流环境中,回声和噪声是非常影响沟通体验 ...

  2. 语音直播源码的发展,语音聊天室APP源码

    随着游戏动漫的火热等等,以及5G的普及,AI技术的发展,现在以音视频.游戏主导的多场景社交产品变得火热,逐渐成为热点.5G时代.语音直播系统开发是一个很好的社交方向,随着声音的传递,让市场看到更多声音 ...

  3. 零基础搭建iOS语音聊天室平台源码

    语音聊天室平台源码玩法兴起,众多社交泛娱乐平台已纷纷跟进. 语音聊天室平台源码的实现,主要由业务系统和移动/Web 客户端组成.其中业务系统需要实现房间管理.麦位管理.音频流和麦位关联关系管理等功能, ...

  4. 实现一个简单的语音聊天室(源码)

    语音聊天室,或多人语音聊天,是即时通信应用中常见的功能之一,比如,QQ的语音讨论组就是我们用得比较多的. 这篇文章将实现一个简单的语音聊天室,让多个人可以进入同一个房间进行语音沟通.先看运行效果截图: ...

  5. java即时通讯源码 IM即时通讯源码 IM源码 安卓苹果原生APP源码 带音视频

    基本功能说明及介绍: 客户端:安卓,苹果,pc,web 开发语言: Java OC C# 运行软件:eclipse Java xcode 数据库:mongodb 环境:Linux Centos 7以上 ...

  6. 基于vfw的局域网语音聊天室系统源码论文

    语音视频聊天 UDP套接字的运用 在实现语音视频聊天时,采用的是基于UDP套接字的点对点模式,而UDP面向的是无连接的数据服务,其套接字的使用如图10所示. 图10 UDP套接字的使用 视频的捕获 利 ...

  7. PHP匿名在线聊天室系统源码 自适应PC+WAP端

    介绍: PHP匿名在线聊天室系统源码 自适应PC+WAP端 可发语音.图片 修改数据库config\settings.php可拿去搭建专门跟客户聊天的网站 网盘下载地址: http://kekewl. ...

  8. PHP匿名在线聊天室系统源码

    PHP匿名在线聊天室系统源码,自适应PC+WAP端,可发 语音.图片.带有三套主题模板,完美可用. [完整源码链接] PHP匿名在线聊天室系统源码.zip-PHP文档类资源-CSDN文库

  9. 分享66个PHP聊天室类源码,总有一款适合您

    分享66个PHP聊天室类源码,总有一款适合您 66个PHP聊天室类源码下载链接:https://pan.baidu.com/s/1_Fbbc3WMVWN7jjgTRaCnXw?pwd=h75j 提取码 ...

最新文章

  1. qt在windows和linux效率,QT 程序在windows和linux上的打包
  2. python【蓝桥杯vip练习题库】BASIC-15字符串对比(水题)
  3. 0基础学python难吗-0基础学Python有多难?该怎么入门?
  4. 2017年秋季个人阅读计划
  5. Jboss4集群配置之四:启动Jboss集群
  6. 《嵌入式系统开发之道——菜鸟成长日志与项目经理的私房菜》——02-04项目范围(Scope)管理...
  7. springboot指定首页(静态资源导入)
  8. java 16进制整数,Java将整数转换为十六进制整数
  9. 【蓝桥杯嵌入式】【STM32】9_PWM之实现交替呼吸灯
  10. php gettext 为空,PHP Gettext
  11. js 编写一道程序题输入长和宽之后点击按钮可弹出长方形面积。
  12. Flash研究(一)——本地通讯
  13. JavaScript 中常用的弹窗
  14. 彭国伦Fortran95学习笔记(一)第八章至第十六章
  15. 微信小程序 选项卡 swiper默认高度150px(让高度实现自适应)解决方法
  16. mysql 闰年,[MySQL]--gt;查询5天之内过生日的同事中的闰年2月
  17. TortoiseSVN 命令
  18. PC端BOSS直聘如何在不点开消息的情况下查看最新消息以及其所招的职位信息
  19. 微博爬虫数据分析可视化程序设计报告
  20. 【EasyClick iOS免越狱常见问题】脚本运行 显示执行异常:com.js.main

热门文章

  1. NoSql入门和概述
  2. 电脑上照片如何压缩大小?怎么把照片在线压缩?
  3. wish商户平台登录网址中国版【wish圈】
  4. 常用分辨率设置,RGB与CMYK_几何途行_新浪博客
  5. 苏州持续深化区块链技术在公证领域的应用
  6. oracle 提示ORA-00942: 表或视图不存在,但是plsql查询有数据,解决办法
  7. Paragraph 对象'代表所选内容、范围或文档中的一个段落。Paragraph 对象是 Paragraphs 集合的一个成员。Paragraphs 集合包含所选内容、范围或文档中的所有段落。...
  8. 高性能RabbitMQ消息队列介绍 及 SpringBoot整合
  9. ResourceUtils
  10. GEE:变异系数法在遥感影像分析中的应用及权重计算