音视频
文章平均质量分 68
音视频工具站
打造专业音视频模块工厂,让音视频开发更简单!
展开
-
声学回声消除的基本原理
如上图所示,我们可以看到两个信号:一个是蓝色和红色混合的信号1 ne,也就是实际需要发送的speech和实际不需要的echo混合而成的语音流;另一个就是虚线的信号2 fe,也就是原始的引起回音的语音。那大家会说,哦,原来回声消除这么简单,直接从混合信号1里面把把这个虚线的2减掉不就行了?请注意,拿到的这个虚线信号2和回音echo是有差异的,直接相减会使语音面目全非。原创 2024-03-08 14:40:35 · 549 阅读 · 0 评论 -
音频编解码算法库 (可支持g711u,g711a,g729,g722,opus等)
一、常见的几种音频编码类型带宽对比: 编解码类型 压缩速率(Kbps) G.729 8 Kbps G.711 64 Kbps OPUS 6-510 Kbps G722 64 Kbps 二、自研的音频编解码算法库1、这个算法库是可以支持全平台的算法库,是我根据多年的音视频编解码经验自研整理原创 2022-04-06 11:23:57 · 5974 阅读 · 1 评论 -
音频原始数据能量检测算法
很多场合我们需要动态显示实时语音的音量分贝,以展示人的说话声音的大小,以便可以动态条件声音的大小,比较常见的几种音量分贝检测算法有如下几种, 下面做一下简单说明和比较1、计算音频能量数据和算法原理:算法比较简单,首先我们分别累加每个采样点的数值,除以采样个数,得到声音数据求平均能量值。然后再将其做0--32767之间的等比量化。得到1-100的量化值,返回结果。通过实际测试,通常情况下,人声一般都分布在较低的能量范围内,人说话的声音基本在0-35之间,很难达到5...原创 2022-03-25 13:36:54 · 4553 阅读 · 0 评论 -
高质量音频混音算法及应用
一、音频数据格式:处理16bit的PCM音频数据;二、音频混音算法的原理:混音的原理其实很简单,只要多路语音数据做线性叠加即可,但是叠加后的音频数据容易产生溢出,而且混合的路数越多,溢出的可能性越大,所以要做溢出处理,保证数据再32767~(-32768)之间,其实如何完美的处理混音叠加后溢出问题才是混音算法的关键;1、衰减因子:为了更好的解决溢出问题,可以使用一个衰减因子, 对音频数据进行逐渐衰减, 衰减因子会随着数据而变化. 当溢出时,...原创 2022-03-16 13:29:00 · 3768 阅读 · 0 评论 -
音量放大器--软件实现
在音频开发过程中,有的时候人耳会感觉听到的声音比较小,通常我们会调整系统音量,我们除了可以调整系统音量以外,还可以调整声卡采集音频的数字信号的能量,这样我们就可以针对数字信号进行二次放大,我们知道语音波形都是0101xxxx数字组成的,可以把这个波形统一扩大一个权值因子,以提高声音响度,这个过程需要注意:数字信号溢出的处理,否则会有明显的失真,但是单纯的软件方面的数字信号放大也是有一定的限度的,一般测试10倍的数字信号的放大就到上限值了,如果想要得到比较好的效果,还需要配合做数字信号的滤波,...原创 2022-03-15 10:35:28 · 898 阅读 · 0 评论 -
前向纠错算法--用于实时音视频通信RTP丢包恢复
前向纠错算法:是一种差错控制方式,它是指信号在被送入传输信道之前预先按一定的算法进行编码处理,加入带有信号本身特征的冗码数据,在接收端按照相应算法对接收到的信号进行解码,从而找出在传输过程中产生的错误码并将其纠正的技术。由于前向纠错能自动实现纠错,不要求检错重发,因而延时小、实时性好,在高速及超高速系统中得到应用。由于增加了一些额外的冗码,前向纠错技术要付出一定的带宽代价。下图是算法编码、解码的过程: 算法特点:每个数据包的大小必须...原创 2022-03-11 15:49:39 · 938 阅读 · 0 评论 -
一篇文章讲清楚什么是频率、频域、时域
一 频率:在1s内完成周期性变化的次数叫做频率,常用f表示。简单的说是一个周期内能够重复的次数,无论是正玄波也好,还是点阵也好,最基本的要求是在一个周期内必须要具备可重复的能力,否则就没办法计算频率,勉强计算的话频率为1Hz;总体来说,频率越高,波形也就越密集,数据也就越详细。为了纪念德国物理学家赫兹的贡献,人们把频率的单位命名为赫兹,简称“赫”,符号为HZ。Hz 是频率的单位。1Hz代表每秒钟周期震动1次 ,100Hz即100次/秒。再者说音频采样率8000Hz,其...原创 2022-03-08 10:19:30 · 13585 阅读 · 0 评论 -
音频静音检测算法
Voice Activity Detector, 即语音动态检测;在实时通话过程中,静音检测算法在某些场景下还是可以起到关键性的作用:1、节省带宽:用来做语音流检测是否有声音,来决定是否发生音频数据,当检测到用户没有讲话即静音状态时,发送端可以不发送语音报文,只发送静音指示报文,从而降低语音报文占用的带宽。如下所示,正常的语音包负载占据160字节;而静音帧只有几个字节,如下所示:这种情况把VAD阈值设置的要低一些,否则会影响音频的质量,如果阈值过高的话,会有影响说话的...原创 2022-03-03 17:22:46 · 3498 阅读 · 0 评论 -
音频回声消除算法
一、回声消除原理 回音消除一直是语音通信的难点,从通讯回音产生的原因看,可以分为声学回音(Acoustic Echo)和线路回音(Line Echo),相应的回声消除技术就叫声学回声消除(Acoustic Echo Cancellation,AEC)和线路回声消除(Line Echo Cancellation, LEC), 声学回音是由于在免提或者会议应用中,扬声器的声音多次反馈到麦克风引起的(比较好理解);线路回音是由于物理电子线路的二四线匹配耦合引起的(比较难理解),我们本讲只讨论声学...原创 2022-03-02 18:06:05 · 8806 阅读 · 0 评论 -
音频自动增益算法
语音自动增益(AGC)算法,指的是数字层面的,语音波形都是0101数字组成,指的是把这个波形统一扩大或压缩一个权值,以提高或降低声音响度最简单的硬性增益处理是对所有音频采样乘上一个增益因子,它也等同于在频域每个频率都同时乘上这个增益因子,但由于人的听觉对所有频率的感知不是线性的,是遵循等响度曲线的,导致这样处理后,听起来感觉有的频率加强了,有的频率削弱了,导致语言失真的放大。简单说下音量和增益的区别:1、音量是数字波形转模拟波形之后,对喇叭的功率的提高或降低,...原创 2022-02-28 18:05:15 · 8710 阅读 · 2 评论 -
音频单通道转双通道算法
其实原理比较简单,假设pcm音频数据a1 a2 a3 是单声道的。那么要转为双声道的音频数据,首先新建一个buf,存成a1a1a2a2a3a3即可,附一段简单的代码,基本可以说明算法思想,供大家参考学习;实例://MonoTostereoint j = 0;unsigned char *pNewData = (unsigned char*)malloc(iDataLen*2);memset(pNewData, 0, iDataLen*2);for (int i = 0; i...原创 2022-02-25 16:00:15 · 2902 阅读 · 0 评论 -
音频噪音消除算法
音频降噪算法在音频通话处理中是必不可少的,网上公开的算法不是很多,资源也比较有限,绝大多数效果都不是很理想,都无法达到产品级的效果,近期在研究webrtc代码,把WebRTC的噪声抑制模块提取出来,也做了一些细节优化,目前可以支持8k、16k采样率的pcm数据,实际测试效果还是挺不错的,可以看下测试对比图片:上面一行是未处理的原始音频数据,下面一行是噪音处理后的音频数据,处理的相对还是比较干净的。目前这个算法可以应用到多种平台,像windows、linux、android、ios...原创 2022-02-25 14:59:00 · 3433 阅读 · 0 评论