深度学习语音降噪总结 实时语音通信发展到今天,用户对通话语音质量提出了越来越高的要求。由于终端设备的多样性以及使用场景的差异,声音问题依然存在。传统的音频处理技术从声音信号本身出发,挖掘其时频特性,作出假设,建立物理模型,很多参数都需要人工进行精细化微调,比较费时费力。随着AI技术的发展,凭借着其强大的拟合能力,利用数据驱动,为改善音频体验提供了更多的可能性。 关于理论部分,包括论文有很多,每种想...
语音识别的降噪思路和总结 噪声问题一直是语音识别的一个老大难的问题,在理想的实验室的环境下,识别效果已经非常好了,之前听很多音频算法工程师抱怨,在给识别做降噪时,经常发现WER不降反升,降低了识别率,有点莫名其妙,又无处下手。 刚好,前段时间调到了AIlab部门,有机会接触这块,改善语音识别的噪声问题,虽然在此之前,询问过同行业的朋友,单通道近场下,基本没有太大作用,有时反而起到反作用,但是自己还是想亲身实践一下,至...
一个新型的混音算法 针对传统经典的线性混音,路数多时音量变小的缺点;自创了一个新的混音算法,解决该问题,声音不会忽大忽小,而且该方法还能一定程度抑制噪声,突出人声,能实时计算量小,专利已经受理。对于混音方法,网上和文献上流传许多方法。1.平均权重2.随幅值变化的权重3.利用衰减因子缓慢规整4.绝对值处理5.A+B-A*B(书写不是很精确)经过实验,方法做了比较了:方
各种自适应滤波器总结 时域:----------------------------------------------------------------------------------------------------------------------LMS滤波器参数更新公式: 权重更新收到输入信号的能量影响较大,输入信号能量越大,步长取值应该较小,保证不容易
啸叫抑制 在实际当中,回授音有很多种。我们最常听到的“啸叫”也是一种。但我们要寻找的是那种可以控制音量,时间,音高,甚至音色的回授。“啸叫”是不可控制的。从不可控制的啸叫到可控制的回授,这是一个漫长的历程。常见生活中的例子:拿着话筒K歌或者讲话时,离音箱太近会产生刺耳的声音,这就是啸叫。产生原因简单来说,啸叫产生的条件需满足以下三点:1)话筒与音箱同时使用。2)音响系
DTW算法理解 dtw路径与线性变换路径对比 在孤立词语音识别中,最为简单有效的方法是采用DTW(Dynamic Time Warping,动态时间归整)算法,该算法基于动态规划(DP)的思想,解决了发音长短不一的模板匹配问题,是语音识别中出现较早、较为经典的一种算法,用于孤立词识别。参考模板,可表示为R={R(1),R(2),……,R(m),……,R(M)},m为训练语音帧的时序
SVM matlab 代码详解说明 x=[0 1 0 1 2 -1];y=[0 0 1 1 2 -1];z=[-1 1 1 -1 1 1];%其中,(x,y)代表二维的数据点,z 表示相应点的类型属性。data=[1,0;0,1;2,2;-1,-1;0,0;1,1];% (x,y)构成的数据点groups=[1;1;1;1;-1;-1];%各个数据点的标签figure;subplot(2,2,1);Struct1 =
递归与非递归二叉树遍历 前段时间意外收到MS的电面,因为现在做的工作基本上是与音频、音乐信号处理相关,外带互联网全能打杂型。本质上跟计算机纯软件不是太相关。我最后选择了自己比较感兴趣的IMML组面试了一下。 面试基本上就是英语口语面试和二叉树相关的内容。所以想进微软的同学,这两项基本功要打好基础了。 笔试的第一题是用非递归的方法遍历二叉树,这个再学校的时候也没有复习到,只用过递归的方法,
基于winner 滤波平稳降噪效果 https://en.wikipedia.org/wiki/Wiener_filterWiener filter solutionsThe Wiener filter problem has solutions for three possible cases: one where a noncausal filter is acceptable (requiring an inf
Dynamic range compression 这段时间终于把手头的东西都搞完了,还剩下一个AEC这个模块,这个模块跟整个系统机制有很大关系,单独的模块意义不大。另外,刚写完一个分类器,希望能大幅提升音乐流派分类的准确率。下周正式开搞AEC,把之前做的一些事情记录一下。 https://en.wikipedia.org/wiki/Dynamic_range_compressionDownward
soundtouch变速wsola算法之改进 soundtouch变速算法很类似sola算法,细看才知道是wsola算法。上个星期有个需求,将该变速应用到直播的包处理,有点类似于webrtc的netEQ处理机制。直接使用soundtouch,会存在一些问题:1.一段正常,一段变速,中间会出现不连续,有冲击。或者不同速率的切换。 越频繁,现象更明显,。2.soundtouch每次处理,会有残余,如果用flush,音质会受
MFCC特征提取(C语言版本) 音频分析中,MFCC参数是经典参数之一。之前对于它的计算流程和原理,大体上是比较清楚的,所以仿真的时候,都是直接调用matlab的voicebox工具或者开发的时候直接调用第三方库。最近想整理一个纯C语言版本的MFCC函数,发现第三方开源的一部分是C++的,有些纯C的开源代码是针对语音固定了某些参数,不太灵活。干脆自己动手写一下,发现matlab写习惯了,都弱化了写C的思维,磕磕碰碰弄了2天,初版
音频指纹仿真(Philips) 参考《A Highly Robust Audio Fingerprinting System》Philips 音频指纹提取流程: 步骤一:resample到5kHz,down-mix到mono。步骤二:分帧处理,帧长和帧移见文献。步骤三:(1)加hanning窗,FFT变换,得到每帧的幅度谱(2)将频率预300~2000Hz,划分33个子带,类似bark域
可变速率的语音变调效果 Time stretching is the process of changing the speed or duration of an audio signal without affecting its pitch. Pitch scaling or pitch shifting is the opposite: the process of changing the pitch
低音增强 1.衰减高频部分,有利于突出低音部分。2.根据人理心理学响应,即便基频丢失,增强频谱的主要谐波,衰减弱信号,增加对比度,实现低音增强。试听:http://pan.baidu.com/s/1Haqse低音增强
低质量音频伪装高质量音频的检测方法 这里有篇论文《基于子带谱平滑度的音频篡改检测》,可供参考。这里的质量主要涉及到采样率,即低采样率伪装高采样率音频。大部分假无损就是上采样为高质量的音频,然后用无损格式封装。11025Hz 伪装重采样 22050Hz音频,重采样不会补充有用信息,即11025/2 ~ 22050/2仍然平坦。22050Hz原始音频,一般情况下是自然逐步衰减(这取决与音频的内容,
离线版-端点检测代码重写 根据对双门限的理解和修改,重写了一个离线版端点检测。 function [st,en]=VAD(x, fs)x=double(x);x=x/max(abs(x));framelen= floor(fs*40/1000);%frameinc= floor(fs*10/1000);%y=enframe(x,framelen,frameinc);%计算短时
检测带人声的音乐 部分文献的结果:印度古典乐的几种简单乐器的演奏,谱减法消去部分背景音初步处理,区分结果:前提已知-音乐的曲调,消去部分背景音,实验结果:自己实验的结果:1120首10折交叉验证的准确率是87.2%5000首10折交叉验证的准确率是86.40% 耗时 15个小时截取中间3分钟5000首10折交叉验证的准确率是86.33% 耗时