Windows下音视频对讲演示程序(声学回音消除、噪音抑制、语音活动检测、自动增益控制、自适应抖动缓冲)(2021年11月10日更新)

摘要:
该软件按照《道德经》的核心思想设计,通过TCP或UDP协议实现两台设备之间的全双工实时音视频对讲。进行了以下增强:支持8000Hz、16000Hz、32000Hz、48000Hz音频。它支持全双工实时音频和视频对讲机,并支持Android的音频和视频对讲演示程序。高级充电功能包括:Speedx声学回声消除器、WebRtc浮点声学回声消消器、SpeedxWebRtc三重声学回声消融器、RNNoise抑制器、OpenH264编解码器和自行设计的自适应抖动缓冲器。
Windows下音视频对讲演示程序 必读说明 简介

本软件根据《道德经》为核心思想而设计,实现了两个设备之间通过TCP或UDP协议进行全双工实时音视频对讲,并做了以下增强处理:

支持8000Hz、16000Hz、32000Hz、48000Hz的音频。

支持声学回音消除,通过本人自己设计的音频输入输出帧同步方法、自适应设置回音延迟方法、三重声学回音消除器,声学回音可以消除到99%以上,还可以消除同一房间回音,且收敛时间很短,无论网络如何抖动都可以消除。

支持噪音抑制,对常见的底噪音、嘈杂的街道音、风吹音、等都有抑制效果。

支持语音活动检测,只有在人说话时才发送网络数据,无人说话时不产生网络数据,从而降低噪音、降低网络流量。

支持自动增益控制,当人说话声音较小时会自动增大音量,当人说话声音较大时会自动减小音量。

支持音频编解码,对音频数据的压缩率在1~20%之间,且支持动态比特率,从而大幅度降低网络流量,还支持数据包丢失隐藏,当网络丢包率高达30%时,仍然可以进行对讲。

支持视频编解码,支持指定比特率,最低到10KB/s仍然可以进行视频对讲。

支持音视频自适应抖动缓冲,当网络存在丢包、乱序、延时等抖动情况时,通过自适应调节缓冲深度来应对这些抖动。

支持与Android下音视频对讲演示程序进行全双工实时音视频对讲。

声学回音消除器效果对比:

Windows下音视频对讲演示程序(声学回音消除、噪音抑制、语音活动检测、自动增益控制、自适应抖动缓冲)(2021年11月10日更新)第1张

准备

准备两台安装了Windows XP及以上系统的设备(已适配到Windows 10),其中一台设备作为客户端可以连接到另一台作为服务端的设备(可以用Ping工具测试,建议两台设备在同一局域网内),且两台设备都安装相同版本的本软件。

开始

在一台设备上直接点击创建服务端,再在另一台设备上将IP地址改为服务端设备的IP地址,并点击连接服务端,即可开始对讲,在任意一端点击中断,即可中断对讲。

设置按钮提供了各项功能的参数设置,绝大部分情况下都不需要修改,当然你也可以根据需要自行修改。

特别注意:如果把两台设备放在同一房间里测试,有可能会出现啸叫、声音不完整、等问题,这是因为现在的麦克风都很灵敏了,一点小小的声音都会被录进去,两台设备会相互录音,导致软件无法正确识别回音,所以建议放在不同的房间里测试。如果实在要测试这种情况,就在设置里,Speex预处理器的其他功能设置里,关闭“使用自动增益控制”后再测试。

移植

如果需要在自己的软件中使用本软件的音频功能,只需要将MediaProcThread.h、MediaProcThread.cpp和各个库文件夹复制到自己的软件中,然后实现实现UserInit、UserProcess、UserDestroy、UserReadAudioVideoInputFrame、UserWriteAudioOutputFrame、UserGetPcmAudioOutputFrame、UserWriteVideoOutputFrame、UserGetYU12VideoOutputFrame这八个函数即可。

如果有不需要的部分功能,则只需要删除该功能对应头文件和库文件,然后修改MediaProcThread.h、MediaProcThread.cpp文件即可。

普通免费功能包括:WebRtc定点版声学回音消除器、Speex预处理器的噪音抑制、WebRtc定点版噪音抑制器、WebRtc浮点版噪音抑制器、Speex预处理器的其他功能、Speex编解码器、Wave文件读取器、Wave文件写入器、本端TCP协议服务端套接字、本端TCP协议客户端套接字、本端UDP协议套接字。

高级收费功能包括:Speex声学回音消除器、WebRtc浮点版声学回音消除器、SpeexWebRtc三重声学回音消除器、RNNoise噪音抑制器、OpenH264编解码器、自己设计的自适应抖动缓冲器。

注意

从老版本更新到新版本时,类文件和库文件全部都要更新,不能只更新类文件或库文件,否则会导致意想不到的问题。

