MFCC

MFCC特征原理
声纹不像图像那样的直观,在实际的分析中,可以通过波形图和语谱图进行绘制展现

import wave
import numpy as np
import matplotlib.pyplot as plt

fw = wave.open('test.wav','r')
soundInfo = fw.readframes(-1)
soundInfo = np.fromstring(soundInfo,np.int16)
f = fw.getframerate()
fw.close()

plt.subplot(211)
plt.plot(soundInfo)
plt.ylabel('Amplitude')
plt.title('Wave from and spectrogram of test.wav')

plt.subplot(212)
plt.specgram(soundInfo,Fs = f, scale_by_freq = True, sides = 'default')
plt.ylabel('Frequency')
plt.xlabel('time(seconds)')
plt.show()

http://www.frank-zalkow.de/en/code-snippets/create-audio-spectrograms-with-python.html?i=2
https://docs.scipy.org/doc/scipy-0.19.0/reference/generated/scipy.signal.spectrogram.html

用户接受度高:以声音作为识别特征,因其非接触性和自然醒,用户易接受。用户不用刻意的用手指触摸相应的传感器上,也不用将眼睛凑向摄像头,只需要简单的说一两句话即可完成识别认证。

设备成本低:对输入设备如麦克风,摄像头等没有特别的要求,特征提取,模型训练和匹配只需要普通的计算机即可完成。

其他生物认证特征技术各有其劣势:指纹识别需要特殊的传感器芯片,虹膜识别精确度较高,但是设备较为昂贵。

在远程应用和移动互联网环境下优势明显:通过电话、移动设备进行身份认证,声音是最具优势的生物特征,语音控制也逐渐成为流行的交互形式,以声音为特征的身份鉴别技术也越发重要。
  在这里插入图片描述
  1.3 声纹识别的种类
  声纹识别根据实际应用的范畴可以分为 1:1识别 和 1:N识别两种:

1:1识别:指确定待识别的一段语音是否来自其所声明的目标说话人,即确认目标说话人是目标说话人的过程。通常应用于电子支付、智能硬件、银行证券交易等。1:1识别有两个系统的性能评价参量,分别为
错误接受率(False Acceptation Rate, FAR):将非目标说话人判别为目标说话人造成的错误率
错误拒绝率(False Rejection Rate, FRR):将目标说话人误识成非目标说话人造成的错误率
对安全性要求越高,则设定阈值越高,此时接受目标说话人的条件越严格,即FRR越高,FAR越低;对用户体验要求越高,则设定阈值越低,此时接受目标说话人的条件越宽松,即FAR越高,FRR越低。在声纹系统中,可以通过设定不同的阈值来平衡FAR和FRR。
1:N识别:指判定待识别语音属于目标说话人模型集合中的哪一个人,即在N个人中找到目标说话人的过程。通常应用于公安司法、军队国防等

语音是一种数字信号,其数字⾳频的采样率为44100Hz(根据乃奎斯特取样定理得出的结果,在模拟讯号数字化的过程中,如果保证取样频率大于模拟讯号最高频率的2倍,就能100%精确地再还原出原始的模拟讯息。音频的最高频率为20kHz,所以取样率至少应该大于40kHz,为了留一点安全系数,再考虑到工程上的习惯,最终选择了44.1kHz这个数值)。通常情况下使用傅里叶变换将信号在时域与频域之间进行转换,而频谱图可以显示傅里叶变换后的振幅与时间和频率的对应关系。

MFCC(MeI-Freguency CeptraI Coefficients)是需要语音特征参数提取方法之一,因其独特的基于倒谱的提取方式,更加的符合人类的听觉原理,因而也是最为普遍、最有效的语音特征提取算法。MFCC是在Mel标度频率域提取出来的倒谱系数,Mel标度描述了人耳对频率感知的非线性特性。
在这里插入图片描述

高通滤波器,又称低截止滤波器、低阻滤波器,允许高于某一截频的频率通过,而大大衰减较低频率的一种滤波器 。它去掉了信号中不必要的低频成分或者说去掉了低频干扰。
预加重其实就是将语音信号通过一个高通滤波器,来增强语音信号中的高频部分,并保持在低频到高频的整个频段中,能够使用同样的信噪比求频谱。同时,预加重也是为了消除发生过程中声带和嘴唇的效应,来补偿语音信号受到发音系统所抑制的高频部分,也为了突出高频的共振峰。

分帧是指在跟定的音频样本文件中,按照某一个固定的时间长度分割,分割后的每一片样本,称之为一帧,这里需要区分时域波形中的帧,分割后的一帧是分析提取MFCC的样本,而时域波形中的帧是时域尺度上对音频的采样而取到的样本。

分帧是先将N个采样点集合成一个观测单位,也就是分割后的帧。通常情况下N的取值为512或256,涵盖的时间约为20-30ms。也可以根据特定的需要进行N值和窗口间隔的调整。为了避免相邻两帧的变化过大,会让两相邻帧之间有一段重叠区域,此重叠区域包含了M个取样点,一般M的值约为N的1/2或1/3。

语音识别中所采用的信号采样频率一般为8kHz或16kHz。以8kHz来说,若帧长度为256个采样点,则对应的时间长度是256/8000×1000=32ms。

在对音频进行分帧之后,需要对每一帧进行加窗,以增加帧左端和右端的连续性,减少频谱泄漏。在提取MFCC的时候,比较常用的窗口函数为Hamming窗。

对信号进行离散傅立叶变换 (DFT)
由于信号在时域上的变换通常很难看出信号的特性,所有通常将它转换为频域上的能量分布来观察,不同的能量分布,代表不同语音的特性。所以在进行了加窗处理后,还需要再经过离散傅里叶变换以得到频谱上的能量分布。对分帧加窗后的各帧信号进行快速傅里叶变换得到各帧的频谱。并对语音信号的频谱取模平方得到语音信号的功率谱。

https://www.cnblogs.com/LXP-Never/p/11602510.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值