应用VQ的说话人识别系统|Matlab实现

VQ(矢量量化)

参考文献

  1. http://www.data-compression.com/vq.shtml
  2. 语音信号处理之(三)矢量量化(Vector Quantization)
  3. 《语音信号处理(C++版)》_赵力
  4. 《数字语音处理及MATLAB仿真》_张雪英

定义

VQ定义

失真测度

  • 定义
    将输入矢量X_i用码本重构矢量Y_j来表征时所产生的误差的度量方法。
    \begin{aligned} &D=E[d(X,Q(X))]\\ &Y=Q(x)\\ \end{aligned}

其中,E[\cdot]表示求期望。

欧氏距离测度

设未知模式的K维特征矢量为X,与码本中某个K维码矢Y进行比较,x_iy_i分别表示同一维分量(0\leq i\leq K-1),有几种常用欧氏距离测度:

  • 均方误差
    d_2(X,Y)=\frac1K\sum_\limits{i=1}^{K}(x_i-y_i)^2

  • r方平均误差
    d_r(X,Y)=\frac1K\sum_\limits{i=1}^{K}(x_i-y_i)^r

  • r平均误差
    d_r'(X,Y)=[\frac1K\sum_\limits{i=1}^{K}(x_i-y_i)^r]^{\frac1K}

  • 绝对值平均误差
    d_1(X,Y)=\frac1K\sum_\limits{i=1}^{K}|x_i-y_i|

  • 最大平均误差
    d_M(X,Y)=\max\limits_{1\leq i\leq K} [x_i-y_i]

  • 加权欧氏距离测度
    采用不加权的欧氏距离而对特征矢量的各个分量进行预加重
    d(X,Y)=\frac1K\sum_\limits{i=1}^{K}\omega(i)(x_i-y_i)^2

\omega(i)是加权系数,常用的值如下表示:
\left\{ \begin{aligned} \omega(i)& = i \\ \omega(i)& = i^{2s},\quad0\leq s\leq 1 \\ \omega(i)& = 1+(1+k)\sin[\pi i(k+4)/2] \end{aligned} \right.

线性预测失真测度

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


线性预测失真测度

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

  • 对数似然比失真测度
    d_LLR(f,f')=\ln(\frac{\sigma_P'^2}{\sigma^2})=\ln(\frac{a'^TRa'}{a^TRa})

  • 模型失真测度
    d_m(f,f')=\frac{\sigma_P'^2}{\sigma^2}-1=\frac{a'^TRa'}{a^TRa}-1

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

识别失真测度

在功率谱的基础上,考虑了能量信息
d(f,E)=d(f,f')+\alpha g(|E-E'|)

式中,EE'为输入信号及码矢的归一化能量,\alpha为加权因子,g(x)可以按下式选取:
g(x)=\left\{ \begin{aligned} & 0,\quad & x\leq x_d \\ & x,\quad & x_F\geq x>x_d \\ & x_F,\quad & x>x_F \end{aligned} \right.

g(x)的意义:当两个矢量的能量接近时,忽略能量引起的影响;当能量相差较大时,则进行线性加权;当能量超过门限x_F时,则为某一固定值。参数\alphax_Fx_d要经过实验来确定。

矢量量化器

  • 设计
    根据最小失真的方法设计
    \alpha(X)=i\Leftrightarrow d(X,Y_i)\leq d(X,Y_j)\quad\forall j\in I_N

式中,I_N=\{1,2,...,N \}

矢量量化原理
  • 传输速率
    每个样值(每维)平均编码所需的比特数。


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

\bigstar核心算法

  • 问题设计
    给定T(训练集)和N(码矢数目),找到能使D_ave(平均失真度)最小的C(码书)和P(空间划分)。关键问题是如何划分量化空间和确定量化矢量。

    问题设计

  • 优化准则


    优化准则

下面是C(码书)和P(空间划分)相互迭代优化的过程:

最佳划分


最佳码书

递推算法——LBG

简介

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

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

已知训练序列的设计算法

流程图

流程图

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

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

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

初始码书基于分裂法开始
  • 疑点
    为什么计算总失真度的时候,分母是Mk,即,不仅要对样本个数取均值,还要对样本维数取均值?

改进环节

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

Matlab实现

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,402评论 6 499
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,377评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,483评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,165评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,176评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,146评论 1 297
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,032评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,896评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,311评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,536评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,696评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,413评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,008评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,659评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,815评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,698评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,592评论 2 353