《语音信号处理试验教程》(梁瑞宇等)的代码主要是Matlab实现的,现在Python比较热门,所以把这个项目大部分内容写成了Python实现,大部分是手动写的。使用CSDN博客查看帮助文件:
Python语音基础操作–2.1语音录制,播放,读取
Python语音基础操作–2.2语音编辑
Python语音基础操作–2.3声强与响度
Python语音基础操作–2.4语音信号生成
Python语音基础操作–3.1语音分帧与加窗
Python语音基础操作–3.2短时时域分析
Python语音基础操作–3.3短时频域分析
Python语音基础操作–3.4倒谱分析与MFCC系数
Python语音基础操作–4.1语音端点检测
Python语音基础操作–4.2基音周期检测
Python语音基础操作–4.3共振峰估计
Python语音基础操作–5.1自适应滤波
Python语音基础操作–5.2谱减法
Python语音基础操作–5.4小波分解
Python语音基础操作–6.1PCM编码
Python语音基础操作–6.2LPC编码
Python语音基础操作–6.3ADPCM编码
Python语音基础操作–7.1帧合并
Python语音基础操作–7.2LPC的语音合成
Python语音基础操作–10.1基于动态时间规整(DTW)的孤立字语音识别试验
Python语音基础操作–10.2隐马尔科夫模型的孤立字识别
Python语音基础操作–11.1矢量量化(VQ)的说话人情感识别
Python语音基础操作–11.2基于GMM的说话人识别模型
Python语音基础操作–12.1基于KNN的情感识别
Python语音基础操作–12.2基于神经网络的情感识别
Python语音基础操作–12.3基于支持向量机SVM的语音情感识别
Python语音基础操作–12.4基于LDA,PCA的语音情感识别
代码可在Github上下载:busyyang/python_sound_open
高斯混合模型(Gaussian Mixture Model, GMM)可以看做一种状态数为1的连续分布隐马尔科夫模型。一个 M M M阶混合高斯模型的概率密度函数是 M M M个高斯概率密度函数加权求和得到的:
P ( X ∣ λ ) = ∑ i = 1 M w i b i ( X ) P(X|\lambda)=\sum_{i=1}^Mw_ib_i(X) P(X∣λ)=i=1∑Mwibi(X)
其中 X X X是D维随机向量,为说话人识别算法提取的特征矢量, w i w_i wi是混合权重,满足 ∑ i = 1 M w i = 1 \sum_{i=1}^Mw_i=1 ∑i=1Mwi=1,每个分布因子 b i ( X t ) b_i(X_t) bi(Xt)是D维的联合高斯概率分布:
b i ( X ) = 1 ( 2 π ) D / 2 ∣ ∑ i ∣ 1 / 2 exp { − 1 2 ( X − μ i ) t ( ∑ ) i − 1 ( X − μ i ) } b_i(X)=\frac{1}{(2\pi)^{D/2}|\sum_i|^{1/2}}\exp\{-\frac{1}{2}(X-\mu_i)^t(\sum)_i^{-1}(X-\mu_i)\} bi(X)=(2π)D/2∣∑i∣1/21exp{
−21(X−μi)t(∑)i−1(X−