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

语音信号处理之特征提取

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

根据提取参数的方法不同,可将语音信号分析分为时域,频域,倒频域,和其他域的分析方法。根据分析方法的不同,可将语音信号分析分为模型分析方法和非模型分析方法。

本文主要以第一种分类方法。时域分析方法简单,计算量小,物理意义明确,但由于语音信号最最重要的感知特性在功率谱中,而人耳对相位变化并不敏感,所以频域分析更为重要。

通过最基本的特征,后面针对不同的任务演变出了各种特征。
在这里插入图片描述

预处理

时域图就是语音波形,横轴时间,纵轴幅值,下是用Adobe Audition打开的音频的波形图,表示这段语音波形时采样率16000Hz,量化精度是16bit。

在这里插入图片描述

从图中可以得到各个音的起始位置,但很难看出更加有用的信息。但如果我们将其放大到100ms的场景下,可以得到下图所示。

在这里插入图片描述
可以看出在短时内波形是存在一定的周期的,不同的发音往往对应着不同的周期的变化,因此在短时域上我们可以将波形通过傅里叶变换转化为频域图,观察音频的周期特性,从而获取有用的音频特征。

额外补充(不感兴趣可跳过)
截取一段清音/s/:确实好像没有周期性规律
在这里插入图片描述
清音一般用白噪声建模:
白噪声(white noise)是指功率谱密度在整个频域内是常数的噪声。 所有频率具有相同能量密度的随机噪声称为白噪声。
在这里插入图片描述
再截取一段浊音/o/:短时内波形是存在一定的周期的
在这里插入图片描述

1. 分帧

为什么要分帧?
语音信号是非线性,非平稳,时变的随机信号。但短时内可看作是平稳时不变的,这样就有了分帧技术。

由于语音信号具有短时平稳性,我们通常对语音进行分帧加窗处理,截取短时音频片段,通常帧移的大小为5-10ms,窗长大小通常为帧移的2-3倍即20-30ms。
在这里插入图片描述
帧长设置有什么依据呢?
从宏观上看,它必须足够短来保证帧内信号是平稳时不变的。口型的变化是导致信号不平稳的原因,所以在一帧的期间内口型不能有明显变化,即一帧的长度应当小于一个音素的长度。正常语速下,音素的持续时间大约是 50~200 毫秒,所以帧长一般取为小于 50 毫秒。
从微观上来看,它又必须包括足够的振动周期,即包含若干个语音的基频,男声基频在 100 Hz左右,女声在 200Hz左右,换算成周期就是 10 ms和 5 ms,所以一般取至少 20 ms。

2. 加窗

为什么要加窗?
加窗的目的有两个:频谱泄露和栅栏效应。
即使语音短时内是准周期的,但分帧时很难保证每帧内就是完全周期的。非周期信号被截断后,经过傅里叶变换FFT,会出现原本信号并没有的频率,即多余的频率成分,这种现象叫做频谱泄露。通过加上合适的窗,可以抑制这些成分,即高次谐波,使得结果更圆滑一些。
对信号做FFT时,得到的是一系列离散的谱线,如果信号中的频率成分位于谱线之间,而不是谱线上,那么就会造成幅值和香味上的偏差,这就是栅栏效应。
理论上,这两种误差都无法消除,但可以选择适合的窗函数进行抑制。

为什么要重叠帧移?
加窗的代价是一帧信号两端的部分被削弱了,没有像中央的部分那样得到重视。弥补的办法是,帧不要背靠背地截取,而是相互重叠一部分。相邻两帧的起始位置的时间差叫做帧移。

加窗操作如下图所示:
在这里插入图片描述

一般为矩形窗或汉明窗。
定义矩形窗为w(m):
在这里插入图片描述
那么对于语音信号 x(t),其加窗分帧后第n帧语音信号 xn(m)为:
在这里插入图片描述
在该计算式中,n=0,T,2T,…,N为帧长,T为帧移长度。

加窗分帧总体:
在这里插入图片描述

时域特征

1.短时能量、短时平均幅度

第n 帧语音信号 xn(m)的短时能量En为:
在这里插入图片描述
使用幅值平方将对高幅值信号具有较大的敏感度,为了降低敏感度,定义短时平均幅度函数Mn为:
在这里插入图片描述

