来谈下最近去面试,Gabor有夏天适合去面试的鞋子吗?

在一个技术群中,聊到语音特征话题,看到一位大佬说:如果我来面试,会让求职者先讲十分钟的语音特征。看到这句话后,我一愣,如果让我讲十分钟的语音特征,我只会想到,MFCC,Bark谱,短时过零率,基频,共振峰,能量,其它也一下想不起来了。觉得自己作为一个信号出身,做语音的人,应该懂很多才行,结果也不是很在行。为此,在本文记录语音特征。


MFCC,即梅尔倒谱系数(Mel-scaleFrequency Cepstral Coefficients)。是一种非线性映射,根据人耳对不同频率的声波有不同的听觉敏感度进行映射的。

原理:根据人耳听觉机理的研究发现,人耳对不同频率的声波有不同的听觉敏感度。从200HZ到5000HZ对语音的清晰度影响最大。两个响度不等的声音作用于人耳时,则响度较高的频率成分的存在会影响到对响度较低的频率成分的成分,使其变得不易察觉,这种现象称为掩蔽效应。由于频率较低的声音在内耳蜗基底膜上行波传递的距离大于频率较高的声音,故一般来说,低音容易掩蔽高音,而高音掩蔽低音较困难。在低频处的声音掩蔽临界带宽较高频要小。所以从低频到高频这一频带内按临界带宽的大小由密到疏安排一组带通滤波器,对输入信号进行滤波。

梅尔倒谱系数是在Mel标度频率域上提取出来的参数。

用途:可以看到,MFCC是根据掩蔽效应原理,在Mel标度上提取出来的参数,为了符合人耳听觉机理的。所以其常用于ASR上,语音识别中。当然,其它一些处理也会考虑到直接用线性谱运算量太大,然后采用MFCC。

Bark谱与MFCC,Mel谱非常相似,都是将线性谱映射到非线性谱上的表征,而且都是低频带宽低,高频带宽高。但还是略有区别的:

上世纪,研究者发现人耳结构对24个频点产生共振,根据这一理论,在1961年针对人耳特殊结构提出:信号在频带上也呈现出24个临界频带,分别从1到24。这就是Bark域。

其实Mel谱和Bark谱两者的核心都是在掩蔽效应,人耳对不同频带听感不同。然后划分出的非线性表示。

用途:比较多的看到,Bark谱用于基频,降噪,编解码,特殊声音检测等领域。

CQT即恒Q变换,它是用一组恒Q滤波器对时域语音信号进行滤波,因为,滤波器是恒Q的,即中心频率与带宽比相同,则在低频时,带宽窄,高频时带宽高,从而得到非线性频域信号。

与MFCC,Bark谱非常相似,也是一种将线性谱转换到非线性谱的处理。

CQT更加符合乐理,在音乐中,所有的音都是由若干八度的12平均律共同组成的,12个半音等于一个八度,一个八度的跨度等于频率翻倍,所以一个半音等于 倍频。因此,音乐中的音调呈指数型跨度的,而CQT就很好的模拟了这种非线性度,以 为底的非线性频谱。

用途:常用于音乐方向。但因深度学习的兴起,很多方向也会用这种特征。

能量特征,通常指时域上每帧的能量,幅度的平方。

很早很早以前有直接用能量特征的,大概上个世纪5-60年代吧。比如vad(voice active detection)中有一种检测语音方法:能量大的是语音,能量小的是噪声。当然,这种vad局限性非常大,用途很窄。

用途:时域能量,直接用的比较少。

短时过零率特征,核心点是计算信号跨越零点的次数。当然后面有延伸的,短时平均过零率,

这种特征也是非常早期用的,比如用于判别语音和噪声,判别清音和浊音等等。但与能量特征相似,局限性非常大,用途很窄。

基频对应着声带振动的频率,代表声音的音高,声带振动越快,基频越高。

一般来说,成年男性基频在100-250左右,成年女性基频在150-350左右。上述范围还未有共识,都是大致区间。

基频检测方法主要有三类:1、时域:基于过零率,自相关等,最好的是YIN/PYIN算法。2、频域:倒谱,谐波,最佳梳妆滤波器等。3、统计方法:最大似然,rnn,HMM等都有。

最近(17年,20年)有一个用kalam滤波器实时估计基频的,抗噪能力强,也比较精准,复杂度也不是很高。

用途:基频有非常多的用途,可以用于检测语音噪声,特殊声音检测,男女判别,说话人识别,参数自适应等等。

王赟大佬写过一篇基频检测的博客,非常棒。感兴趣的可以看看

但是,轻量级,实时且抗噪能力强的基频检测算法还是比较少。

谐波是基频对应的整数次频率成分,由声带发声带动空气共振形成的。对应着声音三要素的音色。

谐波的位置,相邻的距离共同形成了音色特征。谐波之间距离近听起来则偏厚粗,之间距离远听起来偏清澈。在男声变女声的时候,除了基频的移动,还需要调整谐波间的包络,距离等。否则将会丢失音色信息。

提取:有倒谱,LPC等。

