语音识别中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

相关文章

RabbitMQ消费端单线程与多线程案例讲解

《RabbitMQ消费端单线程与多线程案例讲解》文章解析RabbitMQ消费端单线程与多线程处理机制,说明concurrency控制消费者数量,max-concurrency控制最大线程数,prefe... 目录 一、基础概念详细解释:举个例子:✅ 单消费者 + 单线程消费❌ 单消费者 + 多线程消费❌ 多

从入门到进阶讲解Python自动化Playwright实战指南

《从入门到进阶讲解Python自动化Playwright实战指南》Playwright是针对Python语言的纯自动化工具,它可以通过单个API自动执行Chromium,Firefox和WebKit... 目录Playwright 简介核心优势安装步骤观点与案例结合Playwright 核心功能从零开始学习

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、

Python中图片与PDF识别文本(OCR)的全面指南

《Python中图片与PDF识别文本(OCR)的全面指南》在数据爆炸时代,80%的企业数据以非结构化形式存在,其中PDF和图像是最主要的载体,本文将深入探索Python中OCR技术如何将这些数字纸张转... 目录一、OCR技术核心原理二、python图像识别四大工具库1. Pytesseract - 经典O

Python基于微信OCR引擎实现高效图片文字识别

《Python基于微信OCR引擎实现高效图片文字识别》这篇文章主要为大家详细介绍了一款基于微信OCR引擎的图片文字识别桌面应用开发全过程,可以实现从图片拖拽识别到文字提取,感兴趣的小伙伴可以跟随小编一... 目录一、项目概述1.1 开发背景1.2 技术选型1.3 核心优势二、功能详解2.1 核心功能模块2.

Java进程CPU使用率过高排查步骤详细讲解

《Java进程CPU使用率过高排查步骤详细讲解》:本文主要介绍Java进程CPU使用率过高排查的相关资料,针对Java进程CPU使用率高的问题,我们可以遵循以下步骤进行排查和优化,文中通过代码介绍... 目录前言一、初步定位问题1.1 确认进程状态1.2 确定Java进程ID1.3 快速生成线程堆栈二、分析

Python验证码识别方式(使用pytesseract库)

《Python验证码识别方式(使用pytesseract库)》:本文主要介绍Python验证码识别方式(使用pytesseract库),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录1、安装Tesseract-OCR2、在python中使用3、本地图片识别4、结合playwrigh

javascript fetch 用法讲解

《javascriptfetch用法讲解》fetch是一个现代化的JavaScriptAPI,用于发送网络请求并获取资源,它是浏览器提供的全局方法,可以替代传统的XMLHttpRequest,这篇... 目录1. 基本语法1.1 语法1.2 示例:简单 GET 请求2. Response 对象3. 配置请求

Java Stream.reduce()方法操作实际案例讲解

《JavaStream.reduce()方法操作实际案例讲解》reduce是JavaStreamAPI中的一个核心操作,用于将流中的元素组合起来产生单个结果,:本文主要介绍JavaStream.... 目录一、reduce的基本概念1. 什么是reduce操作2. reduce方法的三种形式二、reduce

CSS引入方式和选择符的讲解和运用小结

《CSS引入方式和选择符的讲解和运用小结》CSS即层叠样式表,是一种用于描述网页文档(如HTML或XML)外观和格式的样式表语言,它主要用于将网页内容的呈现(外观)和结构(内容)分离,从而实现... 目录一、前言二、css 是什么三、CSS 引入方式1、行内样式2、内部样式表3、链入外部样式表四、CSS 选