短时能量En和短时平均幅度函数Mn的用途:

  • 区分浊音和清音。浊音相比较于清音的En具有较大的数值,因而可用于区分浊音和清音。

  • 区分有声段和无声段,也可对声母和韵母分界,对无间隙的连字分界。
    例:语音“蓝天白云”
    在这里插入图片描述

  • 在语音识别任务中作为特征,表示能量特征和超音频信息。

2. 短时过零率

短时过零率表示一帧语音中波形信号穿过零值的次数。对于连续信号,过零意味着波形通过时间轴,而对于离散信号,过零意味着相邻采样点的符号改变。

首先定义符号函数sgn[·]为:

在这里插入图片描述
则第n帧语音信号 xn(m)的短时过零率Zn为:
在这里插入图片描述
由于短时过零率容易受到低频干扰,可设置相关门限T,将过零修改为穿过正负门限的次数,即:
在这里插入图片描述
门限的存在使得短时过零率Zn具有一定的扛干扰能力,避免随机噪声导致的虚假过零。

短时过零率的用途:

  • 浊音能量集中于3kHz内的低频率段,清音能量集中于高频率段,而短时过零率可以一定程度反映频率高低,因而浊音段相对于清音段,其短时过零率减低。

  • 将短时过零率和短时能量结合实现端点检查。短时能量适用于背景噪声较小的情况,而短时过零率适用于背景噪声较大的情况。实际中,通常结合两个参数实现语音起点和终点的判断。

语音“我回来了”
在这里插入图片描述

3.短时自相关函数

语音信号xn(m)的短时自相关函数Rn(k)为:

在这里插入图片描述

其中,若信号xn(m)具有周期性,则短时自相关函数Rn(k)也具有周期性,且两者周期相同;Rn(k)为偶函数,当k=0时,自相关函数具有最大值。

假设语音信号xn(m)的周期为T,那么短时自相关函数Rn(k)将在k=T,2T…取值时出现峰值。若要出现第一个峰值(即k=T),根据下式:

在这里插入图片描述
需要取到信号中x(m=2T的样本点,即语音帧宽至少应大于两个周期,否则第一个峰值将无法较好的显示。例语音最小基频为80Hz,最大周期为12.5ms,两倍周期为25ms,因此10kHz的采样信号的帧宽至少为250个采样点。

另一方面,考虑到语音信号的短时性,应设置较低的帧长,因此可使用修正短时自相关函数,其定义为:
在这里插入图片描述
注意:
在这里插入图片描述
相比于短时自相关函数Rn(k),在修正短时自相关函数中,第一项xn(m)与Rn(k)中的xn(m)相同,而第二项x’n(m)与Rn(k)中的xn(m)相比,差异在于额外向后包括了k个样本点。

在严格定义中,修正短时自相关函数是一个互相关函数,其不满足自相关函数的性质(偶函数性),但其仍在周期整数倍上具有峰值。

短时自相关函数的用途:

  • 浊音的自相关函数具有周期性,而清音的自相关函数类似于高频白噪声,没有周期性。
  • 根据自相关函数的第一个峰值的位置,估算浊音的基音频率。

4.短时平均幅度差函数

短时自相关函数使用大量乘法运算,计算时间较长,短时平均幅度差Fn(k)使用减法代替了乘法,大大减少了运算量,大量运用于实时语音处理方案上,其定义为:
在这里插入图片描述
对于周期为T的语音信号,短时平均幅度差Fn(k)在k=T,2T…等取值上具有周期性的极小值。类似的,修正短时平均幅度差为:

在这里插入图片描述
短时平均幅度差Fn(k)和Rn(k)具有数值关系:
在这里插入图片描述
其中,β(k)对不同的语音段,其数值在0.6-1.0之间变化。

短时平均幅度差的用途:

  • 基音周期的检测,该方法比短时自相关方法的计算更为简单。

频域特征

1.短时傅里叶变换

短时傅里叶变换(STFT)是最经典的时频域分析方法。所谓短时傅里叶变换,顾名思义,是对短时的信号做傅里叶变化。由于语音波形只有在短时域上才呈现一定周期性,因此使用的短时傅里叶变换可以更为准确的观察语音在频域上的变化。傅里叶变化实现的示意图如下:
在这里插入图片描述
一般实现都用快速傅里叶变化FFT。
这里音频经过快速傅里叶变换返回的是复数,其中实部表示的频率的振幅,虚部表示的是频率的相位。
包含FFT函数的库有很多,简单列举几个:

import librosa
import torch
import scipyx_stft = librosa.stft(wav, n_fft=fft_size, hop_length=hop_size,win_length=win_length)
x_stft = torch.stft(wav, n_fft=fft_size, hop_length=hop_size, win_length=win_size)
x_stft = scipy.fftpack.fft(wav)

2.语谱图

也叫声谱图,就是声音的可视化图。先将语音信号作FFT,然后以横轴为时间,纵轴为频率,用颜色表示幅值即可绘制出语谱图。在一幅图中表示信号的频率、幅度随时间的变化,故也称“时频图”。

在这里插入图片描述
详细原理看我博客:声谱图原理

3. 短时功率谱密度

信号经过FFT得到了频谱,而要反映信号的功率就要求信号的功率谱密度PSD。
功率谱定义:
在这里插入图片描述
可见对于有限的信号,功率谱之所以可以估计,是基于两点假设:1)信号平稳; 2)随机信号具有遍历性。
相关函数与功率谱密度是互为傅里叶变换。