如果要使用8000Hz采样频率时,最好不要使用RNNoise噪音抑制,因为它对8000Hz的声音抑制非常强烈。

本软件不支持音乐,尤其是RNNoise噪音抑制器可能对音乐的抑制非常强烈。

某些Windows设备的软硬件环境可能存在问题,从而可能会导致声学回音消除失败,这种情况必须要先解决这些问题。

其他

本软件采用了Speex的1.2.0版本、SpeexDsp的1.2.0版本、WebRtc的2019年7月份版本、OpenH264的2021年3月份版本为基础,并进行了大量优化。

讨论QQ群:511046632 欢迎大家参与测试和讨论!

本人QQ号:280604597 赤勇玄心行天道

本人博客:http://www.cnblogs.com/gaoyaguo

Windows版源代码:https://github.com/cyz7758520/Windows_audio_talkback_demo_program

https://gitee.com/chen_yi_ze/Windows_audio_talkback_demo_program

Android版源代码:https://github.com/cyz7758520/Android_audio_talkback_demo_program

https://gitee.com/chen_yi_ze/Android_audio_talkback_demo_program

版权

Speex:https://gitlab.xiph.org/xiph/speex/-/blob/master/COPYING

WebRtc:https://gitlab.com/webrtc-mirror/webrtc/-/blob/master/LICENSE

RNNoise:https://gitlab.xiph.org/xiph/rnnoise/-/blob/master/COPYING

OpenH264:https://github.com/cisco/openh264/blob/master/LICENSE

LibYUV:https://github.com/lemenkov/libyuv/blob/master/LICENSE

感谢

感谢 WELEN、善书、陈国福 对 Speex、WebRTC 的指点!

免责声明:文章转载自《Windows下音视频对讲演示程序(声学回音消除、噪音抑制、语音活动检测、自动增益控制、自适应抖动缓冲)(2021年11月10日更新)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇华为、科达、海康、大华等厂家摄像头通过非标方式(RTSP)接入流媒体服务实现WEB直播与录像Mycat 读写分离下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

如何把你的图标转换成web字体

在这篇教程中,我们将使用一个免费的Web应用程序IcoMoon将矢量图转换成Web字体,然后将生成的字体通过css应用到Web页面中。 通常我们在网站中必不可少的会使用到一些小图标。在正常尺寸下,布局看上去一切OK,但当我们将页面进行放大显示后,你会发现icon图标变得有些模糊,而基于文本的标题依然清晰可见。为了适应各种情况,我们有必要试着解决它: 解...

使用Charles抓取APP之HTTPS请求

Charles是一款非常好用的抓包工具,通常使用它来进行APP开发抓包调试,尤其是HTTPS请求。 一、安装Charles 去官网(https://www.charlesproxy.com/)下载软件并安装。 安装完毕后,开启系统代理(本测试在windows环境进行),菜单->Proxy->Windows Proxy前面打钩,就开启了windo...

准时下班的秘密:集成 GitLab && JIRA 实现自动化工作流

佛罗伦萨 - 圣母百花圣殿(图) 前言 GitLab 和 Jira 是平时开发过程中使用非常高频的代码管理系统(开发人员)和项目管理系统(项目管理),通过两套系统的协作完成平常大多数的功能开发,但是两套系统在没有集成情况下是完全两套独立的系统,不仅信息没有互通,而且开发人员需要反复的登陆两套不同的系统,进行一些重复的操作才能保证功能流的正常流转,不仅效率...

黑苹果10.12 sierra 安装笔记

先上成果 再说感慨 有钱还是直接上mbp或者imac吧,比较折腾。 当然不想太折腾又想装黑苹果,也是可以滴。去Tonymacx86根据配置单攒机(保证最大兼容性),照着它的教程一步步做,还是很简单的,我是早就买台式机了,所以不能照那个来 软硬件准备 台式机 处理器 英特尔 i7-4790K @ 4.00GHz 四核 主板 华硕 Z87-K 显卡 英特尔...

ArcGIS 基础4-删除数据

本文来自ESRI官方资源,为刚入门使用ArcMap软件的同学提供帮助。 练习数据和完整文档可在百度网盘中下载: 共享地址:https://pan.baidu.com/s/1GMr0O4rNwOc61MY21zbDVA 共享目录:ArcGIS基础培训上机操作步骤   内容一、删除数据 打开ArcCatalog,在目录树中连接到存放练习数据的本地磁...

linux开机自启动

linux下添加简单的开机自启动脚本 在linux的使用过程中,我们经常会碰到需要将某个自定义的应用程序设置为开机自启动以节省操作时间,这里提供两个设置开机自启动的方法。 注:博主使用的ubuntu-16.04进行实验,其它版本可能有偏差,但实现原理类似。 rc.local 在rc.local脚本中添加开机自启动程序 ubuntu在开机过程之后,会执行/e...