vq矢量量化lbg matlab,应用VQ的说话人识别系统|Matlab实现

本文详细介绍了矢量量化(VQ)的概念,包括失真测度如欧氏距离和线性预测失真,以及它们在语音信号处理中的作用。线性预测失真测度适用于LPC参数描述语音。识别失真测度考虑了能量信息,以提高匹配精度。文章还讨论了矢量量化器的设计方法,特别是最小失真准则,并提到了LBG算法在码本设计中的应用。此外,还探讨了Matlab中实现矢量量化编码器的步骤。
摘要由CSDN通过智能技术生成

VQ(矢量量化)

参考文献

定义

a62bac349b35

VQ定义

失真测度

定义

将输入矢量

math?formula=X_i用码本重构矢量

math?formula=Y_j来表征时所产生的误差的度量方法。

math?formula=%5Cbegin%7Baligned%7D%20%26D%3DE%5Bd(X%2CQ(X))%5D%5C%5C%20%26Y%3DQ(x)%5C%5C%20%5Cend%7Baligned%7D

其中,

math?formula=E%5B%5Ccdot%5D表示求期望。

欧氏距离测度

设未知模式的

math?formula=K维特征矢量为

math?formula=X,与码本中某个

math?formula=K维码矢

math?formula=Y进行比较,

math?formula=x_i

math?formula=y_i分别表示同一维分量

math?formula=(0%5Cleq%20i%5Cleq%20K-1),有几种常用欧氏距离测度:

均方误差

math?formula=d_2(X%2CY)%3D%5Cfrac1K%5Csum_%5Climits%7Bi%3D1%7D%5E%7BK%7D(x_i-y_i)%5E2

math?formula=r方平均误差

math?formula=d_r(X%2CY)%3D%5Cfrac1K%5Csum_%5Climits%7Bi%3D1%7D%5E%7BK%7D(x_i-y_i)%5Er

math?formula=r平均误差

math?formula=d_r'(X%2CY)%3D%5B%5Cfrac1K%5Csum_%5Climits%7Bi%3D1%7D%5E%7BK%7D(x_i-y_i)%5Er%5D%5E%7B%5Cfrac1K%7D

绝对值平均误差

math?formula=d_1(X%2CY)%3D%5Cfrac1K%5Csum_%5Climits%7Bi%3D1%7D%5E%7BK%7D%7Cx_i-y_i%7C

最大平均误差

math?formula=d_M(X%2CY)%3D%5Cmax%5Climits_%7B1%5Cleq%20i%5Cleq%20K%7D%20%5Bx_i-y_i%5D

加权欧氏距离测度

采用不加权的欧氏距离而对特征矢量的各个分量进行预加重

math?formula=d(X%2CY)%3D%5Cfrac1K%5Csum_%5Climits%7Bi%3D1%7D%5E%7BK%7D%5Comega(i)(x_i-y_i)%5E2

math?formula=%5Comega(i)是加权系数,常用的值如下表示:

math?formula=%5Cleft%5C%7B%20%5Cbegin%7Baligned%7D%20%5Comega(i)%26%20%3D%20i%20%5C%5C%20%5Comega(i)%26%20%3D%20i%5E%7B2s%7D%2C%5Cquad0%5Cleq%20s%5Cleq%201%20%5C%5C%20%5Comega(i)%26%20%3D%201%2B(1%2Bk)%5Csin%5B%5Cpi%20i(k%2B4)%2F2%5D%20%5Cend%7Baligned%7D%20%5Cright.

线性预测失真测度

特别适用于线性预测模型,并用最大似然准则推导出来,所以特别适用于LPC参数描述语音信号的情况。

a62bac349b35

线性预测失真测度

相关的线性失真测度还包括以下两种:

对数似然比失真测度

math?formula=d_LLR(f%2Cf')%3D%5Cln(%5Cfrac%7B%5Csigma_P'%5E2%7D%7B%5Csigma%5E2%7D)%3D%5Cln(%5Cfrac%7Ba'%5ETRa'%7D%7Ba%5ETRa%7D)

模型失真测度

