文本无关的声纹识别 验证

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

文本无关的声纹识别 验证

By Dake

Dake的专栏:www.glade.tk

一、声纹识别简介

声纹是指能惟一识别某人或某物的声音特征,是用电声学仪器显示的携带言语信息的声波频谱。虽然人的发音器官生理构造总的是相同的,但人的语言产生是人体语言中枢与发音器官之间一个复杂的生理物理过程,人在讲话时使用的器官——舌、牙齿、喉头、肺、鼻腔在尺寸和形态等方面,每两个人之间的差异会很大(见图2-1所示)所以任何两个人的声纹图谱都有差异,而对于每个人而言,从十几岁发育变声后直到五十多岁,其声纹基本保持不变。声纹识别技术正是利用这一特点,将声音输入到声谱仪中,使声音不同频率的机械振动变成频谱图像,显示在荧光屏或记录在纸上,这种图像就是声纹。

                                                       图2-1 发音器官


声纹识别(Voiceprint Recognition,即VPR),通常也被称为话者识别(Speaker Recognition),分为两类,即话者辨认(Speaker Identification)和话者确认(Speaker Verification)。前者用以判断某段语音是若干人中的哪一个所说的,是“多选一”问题;而后者用以确认某段语音是否是指定的某个人所说的,是“一对一判别”问题。不同的任务和应用会使用不同的声纹识别技术,如缩小刑侦范围时可能需要辨认技术,而银行交易时则需要确认技术。不管是辨认还是确认,都需要先对说话人的声纹进行建模,这就是所谓的“训练”或“学习”过程[7]。声纹识别过程如图2-2所示:

                                            图2-2 声纹识别过程


声纹识别可以说有两个关键问题,一是特征提取,二是模式匹配。特征提取的任务是提取并选择对说话人的声纹具有可分性强、稳定性高等特性的声学或语言特征。与语音识别不同,声纹识别的特征必须是“个性化”特征,而说话人识别的特征对说话人来讲必须是“共性特征”。虽然目前大部分声纹识别系统用的都是声学层面的特征,但是表征一个人特点的特征应该是多层面的,包括: (1)与人类的发音机制的解剖学结构有关的声学特征(如频谱、倒频谱、共振峰、基音、反射系数等等)、鼻音、带深呼吸音、沙哑音、笑声等;(2)受社会经济状况、受教育水平、出生地等影响的语义、修辞、发音、言语习惯等;(3)个人特点或受父母影响的韵律、节奏、速度、语调、音量等特征。从利用数学方法可以建模的角度出发,声纹自动识别模型目前可以使用的特征包括:(1)声学特征(倒频谱);(2)词法特征(说话人相关的词n-gram,音素n- gram);(3)韵律特征(利用n-gram描述的基音和能量“姿势”);(4)语种、方言和口音信息;(5)通道信息(使用何种通道);等等。

对于模式识别,主要有这几大类方法:(1)模板匹配方法:利用动态时间弯折(DTW)以对准训练和测试特征序列,主要用于固定词组的应用(通常为文本相关任务);(2)最近邻方法:训练时保留所有特征矢量,识别时对每个矢量都找到训练矢量中最近的K个,据此进行识别,通常模型存储和相似计算的量都很大;(3)神经网络方法:有很多种形式,如多层感知、径向基函数(RBF)等,可以显式训练以区分说话人和其背景说话人,其训练量很大,且模型的可推广性不好;(4)隐式马尔可夫模型(HMM)方法:通常使用单状态的HMM,或高斯混合模型(GMM),是比较流行的方法,效果比较好;(5)VQ聚类方法(如LBG,K-均值):效果比较好,算法复杂度也不高,和HMM方法配合起来更可以收到更好的效果;(6)多项式分类器方法:有较高的精度,但模型存储和计算量都比较大。 其中模板匹配法的的要点是,在训练过程中从每个说话人的训练语句中提取相应的特征矢量来描述各个说话人的行为,在测试阶段,从说话人的测试语音信号中用同样的方法提取测试模板,主要有动态时间规整方法和矢量量化方法。

