自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

WELEN的专栏

http://www.cnblogs.com/welen

  • 博客(57)
  • 收藏
  • 关注

原创 深度学习语音降噪总结

  实时语音通信发展到今天,用户对通话语音质量提出了越来越高的要求。由于终端设备的多样性以及使用场景的差异,声音问题依然存在。传统的音频处理技术从声音信号本身出发,挖掘其时频特性,作出假设,建立物理模型,很多参数都需要人工进行精细化微调,比较费时费力。随着AI技术的发展,凭借着其强大的拟合能力,利用数据驱动,为改善音频体验提供了更多的可能性。 关于理论部分,包括论文有很多,每种想...

2019-03-14 14:32:03 15078 9

原创 语音识别的降噪思路和总结

噪声问题一直是语音识别的一个老大难的问题,在理想的实验室的环境下,识别效果已经非常好了,之前听很多音频算法工程师抱怨,在给识别做降噪时,经常发现WER不降反升,降低了识别率,有点莫名其妙,又无处下手。  刚好,前段时间调到了AIlab部门,有机会接触这块,改善语音识别的噪声问题,虽然在此之前,询问过同行业的朋友,单通道近场下,基本没有太大作用,有时反而起到反作用,但是自己还是想亲身实践一下,至...

2019-03-13 16:31:16 13032 8

原创 一个新型的混音算法

针对传统经典的线性混音,路数多时音量变小的缺点;自创了一个新的混音算法,解决该问题,声音不会忽大忽小,而且该方法还能一定程度抑制噪声,突出人声,能实时计算量小,专利已经受理。对于混音方法,网上和文献上流传许多方法。1.平均权重2.随幅值变化的权重3.利用衰减因子缓慢规整4.绝对值处理5.A+B-A*B(书写不是很精确)经过实验,方法做了比较了:方

2017-08-10 17:12:54 2494 1

原创 各种自适应滤波器总结

时域:----------------------------------------------------------------------------------------------------------------------LMS滤波器参数更新公式: 权重更新收到输入信号的能量影响较大,输入信号能量越大,步长取值应该较小,保证不容易

2017-06-10 10:30:27 25008 2

原创 啸叫抑制

在实际当中,回授音有很多种。我们最常听到的“啸叫”也是一种。但我们要寻找的是那种可以控制音量,时间,音高,甚至音色的回授。“啸叫”是不可控制的。从不可控制的啸叫到可控制的回授,这是一个漫长的历程。常见生活中的例子:拿着话筒K歌或者讲话时,离音箱太近会产生刺耳的声音,这就是啸叫。产生原因简单来说,啸叫产生的条件需满足以下三点:1)话筒与音箱同时使用。2)音响系

2017-05-03 13:49:45 8877 2

原创 DTW算法理解

dtw路径与线性变换路径对比 在孤立词语音识别中,最为简单有效的方法是采用DTW(Dynamic Time Warping,动态时间归整)算法,该算法基于动态规划(DP)的思想,解决了发音长短不一的模板匹配问题,是语音识别中出现较早、较为经典的一种算法,用于孤立词识别。参考模板,可表示为R={R(1),R(2),……,R(m),……,R(M)},m为训练语音帧的时序

2017-02-20 23:20:19 7876

原创 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 =

2017-02-20 23:18:58 12387 1

原创 递归与非递归二叉树遍历

前段时间意外收到MS的电面,因为现在做的工作基本上是与音频、音乐信号处理相关,外带互联网全能打杂型。本质上跟计算机纯软件不是太相关。我最后选择了自己比较感兴趣的IMML组面试了一下。      面试基本上就是英语口语面试和二叉树相关的内容。所以想进微软的同学,这两项基本功要打好基础了。     笔试的第一题是用非递归的方法遍历二叉树,这个再学校的时候也没有复习到,只用过递归的方法,

2015-11-26 17:26:02 823 1

原创 自动音量控制

音量较小时,自适应放大。  agc处理后: 音量较大时,自适应放小。agc处理后:

2015-11-25 23:42:15 3269 1

原创 基于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

2015-11-25 23:26:09 2889

原创 基于分类的Vad效果

提取出频谱特征,然后使用gmm、svm、dnn模型进行训练和分类,实时话语检测。原始文件 VAD处理,剔除静音后的效果:

2015-11-25 23:18:42 2258 2

原创 Dynamic range compression

这段时间终于把手头的东西都搞完了,还剩下一个AEC这个模块,这个模块跟整个系统机制有很大关系,单独的模块意义不大。另外,刚写完一个分类器,希望能大幅提升音乐流派分类的准确率。下周正式开搞AEC,把之前做的一些事情记录一下。 https://en.wikipedia.org/wiki/Dynamic_range_compressionDownward

2015-11-25 23:09:26 2148 1

原创 soundtouch变速wsola算法之改进

soundtouch变速算法很类似sola算法,细看才知道是wsola算法。上个星期有个需求,将该变速应用到直播的包处理,有点类似于webrtc的netEQ处理机制。直接使用soundtouch,会存在一些问题:1.一段正常,一段变速,中间会出现不连续,有冲击。或者不同速率的切换。   越频繁,现象更明显,。2.soundtouch每次处理,会有残余,如果用flush,音质会受

