基于Matlab GUI的说话人识别测试平台
基于Matlab GUI的说话人识别测试平台
摘 要:为了克服在Matlab中语音处理工具箱的不足,设计出基于Matlab图形用户界面(GUI)的说话人识别测试平台。系统框架设计:特征参数采用美尔倒谱系数及差分美尔倒谱系数,识别模型采用矢量量化模型;人机交互实现:设置各控件属性,通过回调函数实现系统功能;测试实例:测试人数50人,识别率为96%,表明了该测试平台的有效性。该平台的特点是:功能较为完整,可设置参数,如:人数、字数、帧长等,方便用户实验,具有良好的实用性、可交互性等。
关键词: Matlab图形用户界面; 说话人识别; 测试平台; 回调函数
0 引 言
说话人识别(Speaker Recognition,SR)是语音识别的一种,是通过话音区分说话人,从而进行身份鉴别与认证的技术。与其他生物认证技术如指纹识别、掌型识别、虹膜识别等相比,具有独特的方便性、经济性和准确性,并逐渐成为人们日常生活和工作中重要且普及的安全验证方式[1]。
Matlab是使用最为广泛的科学计算软件之一,在说话人识别中有着广泛应用。但在实际应用中仍存在如下不足:其语音处理工具箱仅仅提供了基本函数,并未针对一类问题给出一整套设计方案;一般Matlab控制台程序以命令形式调用语音处理工具箱函数,这种形式不像人机交互界面那样直观,也不易数据处理。正因为这些困难与不足,有必要设计基于Matlab GUI的说话人识别测试平台[2]。
1 GUI说话人识别测试平台实现
1.1 系统框架设计
说话人识别系统框图如图1所示,主要由以下模块组成:
(1)预处理模块:完成对语音信号的采样与量化、预加重处理、加窗、端点检测等;
(2)特征提取模块:测试音和训练音都必须经特征提取,提取出表征说话人个性的语音信号特征,以方便后续处理;
(3)参考模板模块:对模型参数进行估计和优化,建立说话人模型;
(4)模式匹配模块:测试音经特征提取,将提取出的特征参数和训练时产生的模型进行匹配,计算匹配距离;
(5)判决模块:根据匹配距离大小,依照某种相似性准则形成判决[3]。
对上面5个模块编写程序,在程序中调用了语音处理工具箱中的enframe,melcepst,melbankm等函数[4]。对所有程序进行优化和整合,设计出说话人识别系统测试平台。
1.2 人机交互界面设计
说话人识别测试平台主界面如图2所示。设置各控件属性,通过回调函数实现系统功能。
1.2.1 控件属性值设置
图2主界面中,包括如下控件类型:Static Text,Push Button,Pop⁃up menu,Radio⁃button,Extid text,Mpanel等。表1为各控件类型的主要属性设置情况[5]。
1.2.2 系统各部分功能的实现
主界面主要包括录音、测试及结果分析3部分。
(1)录音部分:首先设置语音采样点数,然后录音,可通过PLOT按钮观看录制的语音波形,或通过PLAY按钮听录制语音的声音[6],以保证录制语音质量。录音按钮回调函数为:
function pushbutton9_Callback(hObject, eventdata, handles)
(2)测试部分:首先选择人数、发音的字数、帧长、帧移、是否选择有端点检测,然后选择采用的语音特征参数是MFCC或MFCC+ΔMFCC,通过The Path of Train 按钮,输入训练语音路径,以输入训练语音,再按TRAIN按钮,当Edit text框中显示training has been completed表明训练已完成。再按The Path Of Test按钮,输入测试语音路径,以输入测试语音,再按TEST按钮以进行测试,其测试结果显示在Edit text框中,最后识别率显示在Identify rate窗口。训练按钮回调函数为:
function train_Callback(hObject, eventdata, handles)
(3)结果分析部分:对几个影响识别率的因素进行了分析。主要因素有:帧长、人数、字数、MFCC阶数、是否采用端点检测等,其结果和理论结论一致。
表1 控件类型的主要属性设置
2 测试实例
测试实例参数设置及测试结果如图3所示。特征参数采用MFCC+差分MFCC;识别模型为矢量量化模型;测试环境为实验室环境。人数为50人,每个人训练、测试时分别说12个汉字,中文普通话。识别率窗口显示系统识别率为96%,效果较好,表明了该测试平台的有效性。
3 结 语
本文所设计的基于Matlab GUI说话人识别测试平台,充分利用Matlab软件中的GUI技术及语音处理工具箱中内置函数,功能完善,包括录音、测试及结果分析部分。该平台提供了良好的人机交互环境,便于用户在各种参数条件下的测试实验,例如用户可方便设置采样点数、人数、字数、及帧长、帧移、MFCC的阶数等测试条件,系统识别率高,为进一步开发说话人识别系统提供一定的仿真环境及参考价值。
参考文献
[1] 吴朝晖.说话人识别模型与方法[M].北京:清华大学出版社,2009.
[2] 秦辉.基于Matlab GUI的预测控制仿真平台设计[J].系统仿真学报,2006,18(10):2778⁃2779.
[3] 甄斌,吴玺宏,刘志敏.语音识别和说话人识别中各倒谱分量的相对重要性[J].北京大学学报:自然科学版,2001,37(3):371⁃378.
[4] 陈炜杰.噪声环境下的说话人识别技术研究[D].杭州:浙江工业大学,2008.
[5] 郑阿奇.Matlab实用教程[M].北京:电子工业出版社,2005.
[6] 徐明远,刘增力.Matlab仿真在信号处理中的应用[M].西安:西安电子科技大学出版社,2007.
相关文章:
基于Matlab GUI的说话人识别测试平台
基于Matlab GUI的说话人识别测试平台 摘 要:为了克服在Matlab中语音处理工具箱的不足,设计出基于Matlab图形用户界面(GUI)的说话人识别测试平台。系统框架设计:特征参数采用美尔倒谱系数及差分美尔倒谱系数,…...
Leetcode 热题100之二叉树2
1.二叉树的层序遍历 思路分析:层序遍历是逐层从左到右访问二叉树的所有节点,通常可以使用广度优先搜索(BFS)来实现。我们可以使用一个队列(FIFO)来存储每一层的节点,并逐层访问。 初始化队列&a…...
<项目代码>YOLOv8 煤矸石识别<目标检测>
YOLOv8是一种单阶段(one-stage)检测算法,它将目标检测问题转化为一个回归问题,能够在一次前向传播过程中同时完成目标的分类和定位任务。相较于两阶段检测算法(如Faster R-CNN),YOLOv8具有更高的…...
GA/T1400视图库平台EasyCVR视频分析设备平台微信H5小程序:智能视频监控的新篇章
GA/T1400视图库平台EasyCVR是一款综合性的视频管理工具,它兼容Windows、Linux(包括CentOS和Ubuntu)以及国产操作系统。这个平台不仅能够接入多种协议,还能将不同格式的视频数据统一转换为标准化的视频流,通过无需插件的…...
LVM与磁盘配额
文章目录 LVM与磁盘配额1 LVM概述1.1 名词解释1.2 LVM优势 2 LVM相关命令2.1 创建逻辑卷过程2.2 对逻辑卷扩容 3 磁盘配额3.1 磁盘配额的特点3.2 磁盘配额的命令3.3 查看配额使用情况3.4 验证磁盘配额3.5 实验 LVM与磁盘配额 1 LVM概述 1.1 名词解释 LVM:logical…...
xmuoj [蒙德里安的梦想] 状压dp个人笔记
本题是状压dp经典题目,很多人都是通过这一题开始对状压dp有所了解。 在进行讲解之前,我们先通过几个问答大致了解状压dp。 一、问答 1. 问题:什么是状压dp? 回答:状压dp即为状态压缩动态规划,何为状态压缩&#x…...
ubuntu22安装搜狗输入法不能输入中文
关闭Wayland 在/etc/gdm3/custom.conf文件内,取消注释WaylandEnable cat /etc/gdm3/custom.conf | grep WaylandEnable WaylandEnablefalse 其它步骤参考搜狗官方教程 https://pinyin.sogou.com/linux/help.php...
HtmlAgilityPack 操作详解
目录 1.安装 HtmlAgilityPack 2. 示例 HTML 3. 使用 HtmlAgilityPack 进行 HTML 解析与操作 4. 代码详解 1.加载html文档 2.选择元素 3. 提取属性 4.修改属性 5.常用的几种获取元素的 XPath 写法 HtmlAgilityPack: 轻量且高效,适合进行常规的 H…...
基于SSM医院门诊互联电子病历管理系统的设计
管理员账户功能包括:系统首页,个人中心,用户管理,医生管理,项目分类管理,项目信息管理,预约信息管理,检查信息管理,系统管理 用户账号功能包括:系统首页&…...
【读书笔记/深入理解K8S】集群网络
前言 上一章讲了集群控制器的一个大概的原理,这一章讲一下集群网络。网络是集群通信的载体,因为该书是阿里云团队出品的,所以也以阿里云的集群网络方案为例,其他云厂商的网络集群方案一般来说也大同小异。所以通过本章的学习&…...
【专有网络VPC】连接公网
通过ECS实例固定公网IP、弹性公网IP、NAT网关、负载均衡使专有网络中的云资源可以访问公网(Internet)或被公网访问。 概述 专有网络是您自定义的云上私有网络。专有网络中的云资源默认无法访问公网,也无法被公网访问。您可以通过配置ECS实例…...
论文 | Legal Prompt Engineering for Multilingual Legal Judgement Prediction
这篇文章探讨了如何利用“法律提示工程”(LPE)来指导大型语言模型(LLM)进行多语言法律判决预测(LJP)。主要内容: LPE 的概念: LPE 是指通过设计特定的提示(promp…...
国科安芯抗辐照MCU和CANFD芯片发布
国科安芯科技有限公司近期发布了两款重要的芯片产品:抗辐照MCU芯片和抗辐照CANFD芯片。这两款芯片的发布标志着国科安芯在高性能、高安全性芯片产品研制方面取得了显著进展,特别是在抗辐照技术领域。 1. 抗辐照MCU芯片:国科安芯研发的AS32A4…...
C++ 并发专题 - 无锁数据结构(概述)
一:概述: 无锁数据结构是一种在多线程环境中实现线程安全的结构,它允许多个线程在没有传统锁机制的情况下并发访问和修改数据。这种设计的目标是提高程序的性能和响应性,避免锁竞争和上下文切换的开销。 二:原理&…...
NLP领域的经典算法和模型
在自然语言处理(NLP)领域,经典算法和模型众多,它们在不同任务中发挥着重要作用。以下是一些NLP领域的经典算法和模型的详细介绍: 一、基础模型 词袋模型(Bag of Words,BoW) 原理&a…...
提升安全上网体验:Windows 11 启用 DOH(阿里公共DNS)
文章目录 阿里公共 DNS 介绍免费开通云解析 DNS 服务Windows 编辑 DNS 设置配置 IPv4配置 IPv6 路由器配置 DNS 阿里公共 DNS 介绍 https://alidns.com/ 免费开通云解析 DNS 服务 https://dnsnext.console.aliyun.com/pubDNS 开通服务后,获取 DOH 模板࿰…...
论文概览 |《Journal of Transport Geography》2024.10 Vol.120
本次给大家整理的是《Journal of Transport Geography》杂志2024年9月第120卷的论文的题目和摘要,一共包括17篇SCI论文! 论文1 Modelling scenarios in planning for future employment growth in Stockholm 斯德哥尔摩未来就业增长规划情景建模 【摘要…...
yum不能使用: cannot find a valid baseurl for repo: base/7/x86_64
使用yum命令时报错: 原因: CentOS 已经停止维护的问题。2020 年 12 月 8 号,CentOS 官方宣布了停止维护 CentOS Linux 的计划,并推出了 CentOS Stream 项目,CentOS Linux 8 作为 RHEL 8 的复刻版本,生命周期…...
什么品牌的护眼台灯比较好?五款护眼效果比较明显的护眼台灯
在当今信息爆炸的时代背景下,挑选一款真正符合个人需求的护眼台灯,确实是一项不小的挑战。市场上品牌众多、型号繁杂,功能特点各不相同,价格区间也相当广泛,许多消费者在选购时往往感到迷茫不已。当大家询问“什么品牌…...
HTML 表单设计与验证
创建 HTML 表单的步骤如下: 使用 <form> 标签来创建表单,<form> 标签有一个 action 属性,用于指定表单提交的目标 URL。 在 <form> 标签内部,使用 <input> 标签来创建输入框。<input> 标签有一个 …...
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...
Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...
基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...
用递归算法解锁「子集」问题 —— LeetCode 78题解析
文章目录 一、题目介绍二、递归思路详解:从决策树开始理解三、解法一:二叉决策树 DFS四、解法二:组合式回溯写法(推荐)五、解法对比 递归算法是编程中一种非常强大且常见的思想,它能够优雅地解决很多复杂的…...
2025年低延迟业务DDoS防护全攻略:高可用架构与实战方案
一、延迟敏感行业面临的DDoS攻击新挑战 2025年,金融交易、实时竞技游戏、工业物联网等低延迟业务成为DDoS攻击的首要目标。攻击呈现三大特征: AI驱动的自适应攻击:攻击流量模拟真实用户行为,差异率低至0.5%,传统规则引…...
高分辨率图像合成归一化流扩展
大家读完觉得有帮助记得关注和点赞!!! 1 摘要 我们提出了STARFlow,一种基于归一化流的可扩展生成模型,它在高分辨率图像合成方面取得了强大的性能。STARFlow的主要构建块是Transformer自回归流(TARFlow&am…...
JUC并发编程(二)Monitor/自旋/轻量级/锁膨胀/wait/notify/锁消除
目录 一 基础 1 概念 2 卖票问题 3 转账问题 二 锁机制与优化策略 0 Monitor 1 轻量级锁 2 锁膨胀 3 自旋 4 偏向锁 5 锁消除 6 wait /notify 7 sleep与wait的对比 8 join原理 一 基础 1 概念 临界区 一段代码块内如果存在对共享资源的多线程读写操作…...
Shell 解释器 bash 和 dash 区别
bash 和 dash 都是 Unix/Linux 系统中的 Shell 解释器,但它们在功能、语法和性能上有显著区别。以下是它们的详细对比: 1. 基本区别 特性bash (Bourne-Again SHell)dash (Debian Almquist SHell)来源G…...
