PyTorch语音识别的理论基础——MFCC

在语音识别研究领域,音频特征的选择至关重要。本书大部分内容中都在使用一种非常成功的音频特征—梅尔频率倒谱系数(Mel-Frequency Cepstrum Coefficient,MFCC)。

MFCC特征的成功很大程度上得益于心理声学的研究成果,它对人的听觉机理进行了建模。研究发现,音频信号从时域信号转换为频域信号之后,可以得到各种频率分量的能量分布。心理声学的研究结果表明,人耳对于低频信号更加敏感,对于高频信号比较不敏感,具体是什么关系?

心理声学研究结果表明,在低频部分是一种线性关系,但是随着频率的升高,人耳对于频率的敏感程度呈现对数增长的态势。这意味着只从各个频率能量的分布来设计符合人的听觉习惯的音频特征是不太合理的。

MFCC是基于人耳听觉特性提出来的,它与Hz频率呈非线性对应关系。MFCC利用这种关系,计算得到Hz频谱特征,已经广泛地应用于语音识别领域。

MFCC特征提取包含两个关键步骤:

(1)转换到梅尔频率。

(2)进行倒谱分析。

下面依次进行讲解。

1. 梅尔频率

梅尔刻度是一种基于人耳对等距的音高(Pitch)变化的感官判断而定的非线性频率刻度。作为一种频率域的音频特征,离散傅里叶变换是这些特征计算的基础。一般选择快速傅里叶变换(Fast Fourier Transform,FFT)算法,其粗略的流程如图14-1所示。

图14-1  快速傅里叶变换

而梅尔刻度和频率的赫兹关系如下:

所以,如果在梅尔刻度上是均匀分度的话,赫兹之间的距离就会越来越大。梅尔刻度的滤波器组的尺度变化如图14-2所示。

图14-2  梅尔刻度的滤波器组的尺度变化

梅尔刻度的滤波器组在低频部分的分辨率高,跟人耳的听觉特性是相符的,这也是梅尔刻度的物理意义所在。这一步的含义是:首先对时域信号进行傅里叶变换,转换到频域,然后利用梅尔频率刻度的滤波器组对对应频域信号进行切分,最后每个频率段对应一个数值。

2. 倒谱分析

倒谱的含义是:对时域信号进行傅里叶变换,然后取log,再进行反傅里叶变换,如图14-3所示。倒谱可以分为复倒谱、实倒谱和功率倒谱,这里使用的是功率倒谱。倒谱分析可用于将信号分解,将两个信号的卷积转换为两个信号的相加,从而简化计算。

图14-3  倒谱分析演示

具体公式这里就不阐述了,有兴趣的读者在学习之余可以自行钻研相关内容。接下来向读者演示使用Python音频处理库librosa计算MFCC的过程,代码如下:

# 使用librosa音频处理库获取音频的梅尔频谱

wav, sr = librosa.load(data_path, sr=32000)        #sr为取样频率

# 计算音频信号的MFCC

spec_image = librosa.feature.mfcc(y=wav, sr=sr)

这里需要注意的是,sr的意思是取样频率,其作用是对输入的音频根据特定的取样频率生成对应的音频特征。

读者可以使用.wav后缀的音频进行尝试。

本文节选自《PyTorch 2.0深度学习从零开始学》,这本书内容包括PyTorch概述、开发环境搭建、基于PyTorch的MNIST分类实战、深度学习理论基础、基于PyTorch卷积层的MINIST分类实战、PyTorch数据处理与模型可视化、实战ResNet、有趣的word embedding、基于RNN的中文情感分类实战、自然语言处理的编码器、站在巨人肩膀上的预训练模型Bert、自然语言处理的解码器、基于PyTorch的强化学习实战、基于MFCC的语音唤醒实战、基于PyTorch的人脸识别实战。实战案例丰富,可带领读者快速掌握深度学习算法及其常见案例。

   

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

字符三角形-第10届蓝桥杯国赛Python真题精选

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第6讲。 字符三角形&#x…

07、SpringBoot+微信支付 -->处理超时订单(定时查询、核实微信支付平台的订单、调用微信支付平台查单接口、更新本地订单状态、记录支付日志)

目录 Native 支付处理超时订单定时的讲解需求分析代码定时任务:WxPayTask定时查询的方法:核实订单状态等操作 :WxPayServiceImpl查单接口方法:queryOrder更新本地订单状态:updateStatusByOrderNo记录支付日志&#xff…

TCP网络编程

一)TCP Socket介绍: 1)TCP和UDP有着很大的不同,TCP想要进行网络通信的话首先需要通信双方建立连接以后然后才可以进行通信,TCP进行网络编程的方式和文件中的读写字节流类似,是以字节为单位的流进行传输 2)针对于TCP的套接字来说,J…

ubuntu 火焰图脚本

环境ubuntu1804 x86_64 #!/bin/bash if [ "$2_" "_" ];thenecho "usage ./fire.sh oncpu/offcpu pid"exit fiif [ "$1_" "oncpu_" ];thensudo perf record -F 99 -p $2 -g -- sleep 10syncsudo perf script > out.pe…

144. 二叉树的前序遍历

