【实验】语音识别

news2024/11/18 3:27:08

为学校数字信号处理实验总结和归纳;

语音识别

题目及相关要求在here.

数据预处理

大致步骤:

  • 获取原始音频

  • 检测

  • 分帧

  • 加窗

  • 特征提取

端点检测

端点检测参数指标相对值
初始短时能量高门限50
初始短时能量低门限10
初始短时过零率高门限10
初始短时过零率低门限2
最大静音长度8ms
语音最小长度20ms

这里我们进行的是基于阈值的VAD,通过提取时域(短时能量、短期过零率等)或频域(MFCC、频谱等)特征,通过合理的设置门限,达到区分语音和非语音的目的。

我们的端点检测初始特征阙值如右表所示,通过这样的指标,我们检测出来的音频信息可以过滤掉大部分的噪音。

部分数字与名字信号的双端检测结果如下所示:

分帧

由于语音信号具有短时的平稳时不变的特性,因此对其在时域上进行短时间的分帧进行分析。

实验中使用的30ms的窗口长度和10ms的帧移,有比较好的效果。

加窗

通过不同的窗处理滞后得到的图形有区别,其中矩形窗的变化比较剧烈,汉宁窗、海明窗的变换较为平稳。

  • 矩形窗处理后的时域信号
  • 汉明窗处理后的时域信号
  • 海宁窗处理后的时域信号

时域语音识别

提取语音特征

将处理之后的数据进行归一化处理,并计算出每一帧的特征值,以帧数作为特征向量的维数,得到用于分类的特征向量。特征向量是由过零率、能量和幅值组成的。

使用的分类器

  • 如果一个样本在特征空间中的K个最邻近的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别样本的特性。

  • 基本模型是定义在特征空间上的间隔最大的线性分类器,利用超平面,对数据集进行最大间隔划分,得到该超平面的表达式。

  • 在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于0的概率,评价项目风险,判断其可行性的决策分析方法。

  • 集成学习Based on KNN

    • 集成学习算法是通过构建并结合多个分类器来完成学习任务,通常拥有较高的准确率,其不足之处是模型比较复杂。

    • 实现过程

      • 随机对原始数据的特征值进行随机采样。

      • 将采样数据送入若干个KNN学习器中进行决策判断。

      • 将所有结果进行投票处理。

时域语音分析

下面分别是KNN、SVM、决策树、集成学习KNN分类器得到的判别矩阵和AUC曲线。

结果如下表:

分类器准确率查准率第一类错误率第二类错误率F-score
KNN0.320.331.000.800.25
SVM0.421.000.000.670.50
Tree0.370.500.250.500.50
集成学习KNN0.440.600.670.250.67

不同加窗方式的效果比较

窗口种类准确率查准率第一类错误率第二类错误率F-score
矩形窗0.440.60.670.250.67
汉明窗0.39100..500.67
海宁窗0.450.6710.60.5

F-score表现:矩形窗=汉明窗>海宁窗

矩形窗处理后的语音信号识别效果更好


频域语音识别

实验流程

  • 通过电脑录制音频。

  • 将得到的音频数据进行预处理,经过端点检测得到理想的音频数据。

  • 提取音频数据的MFCC特征。

  • 进行DTW算法搜索。

  • 将得到的结果进行总结归纳。


MFCC特征提取

  • 分帧

  • FFT:对每一帧语音进行256点快速傅里叶变换。

  • 三角带通滤波器

  • 离散余弦转换:离散余弦转换(DCT)系数是用来将能量集中在前面几项中,达到在减少判别参数提高运算速度的同时又不失其准确性的目的。

  • 差量倒谱参数:一阶差分MFCC参数,体现相邻两帧之间的联系,所以我们合并mfcc参数和一阶差分mfcc参数形成MFCC参数,并且去除首尾两帧,以增加MFCC参数的准确性,增强实验的预测能力。

  • DTW


时域语音分析

我们使用交叉验证的方法,训练集与测试集的比例为9:1,在进行1000次的重复试验后,得到的数字识别与名字识别在不同的窗函数下得到的准确率如下。其中x轴为测试次数,y轴为准确率。

由上表各矩形窗的准确率所示,在矩形窗下数字识别整体准确率最低,而在汉明窗和海宁窗下的数字识别准确率相差不大。但是名字准确率在三个窗下的准确率波动不大。


相关视频:

我们可以发现在名字识别的时候端点检测只能检测到名字中的第一个字,这个是因为端点检测的参数没有进行调整。


