gmm ubm matlab,GMM-UBM和SVM在说话人识别中的应用

1 引言

说话人识别是一项根据说话人的语音参数来区分说话人身份的技术, 广泛地应用于语音拨号、安全控制、电话银行、司法鉴定、语音导航等方面[. 但在实际应用中, 系统的识别性能受到短语音、背景噪声干扰、信号引起的信号畸变等多种因素的影响, 其中短语音导致的训练数据不足是较为常见且较为突出的问题. GMM-UBM模型能够有效地解决训练数据不充分的问题, 但它导致的问题是系统鲁棒性差, SVM利用帧特征向量在空间分布的高斯混合的均值进行识别, 能显著提高系统的鲁棒性能, 而且SVM还能有效地解决小样本、低维线性不可分等实际问题. 但应用SVM对说话人进行识别, 重点就是选择合适的核函数, 为了提高性能, 这里根据单核核函数的特性不同构造了一种组合核函数. 因此, 本文选用GMM-UBM为基线系统模型, 在此基础上应用SVM组合核函数作为分类器进行分类.

2 GMM-UBM基线系统模型

高斯混合模型(GMM)利用多个高斯分布的加权混合来描绘说话人的特征空间分布[, 因此, 混合度越高, 识别性能越好, 当然所需的训练语音也会越多. 但在很多实际应用中, 有些训练语音比较短, 这些有限的训练语音无法很好地代表说话人所有可能的发音情况, 因此, 训练得到的模型也无法很好地表征说话人的特征, 这种情况使GMM识别的性能较差.

GMM-UBM模型能够有效地解决GMM由于训练语音不足导致的问题. 通用背景模型(UBM)是一个高阶的GMM, 通常能够达到1024~4096个混合度. 它由数百人、性别比例均衡、长时间的语音训练得到的模型, 使得UBM基本包括了所有说话人的特征参数. 这样, 短的语音未覆盖到的发音部分就可以用UBM中与说话人无关的特征分布近似描述, 降低训练语音短带来的影响, 继而提高系统识别性能. 但GMM-UBM 在说话人应用中存在受信道影响较大的问题, 使系统的鲁棒性较差[, 鉴于此, 这里用GMM-UBM为基线系统模型.

3 SVM

3.1 SVM原理

SVM是由Vapnik等人提出的基于统计学习理论和结构风险最小化原理的一种分类算法[. 基本思想是将低维空间无法线性可分样本映射到高维特征空间, 并构建一个最优分类面以达到使两类样本正确分开, 且类间间隔最大的结果.

给定训练样本集

$X = \{ ({x_i},{y_j}),i = 1, \cdots ,n;j = - 1, + 1\} $, 其中xi和yi分别代表第i个样本和类别标号. 找出区分不同样本的最优分类面为:

$y(x) = {\mathop{\rm sgn}} \left\{ {w \cdot \phi (x) + b} \right\}$

(1)

其中x、w、b和

$\phi (x)$分别表示输入向量、权重系数、偏移量和特征映射. 这样可将式(1)表示成求解以下问题:

$\begin{aligned}& \quad\quad\quad\quad \mathop {\min }\limits_{w,b,\xi } {\textstyle{1 \over 2}}{w^T}w + C\sum\limits_{i = 1}^N {{\xi _i}} ,\\& {\rm s.t.}{y_i}\left( {{w^t} \cdot \phi \left( {{x_i}} \right) + b} \right) \ge 1 - {\xi _i},{\xi _i} \ge 0,i = 1, \ldots ,N\end{aligned}$

(2)

其中C和

${\xi _i}$分别是惩罚因子和松弛变量. 将以上问题应用Lagrange转化为对偶问题:

$\begin{array}{l}\!\!\!\!\!\max Q(\alpha ) \!=\! \max \sum\limits_{i = 1}^N {{\alpha _i}} \!- \!\sum\limits_{i = 1}^N {\sum\limits_{j = 1}^N {{\alpha _i}} } {\alpha _j}{y_i}{y_j}\phi ({x_i})\phi ({x_j})\\{\rm s.t.}\sum\limits_{i = 1}^N {{\alpha _i}{y_i}} = 0,0 \le {\alpha _i} \le C,i = 1,2, \ldots ,N\end{array}$

(3)

其中

${\alpha _i}$为拉格朗日系数, 可得最优分类函数为:

$f(x) = {\mathop{\rm sgn}} ((w \cdot x) + b) = {\mathop{\rm sgn}} (\sum\limits_{i = 1}^{{N_V}} {({a_i}{y_i}(\phi ({x_i}) \cdot \phi ({x_j})} + b))$

(4)

解式(4), 其中大于零的解所对应的样本xi就称为支持向量. 在实际问题中, 低维空间的向量集总是难以线性划分, 而通常的解决办法就是将低维空间的向量集映射到高维空间以线性划分, 但导致的最大问题就是计算复杂度大大增加, 引入核函数可以有效地解决这个问题. 相应的判别函数为:

$f(x) = {\mathop{\rm sgn}} \left\{ {\sum\limits_{i = 1}^N {{a_i}{y_i}K({x_i},{x_j}) + b} } \right\}$

(5)

3.2 SVM核函数

常见的核函数有:

① 线性内积(Linear)核函数:

$K(x{}_i \cdot {x_j}) = \left( {{x_i} \cdot {x_j}} \right)$

(6)

② 高斯径向基(Gaussian)核函数:

$K({x_i} \cdot {x_j}) = \exp ( - {\left\| {{x_i} - {x_j}} \right\|^2}/2{\sigma ^2})$

(7)

其中

$\sigma $是Gaussian核函数的宽度系数.

③ 多项式(Polynomial)核函数:

$K(x{}_i \cdot {x_j}) = {\left[ {\left( {{x_i} \cdot {x_j}} \right) + C} \right]^d},d > 0$

(8)

其中d是Polynomial核函数的幂指数, C是一个常数, 实际应用中一般令C=1[.

④ 两层神经网络(Sigmoid)核函数:

$K(x{}_i \cdot {x_j}) = \tanh (\left( {v({x_i} \cdot {x_j}} \right) + \theta )$

(9)

其中v和

$\theta $分别是Sigmoid核函数的一个标量及其位移参数, Sigmoid核函数在实际应用中并不多见, 这里也不予考虑.

3.3 SVM核函数的特性

根据SVM核函数特性的不同, 可分为局部性核函数和全局性核函数.

由公式(7)可知, 当

$\sigma $足够小时, Gaussian核函数的分类性能较好, 当

$\sigma \to 0$时, 分类性能达到最佳, 但当样本距离逐渐增大时, 它的值会逐渐下降且趋于零. 如${\sigma ^2}$(图中用p表示)分别取0.1, 0.2, 0.5, 1, 测试点为0.2时, Gaussian核函数值在测试点0.2附近较大, 离测试点较远时, 值会显著下降, 因此Gaussian核函数插值能力较强, 但泛化能力较差.

图 1

Fig. 1

6b0756ae9ea8cfd9dedb3715a5778f6f.png

图 1 Gaussian核函数特征曲线图

根据公式(8), 当测试点取0.2, 可得

图 2

Fig. 2

2d2d99b72273f9901e9c162bb1bf558b.png

图 2 Polynomial核函数特征曲线图

3.4 组合核函数的构建

选择的核函数是否合适直接影响着SVM的识别性能, 鉴于Gaussian核函数较强的局部学习能力和Polynomial核函数较强的全局泛化能力, 可将两种核函数进行线性组合, 使其充分发挥各自单核的优点.

由核函数的构成条件可知, 两个核函数的线性加权, 仍然满足Mercer条件, 组合后的核函数如公式(10)所示.

$K(x{}_i \cdot {x_j}) = \alpha {\left[ {\left( {{x_i} \cdot {x_j}} \right) + 1} \right]^d} + (1 - \alpha )\exp ( - {\left\| {{x_i} - {x_j}} \right\|^2}/2{\sigma ^2})$

(10)

其中

$0 \le \alpha \le 1$, 表示加权系数, 表示两种核函数的比例系数, 根据不同的数据分布调整权系数

$\alpha $, 以达到组合核函数最佳的识别性能. 组合核函数的特征曲线图如

图 3

Fig. 3

dc49574641aebc80b5d46ff1e84f48ef.png

图 3 组合核函数特征曲线图

3.5 SVM参数优化方法

SVM核函数的参数优化方法主要有网格搜索法、交叉验证法和蚁群算法、遗传算法等智能算法. 与其它算法相比, 网格搜索法能实现并行操作, 因此效率较高, 但缺点是精度不高[, 多重网格搜索可以在一定程度上提高参数精度. 鉴于组合核函数中参数较多, 综合考虑参数的精度与效率, 这里选取多重网格搜索来优化参数.

网格搜索法的主要思路是先确定搜索范围和步长, 再按照确定的步长沿每个参数方向生成网格, 得到的网格中的节点即构成可能的参数组合. 在上次网格寻优最优点的基础上, 减小搜索步长, 并再次寻优, 就是多重网格搜索. 如要确定参数C与d, 首先设定参数C的范围为

$C \in [{C_1},{C_2}]$, 搜法步长为

${C_s}$, 参数d的范围为

$d \in [{d_1},{d_2}]$, 搜法步长为

${d_s}$, 然后针对每对参数

$[C',d']$进行训练. 多重网格搜索法是完成一次网格搜索后得到一组最优的参数组合

$[c'',d'']$, 再对

$[c'',d'']$附近一定范围内实现更为细致的一次网格搜索, 以提高参数优化的精度.

4 GMM-UBM和SVM组合核函数的说话人识别过程

图 4

Fig. 4

97d1d87b40ffd5a7e66cce4a06d55a5d.png

图 4 基于GMM-UBM和SVM组合核函数的说话人模型识别

5 实验结果及分析

5.1 数据来源

本实验采用自建语音库, 正常情况下, 选取400个说话人(200男200女)进行录音, 时间为5-6分钟/人. 训练语音选取每个说话人录音的前4分钟, 从400人中随即选择20人的后50 s作为测试语音, 使训练语音与测试语音之间不重叠. 对所得数据进行处理, 预加重系数为0.97, 分析窗选用宽度为32 ms的汉明窗, 帧长为25 ms, 步长为10 ms, 选取16维的MFCC系数以及其16维一阶差分. 自适应方法选为EigenVoice, 维数取为10, 段间隔为5 s, 这里自适应时长取10 s.

5.2 性能评价指标

识别率(正确识别率)是系统识别性能最为直观的评价指标, 但对于一个实际说话系统来说, 错误拒绝率FRR和错误接受率FAR也是两个重要的性能评价指标.

${\rm{FRR}} = {\text{错误拒绝的次数}}/{\text{类内测试的总次数}}$

(11)

${\rm{FAR}} = {\text{错误接受的次数}}/{\text{类间测试的总次数}}$

(12)

但以上两个指标互相矛盾, 因此, 综合考虑两个指标, 一般采用二者相等时的错误率作为衡量标准, 称为等错误率EER. 这个值在一定程度上能够反映系统的鲁棒性.

因此本实验采用识别率和等错误率两个指标作为评价模型分类性能的标准, 综合评价系统识别的准确率与鲁棒性.

5.3 参数确定

应用多重网格搜索法进行参数寻优, C、$\sigma $、d和

$\alpha $分别在[0, 1000]、[0, 10]、[1, 20]、[0, 1]范围内进行多次网格寻优. 得到的最优参数如下: Linear核参数C=128, Gaussian核函数参数C=16、$\sigma $=0.2, Polynomial核参数C=32、d=2, 组合核函数参数C=64、d=4,

$\sigma $=0.25、$\alpha $=0.2.

5.4 实验结果及其分析

实验一. 在混合度不同情况下, 比较GMM与GMM-UBM基线系统的识别性能, 实验结果见

表 1(Table 1)

a6681da020503690c25cfdfe20f5cdd9.gif

表 1 不同混合度情况下GMM与GMM-UBM识别性能对比

基线系统模型

混合度

识别率(%)

EER(%)

GMM

16

71.4

16.6

64

73.2

15.4

256

76.6

13.2

512

78.5

12.8

GMM-UBM

256

80.1

11.8

512

83.2

11.2

1024

85.4

10.4

2048

88.6

9.5

表 1 不同混合度情况下GMM与GMM-UBM识别性能对比

实验结果表明, 随着混合度的增加, GMM与GMM-UBM的识别率与EER都有所改善. 通常情况下GMM-UBM混合度都比较高, 即使同为256和512的情况下, GMM-UBM的识别率也分别高于GMM3.5%和4.7%, 但GMM-UBM的EER不低, 即使随着混合度增加EER会下降, 但系统复杂性会增加.

实验二. 综合考虑系统复杂性与识别性能要求, 选取GMM-UBM混合数为1024, 比较SVM选取不同核函数的识别性能.

表 2(Table 2)

a6681da020503690c25cfdfe20f5cdd9.gif

表 2 不同SVM核函数识别性能对比

核函数

参数

识别率(%)

EER(%)

Linear

C=128

83.2

10.2

Gaussian

C=16、$\sigma $=0.2

88.4

7.8

Polynomial

C=32、d=2

86.5

9.1

组合核

C=64、d=4,

$\sigma $=0.25、$\alpha $=0.2

93.8

5.6

表 2 不同SVM核函数识别性能对比

实验三. GMM-UBM混合数为1024, 人工添加白噪声, 得到信噪比不同的语音, 比较不同核函数的识别性能实验结果见

图 5

Fig. 5

2a3c0f86ea67a257101217d7bff6cacd.png

图 5 基于不同信噪比不同核SVM识别率对比

图 6

Fig. 6

c414eeb230dd4e772273de8dd0501c8d.png

图 6 基于不同信噪比不同核SVM的EER对比

实验四. 假定20个说话人, 选择不同的高斯混合数, 比较SVM选取不同的核函数的训练时长. 具体数据见

表 3(Table 3)

a6681da020503690c25cfdfe20f5cdd9.gif

表 3 不同高斯混合数下, 不同SVM核函数训练时间比较

高斯混合数(N)

训练时长(s)

Linear

Gaussian

Polynomial

组合核

N=256

186

205

217

264

N=512

224

256

278

288

N=1024

311

329

337

356

N=2048

632

732

725

824

N=4096

1336

1556

1589

1682

表 3 不同高斯混合数下, 不同SVM核函数训练时间比较

6 结语

针对训练数据不充分问题, 选取GMM-UBM为基准系统模型, 并应用SVM对其参数进行优化, 本文基于单核函数的特性, 构建具有良好的泛化能力与良好的学习能力的组合核函数. 在说话人识别的仿真实验中, 组合核函数表现出明显优于其它单核SVM的良好性能. 而且在信噪比不同、高斯混合数不同的情况下, 表现依旧不俗. 但由于组合核函数引入过多的参数, 增加了模型复杂度及系统运算时间. 模型参数自适应方法能够在一定程度上解决这个问题, 在模型参数自适应方法中基于特征音EV模型的变换方法由于能用少量的训练数据快速的调整模型以实现自适应得到广泛的应用, 在此基础上再采用SVM组合核函数训练方法来弥补模型参数自适应方法的局限性, 能够弥补参数设置过多的问题, 但如何在保障识别正确率与系统鲁棒性的基础上减少参数设置依然是需要进一步研究的问题.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值