2015-10-13 15:36:27 3112 2

原创 MFCC特征提取(C语言版本)

音频分析中,MFCC参数是经典参数之一。之前对于它的计算流程和原理,大体上是比较清楚的,所以仿真的时候,都是直接调用matlab的voicebox工具或者开发的时候直接调用第三方库。最近想整理一个纯C语言版本的MFCC函数,发现第三方开源的一部分是C++的,有些纯C的开源代码是针对语音固定了某些参数,不太灵活。干脆自己动手写一下,发现matlab写习惯了,都弱化了写C的思维,磕磕碰碰弄了2天,初版

2015-05-28 19:39:06 16459 22

原创 音频指纹仿真(Philips)

参考《A Highly Robust Audio Fingerprinting System》Philips 音频指纹提取流程: 步骤一:resample到5kHz,down-mix到mono。步骤二:分帧处理,帧长和帧移见文献。步骤三:(1)加hanning窗,FFT变换,得到每帧的幅度谱(2)将频率预300~2000Hz,划分33个子带,类似bark域

2015-05-06 13:50:23 2642

原创 可变速率的语音变调效果

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

2015-04-26 09:00:10 2000

原创 低音增强

1.衰减高频部分,有利于突出低音部分。2.根据人理心理学响应,即便基频丢失,增强频谱的主要谐波,衰减弱信号,增加对比度,实现低音增强。试听:http://pan.baidu.com/s/1Haqse低音增强

2015-04-25 20:56:34 3283 3

原创 低质量音频伪装高质量音频的检测方法

这里有篇论文《基于子带谱平滑度的音频篡改检测》,可供参考。这里的质量主要涉及到采样率,即低采样率伪装高采样率音频。大部分假无损就是上采样为高质量的音频,然后用无损格式封装。11025Hz 伪装重采样 22050Hz音频,重采样不会补充有用信息,即11025/2 ~ 22050/2仍然平坦。22050Hz原始音频,一般情况下是自然逐步衰减(这取决与音频的内容,

2015-04-25 20:26:25 2257

原创 离线版-端点检测代码重写

根据对双门限的理解和修改,重写了一个离线版端点检测。   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);%计算短时

2015-04-17 21:01:33 1752 1

原创 检测带人声的音乐

部分文献的结果:印度古典乐的几种简单乐器的演奏,谱减法消去部分背景音初步处理,区分结果:前提已知-音乐的曲调,消去部分背景音,实验结果:自己实验的结果:1120首10折交叉验证的准确率是87.2%5000首10折交叉验证的准确率是86.40%  耗时 15个小时截取中间3分钟5000首10折交叉验证的准确率是86.33%  耗时

2015-02-28 16:44:12 3153

原创 音乐和人声自动判别小结

如下表1和表2所示,人声测试集包含:电视节目、讲故事、评书、说相声、有声电台等;音乐测试集包含:华语舞曲、R&B、西方民谣、华语摇滚、rap、1614混合曲集等。    表1测试集中,人声的平均识别率在89.31%,音乐的平均识别率在95.95%。相声和故事的结果较差,原因在于测试集中包含的相声现场录制环境较差,环境吵闹,频谱混乱;而讲故事有比较明显的音乐背景伴奏。     表

2015-02-28 16:30:03 4781 6

原创 流派曲风自动分类初步小结

未来还有进一步提升的空间,测试结果只能说明部分问题。1.原始版本Correctly Classified Instances          762              76.2%Incorrectly Classified Instances       238               23.8%  a  b  c  d  e  f  g  h 

2015-02-28 16:22:51 1158 1

原创 梳状滤波器滤除谐波