对说话人确认,还面临一个两难选择问题。通常,表征说话人确认系统性能的两个重要参数是错误拒绝率和错误接受率,前者是拒绝真正说话人而造成的错误,后者是接受集外说话人而造成的错误,二者与阈值的设定相关。在现有的技术水平下,两者无法同时达到最小,需要调整阈值来满足不同应用的需求,比如在需要“易用性”的情况下,可以让错误拒绝率低一些,此时错误接受率会增加,从而安全性降低;在对“安全性”要求高的情况下,可以让错误接受率低一些,此时错误拒绝率会增加,从而易用性降低。前者可以概括为“宁错勿漏”,而后者可以“宁漏勿错”。我们把真正阈值的调整称为“操作点”调整。好的系统应该允许对操作点的自由调整。

声纹识别有文本相关的(Text-Dependent)和文本无关的(Text-Independent)两种。与文本有关的声纹识别系统要求用户按照规定的内容发音,每个人的声纹模型逐个被精确地建立,而识别时也必须按规定的内容发音,因此可以达到较好的识别效果,但系统需要用户配合,如果用户的发音与规定的内容不符合,则无法正确识别该用户。而与文本无关的识别系统则不规定说话人的发音内容,模型建立相对困难,但用户使用方便,可应用范围较宽。根据特定的任务和应用,两种是有不同的应用范围的。比如,在银行交易时可以使用文本相关的声纹识别,因为用户自己进行交易时是愿意配合的;而在刑侦或侦听应用中则无法使用文本相关的声纹识别,因为无法要求犯罪嫌疑人或被侦听的人配合。


二、MFCC参数(Mel倒谱系统)的提取说明


   1、预增强(Pre-Emphasis) :差分语音信号。
      2、音框化(Framing) :对语音数据分帧。
      3、汉明窗(Hamming Windowing) :对每帧信号加窗,以减小吉布斯效应的影响。
      4、快速傅立叶变换(FFT) :将时域信号变换成为信号的功率谱。
      5、三角带通滤波器(Triangle Filters) :三角滤波器覆盖的范围都近似于人耳的一个临界带宽,以此来 模拟人耳的掩蔽效应。
      6、离散余弦转换(DCT) :去除各维信号之间的相关性,将信号映射到低维空间。


三、声纹提取、识别过程


话者的声纹提取过程总的分4步:

1、 对输入的语音数据序列(PCM码流)进行预处理。

目的:a)去除非语音信号 和 静默语音信号;

b) 对语音信号分帧,以供后续处理。

2、 提取每一帧语音信号的MFCC参数 并保存。

3、 用第2步提取的 MFCC 参数训练话者的 GMM (高斯混合模型),得到专属某话者的 GMM 声纹模型。

4、 声纹识别。提供输入话音与GMM声纹模型的匹配运算函数,以判断输入话音是否与声纹匹配。

一)、 语音数据预处理(去除静寂声音)

输入语音流采用单声道、8bit16KHz采样。

256个采样点为一个音框单位(帧),以128为音框之间的重迭单位,对输入语音流进行分帧。

计算各帧语音数据的累积能量E最大值为256^3=16777216,用int表示足够

如果连续语音帧累积能量大于预设静音阈值(连续数>100),则采纳该段连续语音帧为训练语音;

保留所有可供训练的语音。

二)、MFCC参数提取

1.显示了MFCC参数提取流程

具体6步:

1) 预增强(Pre-Emphasis

2) 音框化(Framing

3) 汉明窗(Hamming Windowing

4) 快速傅立叶转换(FFT

5) 三角带通滤波器(Triangle Filters

6) 离散余弦转换(DCT

1) 预增强(Pre-Emphasis (对原始采样数据处理,所以N不是 256 )

S1(n)n0..N-1)表示时域信号,预增强公式为:

S(n) = S1(n) – a×S1(n-1)   (0.9 < a < 1.0)---------------每字节做差分

该过程可以达到在音框化阶段对静音数据的判断,因为静音数据的值是几乎不变的

所以在做差分以后值会很小,接近于0,而有声音的数据则会保留较大的值

S(n)=(S1(n)-128)/128

此时还是不分帧的好,这样就只需要做完帧数据大小一半的差分

差分后必须以short以及比它字节大的有符号类型,因为差分结果可能为负,且超过char的范围,造成溢出

