目录

数字信号处理基础

基础知识

傅里叶分析

常用特征提取

特征提取流程

Fbank

MFCC


数字信号处理基础

基础知识

模拟信号到数字信号转化(ADC):在科学和工程中,遇到的大多数信号都是连续的模拟信号,而计算机只能处理离散的信号,因此,必须对这些连续的模拟信号进行转化,通过采样和量化,转化成数字信号。

以正弦波为例:有为信号本身的频率,为时间,对该正弦波进行采样时,每隔秒进行一次采样,可以得到采样后的离散信号为为采样周期,为采样率,n为离散证书序列。

频率混叠:不同频率的正弦波经过采样后可能出现完全相同的离散信号,这种现象就是频率混叠。

奈奎斯特采样定律:采样频率大于信号中最大频率的两倍,即在原始信号的一个周期内,至少要次采样两个点,才能有效杜绝频率混叠问题。

傅里叶分析

为什么要进行离散傅里叶变换(DFT)?

DFT的作用是将时域信号变换到频域,并分析信号中的频率成分。以时域为横轴时,可以看到信号随时间变化的规律,若果将多个频率的信号叠加到一起,此时将无法分析该信号中有哪些频率成分,若以频域为横轴时,可以很容易的看到信号中有哪些频率成分。

什么信号可以进行DFT?

时域离散且周期的信号。

非周期离散信号能否进行DFT?

非周期离散信号需要进行周期延拓才可以进行DFT。即将当前信号看做整个信号的一个周期,进而进行DFT。

什么是DFT?

对一个给定长度为的时域离散信号,对应的离散频域序列为:

其中为自然对数底,为DFT的第m个输出。

根据欧拉公式,DFT的公式还可以为:

DFT的性质

性质1:对称性,对于实数信号,有

性质2:实际上表示的是“谱密度”,如果对一个幅度为A的正弦波进行N点DFT,则DFT之后,对应频率上的幅度M和A之间的关系为:

性质2:线性,如果,则对应的频域上有

性质3:时移性,对左移k个采样点,得到的,对进行DFT,有

DFT的频率轴

频率分辨率:,标识最小的频率间隔。当N越大时,频率分辨率越高,在频域上,第m个点所表示的分析频率为

快速傅里叶变换(FFT)

FFT的基本思想是把原始的N点序列,依次分解成一系列的短序列。充分利用DFT计算式中指数因子所具有的对称性质和周期性质,进而求出这些短序列相应的DFT并进行适当组合,达到删除重复计算,减少乘法和简化结构的目的。(推荐教材:Understanding DSP,第四章;数字信号处理,理论、算法与实现,第二版,清华大学出版社)

常用特征提取

Fband和MFCC特征提取流程

特征提取流程

Fbank和MFCC特征目前仍是主要使用的特征,虽然有工作尝试直接使用波形建模,但是效果并没有超越基于频域的特征。

预加重

预加重是为了提高信号高频部分的能量,高频信号在传递过程中,衰减较快,但高频部分又蕴含很多对语音识别有利的特征,因此,在特征提取部分,需要提高高频部分能量。

预加重滤波器是一个一阶高通滤波器,给定时域输入信号,预加重之后的信号为:,其中的取值一般为

加窗分帧

语音信号是一种非平稳的信号,但语音信号又有一个短时平稳的属性,在进行语音识别的时候,对于一句话,识别的过程也是以比较小的发音单元为单位进行识别,因此用滑动窗来提取短时片段。

对于采样率为16KHz的信号,帧长、帧移一般为25ms、10ms,即400和160个采样点。

分帧的过程即在时域上,用一个窗函数和原始信号进行相乘称为窗函数,常用的窗函数有矩形窗、汉明窗

加窗的过程实际是在时域上将信号截断,窗函数与信号在时域相乘,等于对于的频域表示进行卷积,矩形窗主瓣窄,但是旁瓣大,将其与原始信号的频域标识进行卷积,就会导致频率泄露。

傅里叶变换

将上一步分帧的语音帧,由时域变换到频域,去DFT系数的模,得到谱特征。

梅尔滤波器组合对数操作

梅尔滤波器组是一种符合人耳听觉的一种滤波器组。DFT得到了每个频带上信号的能量,但是人耳对频率的感知不是等间隔的,近似与对于函数。

将线性频率转变到梅尔频率,梅尔频率和线性频率的转换关系:

梅尔三角滤波器组可以根据起始频率、中间频率和截止频率确定各滤波器的系数。

梅尔滤波器组设计:

  • 确定滤波器组个数P
  • 根据采样率,DFT点数N,滤波器个数P,在梅尔域上等间隔的产生每个滤波器的起始频率、中间频率和截止频率。上一个滤波器的中间品率为下一个滤波器的起始频率。
  • 将梅尔域上每个三角滤波器的起始、中间、截止频率转换线性频率域,并对DFT之后的谱特征进行滤波,得到P个滤波器组能量,进行log操作,得到Fbank特征。

MFCC特征在Fbank特征基础上继续进行IDFT变换等操作。

Fbank滤波器组公式:

m表示第m个滤波器组,k表示第k个频率点,f(m)表示第m个滤波器组的起始频率对应的索引值。

倒谱分析

动态特征计算