进行二次调参后:

基于GMM模型的声纹识别

GMM

高斯混合模型(GMM)是声纹识别中最常用的模型之一,因为在声纹识别中,如何将语音特征很好地进行总结及测试语音如何与训练语音进行匹配都是非常复杂难解决的问题,而GMM将这些问题转为对于模型的操作及概率计算等问题,并进行解决。高斯混合模型可以逼近任何一个连续的概率分布,因此它可以看做是连续型概率分布的万能逼近器。GMM模型是一个有监督的训练过程。它的基本思想就是利用已知的样本结果来反推最有可能(也就是最大概率)导致该个结果的参数值,在这个原则之下,GMM通常采用最大期望算法(EM)模型进行迭代直到收敛来确定参数。

我们的工作

实验流程如下:

首先通过分帧,加窗等方法,对语音信号预处理,得到有效语音信号后,提取语音信号MFCC特征,并将其作为GMM模型的输入,对GMM模型进行训练,最后通过测试集对GMM模型进行测试。

将提取到的语音MFCC特征,通过fitgmdist函数进行GMM模型训练,得到每个人的语音特征

转存失败重新上传取消

说话人识别结果

我们将每个同学念名字的语音信号和每个同学念数字的语音信号分别放入GMM模型和SVM分别进行训练和测试,对比两种模型优劣。

记放入训练的数字语音为I1,放入训练的名字语音为I2,用于测试的数字语音为O1,用于测试的名字语音为O2,我们分别用I1,I2作为训练集进行训练,并对每种情况下分别用O1和O2测试准确率。结果如图,可以看出当说话人语音为名字时,识别效果较好,为数字时较差。此外GMM模型效果优于SVM,SVM训练集准确率为1,而测试集准确率较低,模型泛化能力差,GMM泛化能力更好。

转存失败重新上传取消

写在后面

对应的代码在Copy2000/DSP_experiment: 学校实验 (github.com),写的很乱,就这样,然后视频由于是放在github的服务器,可能会很慢。

还有两篇小论文:

  • 基于频域分析的语音识别.pdf (copy2000.github.io)
  • 基于时域分析的语音识别.pdf (copy2000.github.io)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/654331.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Web网页制作期末复习(1)——HTML5介绍、HTML5的DOCTYPE声明、HTML基本骨架、标题标签、段落 换行、水平线图片图片路径、超链接

目录 HTML5介绍 HTML5的DOCTYPE声明 HTML基本骨架 标题标签 段落、换行、水平线 图片 图片路径* 超链接 HTML5介绍 HTML5是用来描述网页的一种语言,被称为超文本标记语言。用HTML5编写的文件,后缀以.html结尾 HTML是一种标记语言,标…

在提交代码时有哪些注意事项

分享 10 种适合初学者的技术,这些技术将帮助您立即编写更好的代码。因此,如果您准备好将您的编码技能提升到一个新的水平,请继续阅读! 1. 从计划开始 编写更好代码的最佳方法之一是从计划开始。在开始编码之前,请花几…

SQL详细处理流程.md

连接器:管理连接,权限验证解析器:词法以及语法分析优化器:生成执行计划,选择合适索引执行器:操作引擎获取结果存储引擎:存储数据,提供读写接口

iterm2 ssh免密码登录

不需要下载其他插件,使用脚本 目录 操作步骤如下: 实际举例如下: 1.编写sh文件 2.编辑sh文件 3.进入iterm2,打开profiles,edit profiles 4.验证 扩展 expect脚本 操作步骤如下: 在你电脑你想编辑的…

阿里云国际站:阿里云服务器安全性如何?有哪些安全措施和防护机制?

阿里云国际站:阿里云服务器安全性如何?有哪些安全措施和防护机制?   阿里云服务器安全性简介   作为全球领先的云计算服务提供商,阿里云始终注重保障用户数据安全。在面对各种网络攻击和安全威胁时,阿里云积极构建…

mysqldump 数据备份

使用实例 使用方法 Usage: mysqldump [OPTIONS] database [tables] OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3…] OR mysqldump [OPTIONS] --all-databases [OPTIONS] For more options, use mysqldump --help OPTION通常是:-u 用户名 -p …

【计算机网络自顶向下】计算机网络从0到1全篇总结-2023电子科技大学期末考试