倒频谱域

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python实验六 语音信号处理

目录 实验目的: 实验原理: 实验准备: 实验步骤与内容: 参考代码: 实验目的: 依托语音信号处理领域的声学特征提取任务,学习常用的语音信号处理工具,实现对语音数据的预处理和常…

【实验】语音识别

为学校数字信号处理实验总结和归纳; 语音识别 题目及相关要求在here. 数据预处理 大致步骤: 获取原始音频 检测 分帧 加窗 特征提取 端点检测 端点检测参数指标相对值初始短时能量高门限50初始短时能量低门限10初始短时过零率高门限10初始短时过零率低…

QMT量化交易软件使用攻略(四)-策略回测

对某一策略编译成功后,点击回测,可以通过日志输出查看模型基于历史行情数据回测情况和表现。 在回测之前,需要设置好策略回测运行的主图品种和周期,以及相关的回测参数。回测主图和周期可以 在策略编辑器-基本信息中进行设置&…

量化交易主要有哪些经典的策略?

一、交易策略 一个完整的交易策略一般包括交易标的的选择,进出场时机的选择,仓位和资金管理等几个方面。 按照人的主观决断和计算机算法执行在策略各方面的决策中的参与程度的不同,可以将交易策略分为主观策略和量化策略。 二、主观策略 主…

量化策略——准备3 数据、Backtrader回测框架与quantstats评价指标

我们一般使用AKShare这个库来获取股票数据或策略中用得到的数据: AKShare github主页:https://github.com/akfamily/akshare 使用Backtrader框架作为回测的框架: Backtrader github主页:https://github.com/mementum/backtrader …

红橙Darren视频笔记 换肤框架4 换肤的功能完善 内存泄漏分析

上一篇完成了换肤框架的基本搭建,这一次 我们继续补完上一次遗留的一些可以完善的部分 1.完善换肤 1.1退出后再进入应用 不会丢失上一次保存的皮肤 基本原理:将上一次切换的皮肤path保存在SharedPreference中,下一次进入应用读取该数值 同时…

红橙Darren视频笔记 热更新 bsdiff bspatch 在Android设备上的应用 架构篇1完结篇

概述 当时红橙的视频讲解就差不多90分钟,但是真正自己做出来热更新的demo还是花了八九个晚上,期间遇到各种各样的问题,什么叫台上一分钟 台下十年功是深有体会了。 本节会涉及一部分NDK的知识 推荐阅读Android官方的NDK简介 https://develope…

飞机大战学习心得(Dev-C++)

在c语言中,我们要用代码来做游戏就必须得去实现代码与图形界面接口的互联,也就是要通过按键的输入与输出来控制游戏的进行,所以以下几个头文件是必不可少的 stdio函数就不用我多说了。 windows.h函数可以获得程序的权柄,涉及到了Windows内核…

网易传媒签约法国队、阿根廷队 世界杯独家内容盛宴即将开启

NEW 关注Tech逆向思维视频号 最新视频→【耗资一百亿美元的韦伯望远镜到底观测什么?】 2022年卡塔尔世界杯进入开幕倒计时。7月14日、15日,网易传媒相继宣布与顶级夺冠热门球队法国队、阿根廷队签约,成为两支队伍的中国独家网络媒体合作伙伴&…

连续两届世界杯与冠军同行 网易传媒创造内容赛道卫冕传奇