2) 音框化(Framing

音框化即预处理阶段的语音信号分帧。

3) 汉明窗(Hamming Windowing

假设音框化的信号(MN)为S(n)n=01N-1。那幺乘上汉明窗后为:

S(n) = S(n) ×W(n)

, a = 0.46

//即使是重叠处的样值在汉明窗以后也会不同,因为n不同

                                      1. MFCC参数提取流程


4) 快速傅立叶转换(FFT

S(n)的每帧实施基2 FFT时域变换(代码到网上找)

得到X(n), n = 0..N-1N=256

注意X(n)为复数,所以S(n)也要在3)以后转化为复数作为FFT的输入

5) 三角带通滤波器(Triangle Filters

设定16KHz8KHz条件下的滤波器数组melf16[]melf8[]

melf[]滤波器数组为20×129的稀疏矩阵,以结构化数组的方式存储。

计算每个滤波器输出的对数能量z[20],计算公式为:

z[ ] = log ( melf[]*(|X(0:128)|.^2) )--------------------log(m)是以e为底m为真数的对数

同理exp(m)是以e为底m为指数的指数

melf[]数组见melf16melf8

6) 离散余弦转换(DCT

对上一步所获得的对数能量进行DCT变换,获得DCT系数数组r[20]

      r[] = dct (z[ ])

     dct()变换公式为

       D = 20

      r[] 即一帧语音信号的MFCC参数

      计算并保存所有各帧语音信号的MFCC参数。

三)、 训练话者的GMM 模型

GMM模型主要公式为:

1---------------------------------------------------(1-1)

D维随机矢量,与r[ ] 对应;


mD维高斯概率密度函数;


M组高斯向量的混合数,


2D维高斯概率密度函数公式

3)一个话者的GMM模型由其参数组唯一表示

        

                          图2. GMM模型图

GMM模型训练的目的即得到特定话者的GMM参数组

步骤为:

1)、读入训练语音的MFCC参数序列,即T =训练语音的总帧数。

2)、设定起始参数值

3)、用期望值最大化算法(简称EM),迭代计算,直至,算法停止。得到的即为特定话者GMM参数组。

步骤2)具体算法为:

//这里表示M个值都取1/M

k-均值算法获取;用以训练k-均值的向量数量为1..T

                                               图3. k-均值算法示意图


为协方差矩阵,i = 1,…,MDMFCC参数矢量维度=20,为计算方便,假设其为对角阵。

的一组矢量,共M组。

k-均值算法一次性得到了所有的1iM

步骤3)具体算法为:

a) 准备好T个训练向量,记为

b) 计算事后概率为上一轮迭代后获得的GMM参数组。

      公式中是表示要计算每个训练向量的事后概率,共计算TM组的事后概率

      也就是说每个训练向量都对应一个M组的事后概率

c) 计算

      这里的piM维向量

d) 计算

e) 计算

f) 计算 若是,则迭代训练结束,得到话者GMM参数组模型,

若否,则令 ,返回b)步继续计算。

    注:

D = 20

四)、声纹识别