相关术语 URI:Uniform Resource Identifier 统一资源标识符,指的是一个资源 URL:Uniform Resource Location 统一资源定位符,URI的子集,用地址定为的方式指定一个资源 URN:Uniform Resource Name 统一资…

基于微信小程序新疆特色产品团购系统设计与实现+第四稿+文档

博主介绍:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 项目名称 基于微信小程序新疆特色产品团购系统设计与实现第四稿文档 视频演示 视频去哪了呢?_哔哩哔哩_bilibili 系统介绍 2.3.1 主要功能描述 在…

常见技术场景

常见技术场景 1.单点登录这块怎么实现的 1.1 概述 单点登录的英文名叫做:Single Sign On(简称SSO),只需要登录一次,就可以访问所有信任的应用系统 在以前的时候,一般我们就单系统,所有的功能都在同一个…

我准备蓝桥杯的这一年

我准备蓝桥杯的这一年 文章目录 我准备蓝桥杯的这一年起步和目标确定渐入佳境焦虑疲惫,一天又一天国赛我来力总结 我将我这段 流水账分为四个阶段。谨以此文,祭奠我这一年来的焦虑、白发~ ,最终也取得了预期的成绩。不知未来再看此章会作何感…

hadoop基础

FileSystem使用 核心类 org.apache.hadoop.fs.FileSystem 文件系统类 抽象类 //静态方法创建对象 public static FileSystem newInstance(URI uri,Configuration conf,String user) /*参数一 URI 分布式文件系统 HDFS的资源地址 NN地址 hdfs://linux01:8020参数二 Configu…

Unity常见框架探索-ET框架探索

简介 ET框架是类ECS的一个Unity前后端框架 论坛地址为:https://et-framework.cn Git地址为:https://github.com/egametang/ET 预备知识 Unity程序集的使用 接入流程 本文将会以7.2版本进行分析。所以直接clone github上的仓库,将工程导…

1743_MATLAB 2-D绘图小结

全部学习汇总: GreyZhang/g_matlab: MATLAB once used to be my daily tool. After many years when I go back and read my old learning notes I felt maybe I still need it in the future. So, start this repo to keep some of my old learning notes servral …

【网络协议详解】——知识点复习(期末不挂科版)

课本: 目录 🕒 1. 概述🕘 1.1 GNS3🕘 1.2 Wireshark 🕒 2. PPP协议🕒 3. VLAN技术🕒 4. STP技术🕒 5. IPV6🕒 6. 路由表🕒 7. RIP协议🕒 8. OSPF…

Jenkins pipeline 中 checkout 代码

pipeline 中 具有checkout 功能的脚本命令如下 git branch: "master", url: "https://gitee.com/liuboliu/******.git"完整的脚本命令如下 pipeline {agent anystages {stage(checkout) {steps {git branch: "master", url: "https://gite…

I2C中为什么线与?为什么要有上拉电阻?

1、为什么采用漏极开路? 首先,连接到 I2C 上的设备是开漏输出的。以漏极开漏输出(OD)为例,是指将输出级电路结构改为一个漏极开路输出的 MOS 管。这样做的好处在于: 防止短路。可以实现“线与”逻辑&#…

移动DICT项目是什么?

DICT项目 我们运营商的伙伴,很多人都知道我们的DICT,但是大家知不知道什么是DICT。你想一想,所谓的DICT,就是指的大数据技术与IT和CT的深度融合。 实际上,DICT的可以拆分成三个词, 第一个DT&#xff0c…

腾讯服务器CentOS Stream 8安装redis详情的步骤

tencent服务器安装的系统版本创建一个新的文件夹 /athena/redis mkdir /athena cd /athena mkdir redis1、切换到 “redis” 目录: cd /athena/redis2、使用 YUM 包管理器安装 GCC、C 和 Make 软件包: yum install gcc-c make -y这条命令将使用 YUM …

C++【set 和 map 学习及使用】

✨个人主页: 北 海 🎉所属专栏: C修行之路 🎃操作环境: Visual Studio 2019 版本 16.11.17 文章目录 🌇前言🏙️正文1、预备知识1.1、关联式容器1.2、键值对1.3、树型结构的关联式容器 2、set2.…

网工内推 | 网络运维专场,弹性工作,14薪

01 南凌科技股份有限公司 招聘岗位:网络运维工程师 职责描述: 1、负责及时响应客户需求、做好客户报障接收,受理与记录工作,及时做好值班记录与故障交接; 2、通过网管平台实时监控客户线路及机房设备的运行状态、性能…