IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 分帧,加窗和DFT -> 正文阅读

[人工智能]分帧,加窗和DFT

我们知道语音信号特性是随时间变化的,是一个非平稳随机过程。但是,从另一方面来看,语音虽然具有时变的性质,在短时间内其特性可以视为是稳定的。这是因为,人的发声器官的肌肉惯性,从一个状态瞬间转换到另一个状态是不可能的。在一个短时间内语音特性保持不变称为语音的短时平稳特性,贯穿于语音信号全过程的是短时分析技术。短时方法是用平稳信号的处理方法分析非平稳信号的关键,而进行短时分析的过程一般包括分帧、加窗和DFT。

Step1.?分帧


语音信号分帧的目的是把若干个语音采样点分为一帧,在这一帧内,语音信号的特性可是视为是稳定的。那么一帧应该取多长呢?首先它必须足够短来保证帧内信号是平稳的,因此一帧的长度应该小于一个音素的长度,正常语速下一个音素持续时间大约为50ms。此外,要进行傅里叶分析这一帧必须包含足够多的振动周期,男声在 100 赫兹左右,女声在 200 赫兹左右,换算成周期就是 10 ms和 5 ms。因此,一般语音分帧的长度取10~40ms左右。不同的语音帧长度对于同一个任务是有一定的影响的,下图是ASR正确率随着语音帧长度的变化趋势。可以看到随着语音帧长度增加,ASR的正确率先在增加后减少,因此对于特定的任务,选择合适的语音帧长度也很有必要。

图片

语音分帧并不是确定帧长就结束了,为了使得语音帧之间有一个平滑的过度,一般帧与帧之间有一定的重叠,相邻两帧的起始位置的时间差叫做帧移。?帧长为N帧移为m的语音分帧过程如下图所示。帧移一般为帧长的1/2,3/4;在ASR中帧长大多为25ms,帧移为10ms。

图片

同帧长一样,帧移的选择也是一门学问。选择较短的帧移可以跟踪语音信号的连续性,并且不会遗漏帧边缘处的突然变化,即有助于处理语速较快的情况;较长的帧移意味着较少的语音帧数目,这减少了后续相关处理(如解码)的计算量。下图是一个音素标注的任务,分别由人类和分别使用5ms帧移10ms帧移自动标注的结果。看到在ministre这个单词后人类结果没有/t/这个音素,而自动标注都捕获了这个音素,但是10ms帧移情况下/t/这个音素标注区域其中有一部分应该是/s/。

图片

Step2.?加窗


我们并不会直接使用语音分帧后的结果进行DFT,这会造成频谱泄露,那么什么是频谱泄露呢?广义上来说,任何其他类型的操作产生了新的频率成分,就称其为频谱泄漏。频谱泄漏使信号真实频率进行DFT操作之后,在多个频率之间扩展,这使得很难从频谱找到信号的实际频率。

图片

图片

在上图中,分别对正弦波信号取整数个周期和非整数个周期。我们发现正弦波在矩形窗口内具有整数个周期时不会发生频谱泄露,而矩形窗内具有非整数个周期时会多出其他频率的分量,因此可以推断频谱泄露一般是由信号被非周期截断产生的*。为了避免这种情况,我们引入窗函数,如下图所示。

图片

不同的窗函数对频谱泄露的缓解程度不同,其总泄漏是通过等效噪声带宽(equivalent noise bandwidth,ENBW)来衡量的。好的窗函数设计应该满足频谱的能量主要集中在主瓣,尽量使旁瓣的能量低,使得窗口内的信号近似具有周期性。但是加窗使得每一帧两端的信号变弱,为了缓解这个问题,帧与帧之间或有重叠部分,这就是上一节涉及到的帧移。

Step3. DFT


关于傅里叶变换的内容,我在这篇文章中已经讲了一些基础的内容,这里进行一些补充。我们做完DFT后。信号的频谱被限制在基频整数倍处,只能在相应离散点处看到输出,这种情况被称为栅栏效应。如下图所示,我们只能通过栅栏之间的缝隙来观察频谱,而频谱真正的峰值可能被栅栏挡住。

图片

为了缓解栅栏效应最直接的方法就是增加处理DFT信号的长度。如果不修改时域信号,那么在信号后面padding 0,增加频域抽样点数,使得谱线更密,这样也可以观察到原来看不到的频谱分量。值得注意的是,对信号进行零填充不会显示有关频谱的更多信息,而只会在不应用零填充时会发生的频率段之间进行内插,即padding 0不会增加频谱分辨率。

图片

最后,如果要从DFT处理后的结果恢复信号,在IDFT后需要做的是重叠相加,这里需要注意的是,如果你所加的窗函数在重叠部分相加为常数,那么IDFT后你就不需要再加窗函数了,如下图所示,否则需要加在DFT之前同样的窗函数(DFT前的窗函数称为分析窗,IDFT后的窗函数称为合成窗,它们一般相同)。

图片


本文相关代码在公众号语音算法组菜单栏点击Code获取。


参考文献:

[1]. 语音信号处理,胡航

[2].?https://www.zhihu.com/question/52093104

[3].?Preference for 20-40 ms window duration in speech analysis

[4]. IMPACT OF FRAME RATE ON AUTOMATIC SPEECH-TEXT ALIGNMENT FOR CORPUS-BASED PHONETIC STUDIES

[5].?https://en.wikipedia.org/wiki/Spectral_leakage

[6].https://dspillustrations.com/pages/posts/misc/spectral-leakage-zero-padding-and-frequency-resolution.html

?

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-09 10:14:30  更:2021-08-09 10:17:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 21:42:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码