Gabor filterbank常用于cv中,是模仿视觉系统的生物过程:模拟人类细胞的视觉大脑皮质的空域和属性特征。Gabor filterbank有一维和二维,常用二维Gabor filterbank处理语谱图(对一维时域语音做stft得到二维时频图)。

常用于语音声音检测,语音场景分类。


暂时先写这么多,有些特征没用过也不大熟悉,就没写(LPC等)。等之后用的特征多了,体会多了,再来补充。

(这些特征够我和面试官聊十几分钟了hhhhh)


  1. New和Delete自动调用构造函数和析构函数

  • <u>封装</u>:将数据和算法捆绑成一个整体,这个整体就是对象,描述对象的数据被封装在其内部。
  • <u>继承</u>:指一种事物保留了另一种事物的全部特征,并且具有自身的独有特征。
  • <u>多态</u>:当多种事物继承自一种事物时,同一种操作在它们之间表现出不同的行为。

  • 对象:一个实际概念(实物)
  • 类:一个抽象概念(类型或属性)
  • 类的实例化生成对象,对象的抽象化生成类
  • 一个对象可以包含多个类,一个类只能对应一个实例对象

  1. 动态空间申请使用New和不使用
  • 创建需要指针接收,一处初始化,多处使用

    创建在<u>堆空间</u>,使用广泛可作为参数和返回值

    频繁调用不适合New,一边作为全局变量使用


  • 在函数内被定义之后数值保持不变
  • 模块内函数外,表示本地全局
  • 修饰函数,智能在本地调用,并且使用extern也不能跨文件调用
  • 类内定义static,只能在类外初始化,不能在类内初始化
  • 不能使用this调用,因为属于当前文件而不是属于当前类

设置一个Thred,设本次采样值为V1,上一次采样为V

差值大于阈值就等于上一次采样,否则等于自身

取上下左右拐角点+当前值得到中值V1

取上下左右+中间值得到中值V2

核心是使用正太分布,利用估计的正太分布和确定的正态分布去计算当前的正太分布

值域核函数+空间域核函数

3.编写高通滤波器和直方图均衡化?

4.自己论文或者项目使用的算法细节

就是sin()函数和傅里叶函数的乘积
带宽:高斯方差:2pi

四个特征:能量、熵、逆方差、相关性
特征可视化:使用5X5,步长为1的掩膜,计算5X5的特征

类型:亮点、暗点与色点三类
特点:比周围点亮很多的坏点 、比周围点暗很多的坏点、没有提供一个正确的像素值,但是并没有比周围点特别亮或者特别暗的像素
坏点和噪点的区别:噪点不确定性,坏点是固定的,颜色不确定
检测坏点:avg=sum(*),dif=(次max点 - 次min点),范围avg±dif,出了这个范围即定义为坏点
连续多帧判断,如果50%以上都出现这样的情况,就判断为坏点,否则为噪点,使用中值滤波去除。

  • 运动估计,找出最优运动向量

主要思想是这样的:在第一帧图像中选择一块特征明显的纹理Patch,然后在随后的每一帧图像中找到与该纹理Patch最相似的Patch,然后将找到的Patch“钉”到第一帧Patch的所在位置上。

  • 运动补偿,根据运动向量补偿当前帧,去除抖动。

利用陀螺仪找到核函数,然后进行透视变换

  • 其中opencv进行了代码优化

  • 权值计算方法使用三次多项式4X4个点

16.常用边缘检测算子

1.设计一个OCR引擎

  • PCA降维度、白化(维度归一化):
  • 假彩色:不同波段的色彩表示(YUV)
  • 伪彩色:灰度到RGB的映射
  • 设定一个阈值T,分割背景A和目标B
  • 使用八领域进行判断标准
  • (a)在高斯模糊的时候可以采用分离高斯卷积,这样可以更好的保留边缘细节。

构建高斯金字塔(图像大小不会变化,相同层核系数不同,不同层核大小不同)
特征点检测(二阶高斯使用盒滤波器代替计算Hessian矩阵)
特征描述子(利用Harr小波特征计算描述子,利用积分图计算Harr小波,4X4X4)
特征点匹配(不仅计算欧氏距离,还增加了一个Hessian矩阵的迹,如果方向相反则一定不匹配)

使用一阶泰勒公式展开,然后计算矩阵的特征值

利用相机标定取纠正图像

在一个技术群中,聊到语音特征话题,看到一位大佬说:如果我来面试,会让求职者先讲十分钟的语音特征。看到这句话后,我一愣,如果让我讲十分钟的语音特征,我只会想到,MFCC,Bark谱,短时过零率,基频,共振峰,能量,其它也一下想不起来了。觉得自己作为一个信号出身,做语音的人,应该懂很多才行,结果也不是很在行。为此,在本文记录语音特征。


MFCC,即梅尔倒谱系数(Mel-scaleFrequency Cepstral Coefficients)。是一种非线性映射,根据人耳对不同频率的声波有不同的听觉敏感度进行映射的。