一阶差分,类比速度,最简单的为

二阶差分,类比加速度,最简单的为

能量计算

最简单的为:

Fbank

Fbank特征一般用于DNN训练。

MFCC

一般常用的MFCC特征为39维,包括:

  • 12维原始MFCC
  • 12维
  • 12维
  • 1维能量
  • 1维能量
  • 1维能量

MFCC特征一般用于对角GMM训练,各维度之间相关性小。

本节实践见:语音识别入门第二节:语音信号处理及特征提取(实战篇)_安静_xju的博客-CSDN博客

语音识别入门第二节:语音信号处理及特征提取相关推荐

  1. (超详细)语音信号处理之特征提取

    语音信号处理之特征提取 语音信号处理之特征提取要对语音信号进行分析,首先要分析并提取出可表示该语音本质的特征参数.有了特征参数才能利用这些特征参数进行有效的处理. 根据提取参数的方法不同,可将语音信号 ...

  2. 语音识别入门第一节:语音识别概述

    目录 语音识别的定义 语音识别的重要性 语音交互 语音识别的挑战性 语音识别的发展历史 语音识别的深度学习时代 现代语音识别框架 语料库与工具包 语音识别的定义 语音识别:Automatic Spee ...

  3. 语音信号处理入门系列(1)—— 语音信号处理概念

    文章目录 1.语音交互 2. 复杂的声学环境 2.1 声学回声消除 2.2 解混响 2.3 语音分离 2.4 波束形成 2.5 噪声抑制 2.6幅度控制 2.7 前端信号处理的技术路线 3. 参考 4 ...

  4. ASP.NET MVC3 快速入门--第二节 添加一个控制器

    MVC的全称为model-view-controller(模型-视图-控制器).MVC是一种开发应用程序的模式,这个模式已经具有了很好的框架架构,并且十分容易维护.使用MVC开发出来的应用程序一般包括 ...

  5. msp432快速入门第二节之sdk的详解

    SDK详解 (一) 目的是快速上手这款单片机,所以一些对于新手不友好的东西我都不会介绍,简略说明就略过. TI的SDK安装后如此: (1).metadata没用,似乎是安装后的遗留产品,好让CCS ( ...

  6. java入门—第二节(1)(数据类型)

    数据类型 一.标识符 1.标识符 标识符是编程时使用的名字:Java对包.类.接口.方法.变量.常量(不包括项目名)等命名时使用的字符序列称为标识符.     Java标识符有如下命名规则:     ...

  7. git 入门第二节 本地和远程仓库链接

    第一步 去远程git仓库上找到仓库路径复制下来 第二步 在git里输入命令符 git clone 路径 这样 远程文件就添加到了你git找到的目录里  从远端-本地 第三步cd 回到你要上传的目录 把 ...

  8. SAS小白入门第二节:SAS数据类型和格式化(输入和输出)

    数据类型 在其他编程语言中,有各种各样的数据类型,但是总体上,可大致分为:数值型,字符型和日期型,而SAS中的数据类型,只有2中数据类型:字符型和数值型.在这里,你会发现,日期型的去哪了?在SAS程序 ...

  9. Python入门 第二节

    1 模块初识 Python的有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有相应的Python库支持我们.先来象征性的学2个简单的,以sys模块和os模块为例: 2 Python数据类型 ...

最新文章

  1. Android OpenGL射线拾取手势旋转(二)
  2. 重庆理工大学c语言程序实验报告,重庆理工大学-C语言程序实验报告.doc
  3. Tensorflow 2.0的这些新设计,你适应好了吗?
  4. 那些藏在你键盘里的emoji,背后到底有着怎样的故事?
  5. 南大cssci期刊目录_重磅!最新版CSSCI来源期刊目录(20192020)及增减变化!【南大核心】...
  6. MATLAB slider中的数值,在微信小程序中如何使用slider设置数据值
  7. LeetCode 473. 火柴拼正方形(回溯)
  8. Android 呼吸灯流程分析
  9. 10 SystemVerilog语言编写SPI发送
  10. 吴恩达机器学习(八)偏差与方差
  11. swipe.js文档及用法
  12. 上海市青少年算法2022年6月月赛(丙组)
  13. 用TFmini-Plus实现人流、身高测量
  14. oracle 范鑫_快速理解数据库中的索引(Indexes in Database)
  15. 票啦啦--手机购电影票
  16. new和malloc区别
  17. vim编辑器如何退出
  18. px4官网调参指南 多旋翼无人机PID调参指南
  19. 6-2 读文章(*) (10分)
  20. java ee jar_javaee.jar下载

热门文章

  1. AD-PCB设计流程(查漏补缺)
  2. Linux中 vim 实现代码补全
  3. lenovo L480 进入bios_B20A-BTC主板魔BIOS安装I5 94OOF CPU教程
  4. Python利用meteinfo来计算后向轨迹
  5. Jsp+Servlet基础
  6. Unity中获取字符串长度、Unicode字符数量和编码ASCII,UTF,GBK的区别
  7. Apache服务器安装教程
  8. java中PreparedStatement和Statement详细讲解
  9. chromeOS创建多个Crostini容器
  10. 零基础学C++——黑马程序员课程笔记(C++基础语法入门篇)