描述 : 给你二叉树的根节点 root ,返回它节点值的 前序 遍历。 题目 : LeetCode 二叉树的前序遍历 : 144. 二叉树的前序遍历 分析 : 我们先选一个最小的子树: 先判断5节点不是null之后把5添加到集合里 , 再把5的左节点递归 , 判断7节点不是null把7添加到集合中 …

Git简介和安装

一,Git简介 Git 是一个分布式版本控制工具,通常用来对软件开发过程中的源代码文件进行管理。通过Git 仓库来存储和管理这些文件,Git 仓库分为两种: 本地仓库:开发人员自己电脑上的 Git 仓库 远程仓库:远程…

云MES优势有哪些?

云MES可以说是近几年来的行业焦点,云MES使用公共云提供商(如华为云、腾讯云、阿里云等)的全球数据中心中的广泛硬件和基础架构,在公共云中的Internet上运行,线下线上互联互通,有效帮助企业实现生产数字化智能化。 近几年来云服务…

Linux 多线程编程详解

目录 为什么要使用多线程 线程概念 线程的标识 pthread_t 线程的创建 向线程传入参数 线程的退出与回收 线程主动退出 线程被动退出 线程资源回收(阻塞方式) 线程资源回收(非阻塞方式) 为什么要使用多线程 在编写代码时,是否会遇到以下的场景会感觉到难以…

显著提升!| (WOA)融合模拟退火和自适应变异的混沌鲸鱼优化算法应用于函数寻优

鲸鱼优化算法(whale optimization algorithm,WOA)是由Mirjalili和Lewis[1]于2016年提出的一种新型群体智能优化搜索方法,它源于对自然界中座头鲸群体狩猎行为的模拟,与其它群体智能优化算法相比,WOA算法结构新颖, 控制参数少,在许多数值优化和…

在IDEA中配置Web开发环境

一、idea配置Web开发环境 第一步:下载并安装Tomcat服务器(建议放根目录,完整路径中不要出现中文) 第二步:打开IDEA,新建java项目 第三步:为项目添加Web应用 在项目上右键➡️选择“Add Framew…

在线存储系统源码 网盘网站源码 云盘系统源码

Cloudreve云盘系统源码-支持本地储存和对象储存,界面美观 云盘系统安装教程 测试环境:PHP7.1 MYSQL5.6 Apache 上传源码到根目录 安装程序: 浏览器数据 http://localhost/CloudreveInstallerlocalhost更换成你的网址 安装完毕 记住系统默认的账号密码 温馨提示:如果默认…

已解决:云原生领域的超时挂载Bug — Kubernetes深度剖析

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

线性代数(三) | 向量组的秩 线性相关无关 几何直观理解 题解应用

文章目录 1 维数?向量组的秩究竟是什么?1.1 线是一维的1.2 面是二维的1.3 体是三维的 2 线性相关、线性无关、线性表示究竟是什么?2.1 基于以上几何直观的解题角度2.2 基于方程组的解题角度 1 维数?向量组的秩究竟是什么&#xff…

10道高频Vuex面试题快问快答

※其他的快问快答,看这里! 10道高频Qiankun微前端面试题快问快答 10道高频webpack面试题快问快答 20道高频CSS面试题快问快答 20道高频JavaScript面试题快问快答 30道高频Vue面试题快问快答 面试中的快问快答 快问快答的情景在面试中非常常见。 在面试过…

[100天算法】-面试题 17.11.单词距离(day 68)

题目描述 有个内含单词的超大文本文件,给定任意两个单词,找出在这个文件中这两个单词的最短距离(相隔单词数)。如果寻找过程在这个文件中会重复多次,而每次寻找的单词不同,你能对此优化吗?示例:输入:word…

天津WEB前端培训哪家好?Web机构推荐!

05年以后,互联网已经进入了web2.0时代,同时也标志着网站的前端由此发生了翻天覆地的变化,现在市场上对WEB前端开发工程师岗位有着很大的需求,学习web前端开发的方式有很多种,对于初学者来说,选择自学还是培…

大数据毕业设计选题推荐-河长制大数据监测平台-Hadoop-Spark-Hive

✨作者主页:IT研究室✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

2023.11-9 hive数据仓库,概念,架构

目录 一.HDFS、HBase、Hive的区别 二.大数据相关软件 三. Hive 的优缺点 1)优点 2)缺点 四. Hive 和数据库比较 1)查询语言 2)数据更新 3)执行延迟 4)数据规模 五.hive架构流程 六.MetaStore元…

AI:73-结合语法知识的神经机器翻译研究

🚀 本文选自专栏:AI领域专栏 从基础到实践,深入了解算法、案例和最新趋势。无论你是初学者还是经验丰富的数据科学家,通过案例和项目实践,掌握核心概念和实用技能。每篇案例都包含代码实例,详细讲解供大家学习。 📌📌📌在这个漫长的过程,中途遇到了不少问题,但是…

企业微信开发教程一:添加企微应用流程图解以及常见问题图文说明

最近在前辈的基础上新添加了一个企微应用,过程中遇到了一些卡点,这里一一通过图片标注与注释的方式记录一下,希望能给后来人提供一些清晰明了的帮助,话不多说,大家直接看图吧。 (文中包括一些本项目独有的配…