2022年12月19日凌晨,阿根廷队战胜法国队,夺得了卡塔尔世界杯冠军,如愿捧回了队史上第三座大力神杯,梅西也以最完美的方式完成了他的世界杯谢幕战,成就球王传奇。 对内容公司来说,世界杯是专业内容、创意灵感…

java 上传Excel文件 使用easyExcel读取文件内容

记录Java接口上传Excel文件,及使用阿里的easyExcel读取excel文件内容,进行内容校验的过程。文中贴出代码是精简后代码,仅供参考。 引入依赖 在pom.xml中引入easyExcel需要的依赖,具体参考官网:EasyExcel文档 上传文…

使用TDM-GCC(mingw)搭建EasyX图形库开发环境

首先去EasyX官网:EasyX Graphics Library for C 然后看这个文章只把 EasyX 拷贝进项目里,方便发给没有安装 EasyX 的人编译(以 MinGW 为例) - CodeBus 请使用TDM-GCC进行编译,其他mingw(GNU)编译器可能有问题。 在 …

SpringBoot项目使用EasyExcel读取上传Excel

SpringBoot项目使用EasyExcel读取上传Excel 1、EasyExcel简介 EasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目。在尽可能节约内存的情况下支持读写百M的Excel。 EasyExcel读取Excel的解析原理: 2、导入相应的依赖文件 <dependency><groupId>com.a…

EasyV数据可视化|精选2022多行业可视化作品合集,看这篇就够了

​​时光荏苒 2022进度条■■■■■■■■□□ 80% 又是一年金秋时节&#xff0c;又是一年硕果累累&#xff0c;在这丰收的时节里&#xff0c;工作也陆续到了冲刺的阶段&#xff0c;准备开干的你&#xff0c;是否有这些疑惑 想要的效果构思不出来&#xff0c;需要点小灵感&am…

英文Essay各部分的写作攻略

以下是英文Essay各部分的写作攻略&#xff1a; 引言部分&#xff1a;在引言中&#xff0c;应该清晰明了地陈述你的主题和目的&#xff0c;以及你将要探讨的问题和论点。你可以使用一个有趣的事实、例子、名言、问题或者比喻来引起读者的兴趣。同时&#xff0c;你也可以在引言中…

从头到尾写SQL(二)

二 数据表的创建和管理 数据库是我们用的别人的。。数据表就该我们自己创建了吧。。 1.数据基本类型 建表的时候&#xff0c;需要我们确定好这个表有多少字段&#xff0c;这些字段又都是什么类型的(其实创建完以后这些东西也能改)。那么数据库接纳的数据类型有哪些呢&#…

暑假用chatgpt肝了一篇顶会...

小时候特别羡慕大雄&#xff0c;因为他有可以帮他写作业的机器猫小叮当。 熬夜读论文&#xff0c;却无法得出一个好的idea&#xff0c;深夜薅头发苦恼的时候&#xff0c;就会想如果有一个机器人&#xff0c;给出一串指令就能马上生成一篇质量上佳的论文就好了。 现在&#xff0…

Unity Open Day 北京站-技术专场:生成式AI技术助力Unity创作

【获取 2023 Unity Open Day 北京站演讲 PPT】 伴随Unity中国版引擎的布局以及AI技术的爆发式发展&#xff0c;ChatGPT、StableDiffusion等生成式AI技术受到广大Unity创作者的关注。Unity已经在AI领域探索多年&#xff0c;一直致力于利用人工智能技术以及工具&#xff0c;帮助创…

3D引擎龙头Unity:元宇宙和AI活跃玩家

Unity是用于创建和操作交互式实时3D内容的世界领先平台。凭借灵活的编辑器、友好的开发环境、丰富的工具套件&#xff0c;Unity吸引了大量开发者&#xff0c;全球排名前1000的移动游戏70%以上使用了Unity的创作和运营解决方案&#xff0c;如今&#xff0c;Unity引擎在工业场景、…

城市的 “数字生命” 是怎么被赋予的?|场景创新公司是这样开会的

ChatGPT 为我们带来了巨大便利的同时&#xff0c;也让更多人茫然、焦虑甚至恐惧。对于这一重塑我们生活的技术&#xff0c;每个渺小的个体或许都在心里有过类似的疑问&#xff1a;我&#xff0c;还能做什么&#xff1f; 当体力劳动、内容生产都能够以技术的方式进行翻天覆地的变…