原理:根据人耳听觉机理的研究发现,人耳对不同频率的声波有不同的听觉敏感度。从200HZ到5000HZ对语音的清晰度影响最大。两个响度不等的声音作用于人耳时,则响度较高的频率成分的存在会影响到对响度较低的频率成分的成分,使其变得不易察觉,这种现象称为 掩蔽效应。由于频率较低的声音在内耳蜗基底膜上行波传递的距离大于频率较高的声音,故一般来说,低音容易掩蔽高音,而高音掩蔽低音较困难。在低频处的声音掩蔽临界带宽较高频要小。所以从低频到高频这一频带内按临界带宽的大小由密到疏安排一组带通滤波器,对输入信号进行滤波。

梅尔倒谱系数是在Mel标度频率域上提取出来的参数。

用途:可以看到,MFCC是根据掩蔽效应原理,在Mel标度上提取出来的参数,为了符合人耳听觉机理的。所以其常用于ASR上,语音识别中。当然,其它一些处理也会考虑到直接用线性谱运算量太大,然后采用MFCC。

Bark谱与MFCC,Mel谱非常相似,都是将线性谱映射到非线性谱上的表征,而且都是低频带宽低,高频带宽高。但还是略有区别的:

上世纪,研究者发现人耳结构对24个频点产生共振,根据这一理论,Eberhard Zwicker在1961年针对人耳特殊结构提出:信号在频带上也呈现出24个临界频带,分别从1到24。这就是Bark域。

其实Mel谱和Bark谱两者的核心都是在掩蔽效应,人耳对不同频带听感不同。然后划分出的非线性表示。

用途:比较多的看到,Bark谱用于基频,降噪,编解码,特殊声音检测等领域。

具体特征提取过程:Bark域介绍和线性频率域转换到Bark域_音频算法研究与学习-CSDN博客

CQT即恒Q变换,它是用一组恒Q滤波器对时域语音信号进行滤波,因为,滤波器是恒Q的,即中心频率与带宽比相同,则在低频时,带宽窄,高频时带宽高,从而得到非线性频域信号。

与MFCC,Bark谱非常相似,也是一种将线性谱转换到非线性谱的处理。

CQT更加符合乐理,在音乐中,所有的音都是由若干八度的12平均律共同组成的,12个半音等于一个八度,一个八度的跨度等于频率翻倍,所以一个半音等于

倍频。因此,音乐中的音调呈指数型跨度的,而CQT就很好的模拟了这种非线性度,以

用途:常用于音乐方向。但因深度学习的兴起,很多方向也会用这种特征。

能量特征,通常指时域上每帧的能量,幅度的平方。

很早很早以前有直接用能量特征的,大概上个世纪5-60年代吧。比如vad(voice active detection)中有一种检测语音方法:能量大的是语音,能量小的是噪声。当然,这种vad局限性非常大,用途很窄。

用途:时域能量,直接用的比较少。

短时过零率特征,核心点是计算信号跨越零点的次数。当然后面有延伸的,短时平均过零率,

这种特征也是非常早期用的,比如用于判别语音和噪声,判别清音和浊音等等。但与能量特征相似,局限性非常大,用途很窄。

基频对应着声带振动的频率,代表声音的音高,声带振动越快,基频越高。

一般来说,成年男性基频在100-250左右,成年女性基频在150-350左右。上述范围还未有共识,都是大致区间。

基频检测方法主要有三类:1、时域:基于过零率,自相关等,最好的是YIN/PYIN算法。2、频域:倒谱,谐波,最佳梳妆滤波器等。3、统计方法:最大似然,rnn,HMM等都有。

最近(17年,20年)有一个用kalam滤波器实时估计基频的,抗噪能力强,也比较精准,复杂度也不是很高。

用途:基频有非常多的用途,可以用于检测语音噪声,特殊声音检测,男女判别,说话人识别,参数自适应等等。

王赟大佬写过一篇基频检测的博客,非常棒。感兴趣的可以看看

但是,轻量级,实时且抗噪能力强的基频检测算法还是比较少。

共振峰也称谐波,下称共振峰。

共振峰是基频对应的整数次频率成分,由声带发声带动空气共振形成的。对应着声音三要素的音色。

共振峰的包络,位置,相邻的距离共同形成了音色特征。共振峰之间距离近听起来则偏厚粗,之间距离远听起来偏清澈。在男声变女声的时候,除了基频的移动,还需要调整共振峰,包括包络,距离等。否则将会丢失音色信息。

提取:有倒谱,LPC等。

Gabor filterbank常用于cv中,是模仿视觉系统的生物过程:模拟人类细胞的视觉大脑皮质的空域和属性特征。Gabor filterbank有一维和二维,常用二维Gabor filterbank处理语谱图(对一维时域语音做stft得到二维时频图)。

常用于语音声音检测,语音场景分类。


暂时先写这么多,有些特征没用过也不大熟悉,就没写(LPC等)。等之后用的特征多了,体会多了,再来补充。

(这些特征够我和面试官聊十几分钟了hhhhh)

我要回帖

更多关于 公司没有谈薪资就让去上班 的文章

 

随机推荐