假设已训练了S个(>2GMM声纹模型,现输入一位话者的语音序列(已经过mfcc参数提取),要求判断该话者是谁,即语音序列与哪一个声纹模型匹配。

用后验概率计算

由于假定先验概率相同,故上式可简化为求下式:

该式又近似于下式。。故实际计算中以下式为准。

此过程中:只对大于0值取log,否则为0的值将导致最后的累加值可能出现无穷小

即公式(1-1),计算即可。

四、验证实现

 

  采用标准C语言实现:MFCC参数提取,K-means聚类,GMM建模及识别

      源码地址如下:

      http://www.openvp.tk

五、参考文献


[1] Douglas A. Reynolds, Richard C. Rose. Robust Text-Independent Speaker Identification Using Gaussian

Mixture Speaker Models.  IEEE Transactions on Speech and Audio Processing, Vol.3, No.1, January 1993.

  [2]郭慧娟.声纹识别系统研究[D].西华大学硕士学位论文,2006

  [3] 魏凯声纹识别中关键技术的研究[D].华中科技大学硕士学位论文,2006

  [4] ZhiQiang Wang, Yang Liu, Peng Ding, Xu Bo .Covariance-tied Clustering Method

    In Speaker Identification[J].National Laboratory of Pattern Recognition.

    Institute of Automation, Chinese Academy of Science Beijing 100080.

  [5] 郭皓婷基于声纹识别技术的应用难点研究[R].第十四届全国青年通信学术会议,2009

  [6] 张万里,刘桥Mel频率倒谱系数提取及其在声纹识别中的作用[J].贵州大学学报,第22卷第2期.

  [7] 张广兰声纹识别的关键技术及发展趋势[J].黑龙江科技学院,黑龙江,哈尔滨,150027

声纹识别概述(3)声纹识别系统 参考: 声纹识别是个什么原理? 阅读详情

相关推荐

声纹识别:x-vector 的特征提取原理

文章目录框架细节(待完成) x-vector 基于DNN编码(详细可查看论文 Deep Neural Network Embeddings for Text-Independent Speaker Verification ) 框架 ##i-vector、d-vector、x-vector (1)i-vector i-vector 是一个不管输入多长的语音,都可以吐出一个400维的向量的模型。 i-vector 并不是深度学习的模型,但是可以说是语音界最后一个被深度学习模型打败的模型,在16年左右,其效果

Robin_Pi的博客 1万+

基于recognito的声纹识别系统.zip

基于recognito的声纹识别系统,基于recognito的声纹识别系统基于recognito的声纹识别系统基于recognito的声纹识别系统基于recognito的声纹识别系统基于recognito的声纹识别系统基于recognito的声纹识别系统基于recognito的声纹识别系统基于recognito的声纹识别系统基于recognito的声纹识别系统基于recognito的声纹识别系统基于recognito的声纹识别系统基于recognito的声纹识别系统基于recognito的声纹识别系统基于recognito的声纹识别系统基于recognito的声纹识别系统基于recognito的声纹识别系统基于recognito的声纹识别系统基于recognito的声纹识别系统基于recognito的声纹识别系统基于recognito的声纹识别系统基于recognito的声纹识别系统基于recognito的声纹识别系统基于recognito的声纹识别系统

声纹识别技术解析:从基础原理到应用实践

本文深入解析声纹识别技术,从基础原理到应用实践全面介绍这一生物识别技术。探讨了声纹验证与识别、文本相关与无关等分类,以及MFCC特征提取和x-vector等核心技术。文章还分享了金融、智能家居和公共安全等典型应用场景,并提供了实战经验与避坑指南,帮助开发者更好地理解和应用声纹识别技术。

weixin_29053577的博客 486

声纹技术(五):声纹分割聚类技术

声纹分割聚类(speaker diarization)是声纹领域里仅次于声纹识别的第二大课题,其难度远大于声纹识别声纹识别所解决的问题可以简单概括为——“这是谁说的”,而这其中便包含了一个假设,那就是已知待识别的语音中,有且仅有一个说话人的声音。而在声纹分割聚类问题中,我们却推翻了这个假设,也就是说,一段语音中可以包含多个说话人交替说话的声音。因此,声纹分割聚类所解决的问题可以概括为——“谁在什么时间说的”(who spoke when)。英文中diarization 一词,来源于单词diary,也就是日

u013250861的博客 2697

MFCC声纹特征提取

没错,就是你,发现了声音识别的机密!

qq_55041016的博客 7473

声纹识别概述(1)初识

声纹识别初识声纹声纹概念声纹识别的原理声纹识别的技术指标影响声纹识别水平的因素 初识声纹 声纹概念 声纹(Voiceprint)是用电声学仪器现实的携带言语信息的声波频谱, 是由波长频率以及强度等百余种特征维度组成的生物特征,具有稳定性、可测量性、唯一性等特点。 每个人的语音声学特征既有相对稳定性,又有变异性,不是一成不变的。这种变异可来自生理、病理、心理、模拟、伪装,也与环境干扰有关。 声纹识别的原理 人声差异的主要方面: 共鸣方式特征:咽腔共鸣、鼻腔共鸣和口腔共鸣 嗓音纯度特征:不同人的嗓音,纯度一般

Robin_Pi的博客 1万+

文本无关声纹识别验证

一、声纹识别简介 声纹是指能惟一识别某人或某物的声音特征,是用电声学仪器显示的携带言语信息的声波频谱。虽然人的发音器官生理构造总的是相同的,但人的语言产生是人体语言中枢与发音器官之间一个复杂的生理物理过程,人在讲话时使用的器官——舌、牙齿、喉头、肺、鼻腔在尺寸和形态等方面,每两个人之间的差异会很大(见图2-1所示)所以任何两个人的声纹图谱都有差异,而对于每个人而言,从十几岁发育变声后直到五十

冰冻三尺,非一日之寒! 4327

声纹技术(三):声纹识别技术

广义上讲,声纹技术是一个宽泛的概念,其包含了许多不同的技术及应用。在所有这些技术中,声纹识别技术是其他技术的基础。无论是第5 章将要介绍的声纹分割聚类技术,还是第6 章将要介绍的基于声纹的语音合成、人声分离及语音活动检测等,都离不开与声纹识别模型的协同工作,其中的声纹识别模型既可以是事先预训练好的(pre-trained),也可以是联合训练(joint training)得到的。因此,本章也是本书最重要、最核心的章节。声纹识别,也称为说话人识别,在英文中对应若干种说法,例如voice recognition

u013250861的博客 3847

语音识别总结

采样量 一般为8000 或者 160000 步长要比frame window 小 mfcc :13个滤波器, 三角计算 CTC-Loss 用到动态规划 语音: 输入是 一段语音 ,通过 MFCC转为 向量 空洞卷积,循环 deep speaker 声纹识别:特点 embeding,端到端 声纹验证文本相关(优选,准确性高于文本无关文本无关...

zyp361161的博客 861

android声纹识别技术,基于Android平台的声纹识别系统的研究与实现

摘要:社会的发展越来越快,计算机技术的应用也愈来愈广,已经渗透到生活的各个方面。在快节奏、信息化的时代,需要识别和交互的应用日益广泛,要求验证身份的场合越来越多,迅速判定一个人的身份是一个非常重要的问题。因此,数字的、隐性的、方便的身份认证变得越来越重要。使用语音来交流信息是日常生活中最便捷、最有效的沟通方式。语音是我们生活中使用最多的工具,让计算机理解人类的语言,实现人机交互,是自计算机问世以来...

weixin_39541844的博客 832

天外客AI翻译机声纹识别身份验证

天外客AI翻译机通过声纹识别实现无感身份验证,利用双麦克风阵列、深度学习模型与边缘计算,在复杂环境中完成低延迟、高精度的说话人确认。系统提取2KB声纹模板,支持文本无关识别,全程本地处理,保障隐私安全。

weixin_31569663的博客 290

声纹识别

声纹识别是指,通过两次说话的比较,通过电脑判断是否同一人。

冰水混合物的奋斗足迹 1132

全球权威声纹识别竞赛斩获双料冠军 网易AI Lab智能技术领先国际

允中 发自 凹非寺量子位 报道 | 公众号 QbitAI中国力量,又双叒夺冠了。这一次,是在全球规模最大、最全面的语音顶会INTERSPEECH 2020上。挑战比拼内容,则是当前语音研...

量子位 470

声纹识别知识整理

一、算法总览 1. 最早的GMM-UBM i-vector 利用GMM高斯混合模型提取特征i-vector;克服训练数据不多的情况,引入UBM;将语音分为说话人空间和环境空间,解决环境带来的信道,PLDA实现信道补偿,将提取的i-vector更加纯粹。 当然,获取i-vector的方法不仅仅局限在高斯混合模型,利用一起其它的机器学习方法进行补充一样可以,甚至是DNN提取的特征。 2. DNN DN...

James_bobo的博客 1万+

[深度学习概念]·声纹识别技术简介

声纹识别技术简介 声纹识别,也称作说话人识别,是一种通过声音判别说话人身份的技术。从直觉上来说,声纹虽然不像人脸、指纹的个体差异那样直观可见,但由于每个人的声道、口腔和鼻腔也具有个体的差异性,因此反映到声音上也具有差异性。如果说将口腔看作声音的发射器,那作为接收器的人耳生来也具备辨别声音的能力。 最直观的是当我们打电话给家里的时候,通过一声“喂?”就能准确地分辨出接电话的是爸妈或是...

简明AI工作室 2万+
上一篇: glLoadIdentity()与glTranslatef()和glRotatef()--坐标变换
下一篇: 获取控制台窗口的句柄
momosp
博客等级 码龄18年 13粉丝 16原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值