math?formula=d_m(f%2Cf')%3D%5Cfrac%7B%5Csigma_P'%5E2%7D%7B%5Csigma%5E2%7D-1%3D%5Cfrac%7Ba'%5ETRa'%7D%7Ba%5ETRa%7D-1

以上2种失真测度的局限性在于:只比较了两个矢量的功率谱,而没有考虑能量信息。

识别失真测度

在功率谱的基础上,考虑了能量信息

math?formula=d(f%2CE)%3Dd(f%2Cf')%2B%5Calpha%20g(%7CE-E'%7C)

式中,

math?formula=E

math?formula=E'为输入信号及码矢的归一化能量,

math?formula=%5Calpha为加权因子,

math?formula=g(x)可以按下式选取:

math?formula=g(x)%3D%5Cleft%5C%7B%20%5Cbegin%7Baligned%7D%20%26%200%2C%5Cquad%20%26%20x%5Cleq%20x_d%20%5C%5C%20%26%20x%2C%5Cquad%20%26%20x_F%5Cgeq%20x%3Ex_d%20%5C%5C%20%26%20x_F%2C%5Cquad%20%26%20x%3Ex_F%20%5Cend%7Baligned%7D%20%5Cright.

math?formula=g(x)的意义:当两个矢量的能量接近时,忽略能量引起的影响;当能量相差较大时,则进行线性加权;当能量超过门限

math?formula=x_F时,则为某一固定值。参数

math?formula=%5Calpha

math?formula=x_F

math?formula=x_d要经过实验来确定。

矢量量化器

设计

根据最小失真的方法设计

math?formula=%5Calpha(X)%3Di%5CLeftrightarrow%20d(X%2CY_i)%5Cleq%20d(X%2CY_j)%5Cquad%5Cforall%20j%5Cin%20I_N

式中,

math?formula=I_N%3D%5C%7B1%2C2%2C...%2CN%20%5C%7D

a62bac349b35

矢量量化原理

传输速率

每个样值(每维)平均编码所需的比特数。

a62bac349b35

矢量量化器传输速率的定义

math?formula=%5Cbigstar核心算法

问题设计

给定

math?formula=T(训练集)和

math?formula=N(码矢数目),找到能使

math?formula=D_ave(平均失真度)最小的

math?formula=C(码书)和

math?formula=P(空间划分)。关键问题是如何划分量化空间和确定量化矢量。

a62bac349b35

问题设计

优化准则

a62bac349b35

优化准则

下面是

math?formula=C(码书)和

math?formula=P(空间划分)相互迭代优化的过程:

a62bac349b35

最佳划分

a62bac349b35

a62bac349b35

最佳码书

递推算法——LBG

简介

LBG算法可以用于已知信源分布特性的场合,也可以用于未知信源分布特性,但要知道它的一列输出值(训练序列)。对于说话人识别来说,由于语音难以准确得到多维概率分布,所以通常使用训练序列来设计矢量量化器。

给定训练序列来设计量化器的步骤

a62bac349b35

a62bac349b35

已知训练序列的设计算法

流程图

a62bac349b35

流程图

初始码书的选定与空胞腔的处理

a62bac349b35

初始码书的选定与空胞腔的处理

根据上图中的分裂法得到的具体过程:

a62bac349b35

初始码书基于分裂法开始

疑点

为什么计算总失真度的时候,分母是

math?formula=Mk,即,不仅要对样本个数取均值,还要对样本维数取均值?

改进环节

对失真测度的探讨,码书的设计,各种矢量量化系统的研究及快速搜索算法的寻找。

Matlab实现

矢量量化编码器块将每个输入列向量与码本矩阵中的码字向量进行比较。这个码本矩阵的每一列都是一个码字。块查找最接近输入列向量的码字向量并返回其从零开始的索引。此块支持所有输入端口上的浮点和定点信号。

a62bac349b35

image.png

根据《数字语音处理及MATLAB仿真》_张雪英P121页内容做些改动,此程序完成对一段语音的码本求解,输入数据是原始波形,应该稍作改进,比如更改为MFCC或LPCC等参数;也许是过于简单,码本迭代次数niter始终是2;欢迎大家指正交流:

https://gitee.com/zhouwenjun2020/Speaker-Verification-Algorithm/tree/master/VQ/%E7%A0%81%E6%9C%AC%E7%94%9F%E6%88%90

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值