假设原始信号采样率为4000kHz,由200Hz为基波的一组幅度为1的谐波构成,此处由正弦函数模拟。由此得到200Hz,400Hz,600Hz...2000Hz,但是此处2000Hz的幅度几乎为0,后面详细说明。 200Hz幅度为1的时域波形。 FFT变换之换,对应频率的幅度依然为1,频率依然在200Hz,镜像频率对称,在频率(4000-2000)Hz直接忽略(奈奎斯特定律

2015-01-20 15:21:12 10676 3

原创 MFCC可视化

大多数文章和博客介绍都是MFCC的算法流程,物理意义,这里仅仅从数据分布可视化的角度,清晰观察MFCC特征在空间中的分布情况,加深理解。MFCC处理流程:MFCC参数的提取包括以下几个步骤:(选自百度百科)                 1.预滤波:CODEC前端带宽为300-3400Hz的抗混叠滤波器。 2.A/D变换:8kHz的采样频率,12bit的线性量化精度。 

2014-11-14 11:18:10 3240 2

原创 人声音乐声检测的小例子

人声音乐声检测的小例子

2014-10-13 11:29:01 2765 7

原创 音乐节拍提取(二)

音乐节拍点位置预测:

2014-10-10 14:35:54 8382 12

原创 音乐节拍提取(一)

前段时间倒腾了一下音乐节拍数检测,参考下面的歌曲列表做了下对比,效果还不错,基本上都是准的。Itunes LinkNameTimeArtistBPMAlbumGenreAmazon LinkLoneliest Soul03:35Grace Potter and the Noc

2014-09-24 15:17:09 17965 18

原创 多重背包

//多重背包void WKnapsack4(int *value, int* v, int *Num, int n, int V){ int d[100][100]; memset(d, 0, sizeof(int)* 100*100); bool visit[100][100]; memset(visit, 0, sizeof(bool)* 100 * 100); int

2014-08-31 14:37:59 806

原创 01背包

//01背包void WKnapsack3(int *value, int* v, int n, int V){ int d[100]; memset(d, 0, sizeof(int)* 100); bool visit[100][100]; memset(visit, 0, sizeof(bool)* 100 * 100); for (int i = 0; i <

2014-08-31 14:36:34 677

原创 完全背包问题

完全背包问题 解决方法  跟初级硬币问题递推法 很相似,只需将1改成 对应的数值。value 背包价值,  v体积,   n种背包, 体积不超过V,最大价值。void WKnapsack(int *value, int* v, int n, int V){ int d[1000]; memset(d, 0, sizeof(int)*1000); for(int i =

2014-08-29 18:48:07 581

原创 硬币问题

不同的面值Value[ ]有硬币个数Num[ ]限制,凑齐Goal面值,需要的最小和最大个数。static int Min = 1<<10;static int Max = 0;static int* set;static int* Count;void LeastCoin_N(int* Value, int* Num, int Len, int Goal, int cur)

2014-08-29 11:56:46 725

原创 初级硬币最大最小问题递推法

static int* Min;static int* Max;void LeastCoin2(int* Value, int Len, int *d, int Goal) { for(int i = 1; i <= Goal; i++) { for(int j = 0; j < Len; j++) { if(i >= Value[j])

2014-08-28 14:55:13 824

原创 初级硬币问题

已知,有一批不同面值的硬币,没有硬币个数限制,求得到S的所有组合,以及最小,最大硬币个数。最小、最大硬币个数可以用贪心法,但是不一定能够得到有效解,但是可以提高结题速度,此处略。下面的解法比求解最大、最小硬币比较耗时。static int* set;static int Min = 1<<10;static int Max = 0;void LeastCoin(int*

2014-08-28 11:01:49 862

原创 变速变调原理与方法总结

调和变速原理自然语音的产生可以简化为图2-1模型,激励源出来的声门波信号与声道模型进行卷积,最后通过嘴唇辐射模型产生语音。其中,激励源决定说话人的基频的大小,即音调的高低。声道模型反映“润色”的频谱信息,具体的讲,共振峰决定了语义信息,谐波分布决定了音色,单位时间的音节数决定了语速。 图2-1 语音产生模型下面将根据语音产生模型来阐述变速变调的基本原理。变速

2014-08-27 20:48:26 7520

原创 KTV评分系统实现总结

KTV唱歌评分系统也不是什么新产品了,但是要把它做好,也不是很容易的事情。比较有名的浙江卫视的评分软件、手机软件“唱吧”、网页端在线“爱吼网”、酷我提供了K歌,但还没有评分功能。      刚开始接手项目时,初步制定三个月完成一个demo。两个月过去了,一切还比较顺利,KTV评分算法和整个框架总算是初步完成了。自己将这个项目分为五个阶段,类似的,开发其它产品基本上也

2014-08-26 17:43:08 13466 19

原创 8皇后问题

typedef struct Spoint{ int x; int y; Spoint() { x = -1; y = -1; }};static Spoint point[8];int Queen8(int n, int cur){ static int iCount = 0; if(cur == n) { iCount++; for(

2014-08-26 17:31:27 524

原创 初级8皇后问题

初级8皇后问题,不是真正的8皇后问题,是该问题的初级条件限制:产生不同行,不同列的组合。typedef struct Spoint{ int x; int y; Spoint() { x = -1; y = -1; }};static Spoint point[8];int Queen8(int n, int cur){ static int iCount

2014-08-26 17:29:27 691

原创 某个集合的子集问题

int WToSigArray(int* A, int n)//消除重复元素{ int i,j,k; for( i = k = 1; i < n; i++) { for( j = 0; j < k; j++) { if(A[j] == A[i]) { break; } } if(j == k) { A[k] = A[i];

2014-08-26 17:24:34 690

原创 n全排列输出和 n个数的组合(数字范围a~b)

n全排列输出:int WPermutation(int num, bool bRepeat)num表示num全排列bRepeat标志是否产生重复元素的序列。int Permutation(int n, int* A, int cur, bool bRepeat) { static int number = 0; if(cur == n) { number++;

2014-08-26 17:06:25 2033

原创 自由操控声音-相位声码器-变调篇(一)

相位声码器可以直接完成变速不变调的功能,要完成变调不变速功能,可以直接和重采样结合起来。重采样放在变速之前和之后,对效果都没有什么影响。特别推荐:                   当做升调时,先做重采样,再做变速。                   当做降调时,先做变速,再做重采样。这样处理,可以减小运算处理时间。               

2014-08-13 09:44:35 2800

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除