语音识别中MFCC频谱和如何得到频谱图的图示讲解

2023-11-06 20:59

本文主要是介绍语音识别中MFCC频谱和如何得到频谱图的图示讲解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

关于语音识别 音乐识别中 MFCC频谱图如何得到的 最详细的视频
视频链接放在这里,求求你们愿意打开视频的话,就看一眼吧···是在b站上的 要是我入门的时候看到这个视频真的是幸福死了. 😃😃
链接: link
本来不想写关于模数转换、采样、傅立叶变换这些的,但还是记录一下吧。我是一下子get到了这个MFCC图是怎么来的,如果你已经知道了如何分帧,加窗,如何得到整个MFCC频谱图只需要直接看下面两张图,但还是建议看原视频,每一秒都是细节,都有知识点。

在这里插入图片描述

在这里插入图片描述
就是说,我们不会对整段语音信息进行傅立叶变换,所以就采用一个长度为25ms「一般使用的窗口长度,推荐在25ms-30ms」的窗口去截取语音信息,称为第一帧,间隔10ms进行第二帧的采样···这样1s的语音就切分成了100帧,然后分别对每一帧进行傅立叶变换。然后就是这一步!把这100帧的频谱放在一起,这个堆叠的方式之前一直不知道,建议看看视频。

采样

这里关于香农奈奎斯特采样定理{为了不失真地恢复模拟信号,采样频率应该大于模拟信号频谱中最高频率的2倍},所以采样频率选择我们人耳能够听到的最大频率『约20kHz』的2倍即可
在这里插入图片描述
这个采样后的转化过来的是声音的时间域表示,也称为声波图。其中横轴表示时间,纵轴表示声音的振幅或者功率
声音的区分可以看作是频率的不同,虽然振幅大小也会变化,但是本质还是不变的,但是我们从这个声波图中并不能够看出频率信息,因此就需要转换到声音的另一种表述方式,频谱图。其中横轴表示频率,纵轴表示强度。
在这里插入图片描述
从声波图到频谱图的转换就是通过傅立叶变换得到的。
「一个声音信号可以是不同频率和强度信号的叠加」

下图的横坐标表示的是频率,纵坐标表示的是频率分量的强度,强度除了可以用纵坐标表示,也可以用颜色表示,因此就有一个颜色bar
在这里插入图片描述
这样就可以把每个频率对应的强度表示出来
在这里插入图片描述
然后就得到了语谱图,这个图我们经常能够见到。

这里的横坐标表示帧号,纵坐标表示频率,颜色是表示信号的强度。
至此还未结束,上面只是得到了语谱图,我们一般使用MFCC频谱特征,其实就是多加了一些复杂的数学变换。
在这里插入图片描述
我们实际上还要对每一帧傅立叶变换后的结果进行三角滤波,再根据人耳听觉特性取对数,最后进行DCT变换「这整个过程称之为MFCC特征提取」。最终提取出来的效果是一个39维的特征向量「取一阶差分和二阶差分」,这才是我们需要训练的数据。

这个39维的也不知道是怎么算出来的🤷‍♀️🤷‍♂️
看librosa.feture.mfcc是由直接指定n_mfcc参数来弄,默认是20
那取一阶差分和二阶差分是20+19=39?
为什么不是19+18=37? 这部分我还不知道怎么在程序中体现验证?
在这里插入图片描述
看到的关于librosa常用方法的示范,写得也很清楚规范。
https://www.cnblogs.com/LXP-Never/p/10918590.htmlMFCC系数实现

这篇关于语音识别中MFCC频谱和如何得到频谱图的图示讲解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/359027

相关文章

使用Python开发一个图像标注与OCR识别工具

《使用Python开发一个图像标注与OCR识别工具》:本文主要介绍一个使用Python开发的工具,允许用户在图像上进行矩形标注,使用OCR对标注区域进行文本识别,并将结果保存为Excel文件,感兴... 目录项目简介1. 图像加载与显示2. 矩形标注3. OCR识别4. 标注的保存与加载5. 裁剪与重置图像

Java集合中的List超详细讲解

《Java集合中的List超详细讲解》本文详细介绍了Java集合框架中的List接口,包括其在集合中的位置、继承体系、常用操作和代码示例,以及不同实现类(如ArrayList、LinkedList和V... 目录一,List的继承体系二,List的常用操作及代码示例1,创建List实例2,增加元素3,访问元

Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)

《Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)》本文介绍了如何使用Python和Selenium结合ddddocr库实现图片验证码的识别和点击功能,感兴趣的朋友一起看... 目录1.获取图片2.目标识别3.背景坐标识别3.1 ddddocr3.2 打码平台4.坐标点击5.图

Python使用国内镜像加速pip安装的方法讲解

《Python使用国内镜像加速pip安装的方法讲解》在Python开发中,pip是一个非常重要的工具,用于安装和管理Python的第三方库,然而,在国内使用pip安装依赖时,往往会因为网络问题而导致速... 目录一、pip 工具简介1. 什么是 pip?2. 什么是 -i 参数?二、国内镜像源的选择三、如何

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为

Python itertools中accumulate函数用法及使用运用详细讲解

《Pythonitertools中accumulate函数用法及使用运用详细讲解》:本文主要介绍Python的itertools库中的accumulate函数,该函数可以计算累积和或通过指定函数... 目录1.1前言:1.2定义:1.3衍生用法:1.3Leetcode的实际运用:总结 1.1前言:本文将详

Redis的Zset类型及相关命令详细讲解

《Redis的Zset类型及相关命令详细讲解》:本文主要介绍Redis的Zset类型及相关命令的相关资料,有序集合Zset是一种Redis数据结构,它类似于集合Set,但每个元素都有一个关联的分数... 目录Zset简介ZADDZCARDZCOUNTZRANGEZREVRANGEZRANGEBYSCOREZ

Go中sync.Once源码的深度讲解

《Go中sync.Once源码的深度讲解》sync.Once是Go语言标准库中的一个同步原语,用于确保某个操作只执行一次,本文将从源码出发为大家详细介绍一下sync.Once的具体使用,x希望对大家有... 目录概念简单示例源码解读总结概念sync.Once是Go语言标准库中的一个同步原语,用于确保某个操

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time