【声纹识别】适量量化(VQ)说话人门禁识别【含GUI Matlab源码 2608期】

本文介绍了基于矢量量化(VQ)的说话人识别方法,比较了其与HMM方法的优缺点,强调了VQ的简单性和鲁棒性。文章详细阐述了VQ在说话人识别中的应用过程,包括训练和识别步骤,以及如何通过动态调整模板来适应语音变化。此外,还涉及了部分Matlab源代码示例和优化策略。

💥💥💥💥💥💥💥💥💞💞💞💞💞💞💞💞💞Matlab武动乾坤博客之家💞💞💞💞💞💞💞💞💞💥💥💥💥💥💥💥💥
🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀
在这里插入图片描述
🔊博主简介:985研究生,Matlab领域科研开发者;

🚅座右铭:行百里者,半于九十。

🏆代码获取方式:
优快云 Matlab武动乾坤—代码获取方式

更多Matlab语音处理仿真内容点击👇
Matlab语音处理(进阶版)

⛳️关注优快云 Matlab武动乾坤,更多资源等你来!!

⛄一、矢量量化(VQ)说话人识别简介

目前自动说话人识别的方法主要是基于参数模型的HMM的方法和基于非参数模型的VQ的方法。1992年, 日本人Matsui和Fur ui主要从对语声波动的鲁棒性方面对基于VQ的方法和各态历经的离散和连续的HMM方法进行了比较。他们发现连续的各态历经HMM方法比离散的各态历经HMM方法优越, 当可用于训练的数据量较小时, 基于VQ的方法比连续的HMM方法有更大的鲁棒性。同时, 基于VQ的方法比较简单, 实时性也较好。因此,直到目前为止,基于VQ的说话人识别方法,仍然是最常用的识别方法之一。
应用VQ的说话人识别系统如图8-3所示。完成这个系统有两个步骤:一是利用每个说话人的训练语音,建立参考模型码本;二是对待识别话者的语音的每一帧和码本码字之间进行匹配。由于VQ码本保存了说话人个人特性,这样我们就可以利用VQ法来进行说话人识别。在VQ法中模型匹配不依赖于参数的时间顺序, 因而匹配过程中无需采用DTW技术;
而且这种方法比应用DTW方法的参考模型存储量小, 即码本码字小。
在这里插入图片描述
我们可以将每个待识别的说话人看作是一个信源,用一个码本来表征,码本是从该说话
人的训练序列中提取的特征矢量聚类而生成的,只要训练的数据量足够,就可以认为这个码本有效地包含了说话人的个人特征,而与说话的内容无关。识别时,首先对待识别的语音段提取特征矢量序列,然后用系统已有的每个码本依次进行矢量量化,计算各自的平均量化失真。选择平均量化失真最小的那个码本所对应的说话人作为系统识别的结果。
应用VQ的说话人识别过程的步骤如下。
(1)训练过程
1)从训练语音提取特征矢量,得到特征矢量集。
2) 通过LBG算法生成码本。
3)重复训练修正优化码本。
4)存储码本。
(2)识别过程
1)从测试语音提取特征矢量序列X,X,,…,Xu。
2)由每个模板依次对特征矢量序列进行矢量量化,计算各自的平均量化误差
在这里插入图片描述
3)选择平均量化误差最小的码本所对应的说话人作为系统的识别结果。
由于人所发的语音是随着生理、心理和健康的状况变化的,不同时间下的语音会有所不
同。因此,如果说话人识别系统的训练时间与使用时间相差过长,会使系统的性能明显下
降。为了维护系统的性能,一种可取的办法是,当某次识别正确时,利用此次测试数据修正原来的模板,让系统自动跟踪说话人语音的变化。
在应用VQ法进行说话人识别时,失真测度的选择将直接影响到聚类结果,进而影响说话人识别系统的性能。失真测度的选择要根据所使用的参数类型来定,在说话人识别采用的矢量量化中,较常用的失真测度是在8.3.2节介绍的欧氏距离测度和加权欧氏距离测度。在基于矢量量化的说话人识别方法中,为了提高识别系统的性能,还必须考虑VQ码本的优化问题和快速搜索算法的应用,以此来提高系统的识别精度和识别速度。

⛄二、部分源代码

function varargout = User_Desktop(varargin)
% USER_DESKTOP MATLAB code for User_Desktop.fig
% USER_DESKTOP, by itself, creates a new USER_DESKTOP or raises the existing
% singleton*.
%
% H = USER_DESKTOP returns the handle to a new USER_DESKTOP or the handle to
% the existing singleton*.
%
% USER_DESKTOP(‘CALLBACK’,hObject,eventData,handles,…) calls the local
% function named CALLBACK in USER_DESKTOP.M with the given input arguments.
%
% USER_DESKTOP(‘Property’,‘Value’,…) creates a new USER_DESKTOP or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before User_Desktop_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to User_Desktop_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE’s Tools menu. Choose “GUI allows only one
% instance to run (singleton)”.
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help User_Desktop

% Last Modified by GUIDE v2.5 29-May-2021 18:10:12

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct(‘gui_Name’, mfilename, …
‘gui_Singleton’, gui_Singleton, …
‘gui_OpeningFcn’, @User_Desktop_OpeningFcn, …
‘gui_OutputFcn’, @User_Desktop_OutputFcn, …
‘gui_LayoutFcn’, [] , …
‘gui_Callback’, []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

% — Executes just before User_Desktop is made visible.相当于初始化
function User_Desktop_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to User_Desktop (see VARARGIN)

% Choose default command line output for User_Desktop
handles.output = hObject;

% Update handles structure
guidata(hObject, handles);

% UIWAIT makes User_Desktop wait for user response (see UIRESUME)
% uiwait(handles.figure1);
axes(handles.pic2); %在axes3中绘制
x = imread(‘./state/关锁1.jpeg’);
imshow(x);

% — Outputs from this function are returned to the command line.
function varargout = User_Desktop_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure
varargout{1} = handles.output;

⛄三、运行结果

在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]韩纪庆,张磊,郑铁然.语音信号处理(第3版)[M].清华大学出版社,2019.
[2]柳若边.深度学习:语音识别技术实践[M].清华大学出版社,2019.

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

🍅 仿真咨询
1 各类智能优化算法改进及应用

生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化

2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断

3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知

4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化

5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配

6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化

7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化

8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置

9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长

10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值