使用 python 进行音频处理

完整资料进入【数字空间】查看——搜索"writebug"

实验目的及实验内容
(本次实验所涉及并要求掌握的知识;实验内容;必要的原理分析)

实验目的:
使用 python 进行音频处理

实验内容:
学习音频相关知识点,掌握 MFCC 特征提取步骤,使用给定的 chew.wav 音频文件进行特征提取。音频文件在实验群里下载。

部署 KALDI,简要叙述部署步骤运行 yes/no 项目实例,简要解析发音词典内容,画出初步的 WFST 图(按 PPT 里图的形式)。

调整并运行 TIMIT 项目,将命令行输出的过程与 run.sh 各部分进行对应,叙述顶层脚本run.sh 的各部分功能(不需要解析各训练过程的详细原理)。

原理分析:
对 chew.wav 进行特征提取声音信号本是一维时域信号(声音信号随时间变化),我们可以通过傅里叶变换将其转换到频域上,但这样又失去了时域信息,无法看出频率分布随时间的变化。短时傅里叶(STFT)就是为了解决这个问题而发明的常用手段。

所谓的短时傅里叶变换,即把一段长信号分帧、加窗,再对每一帧做快速傅里叶变换(FFT),最后把每一帧的结果沿另一个维度堆叠起来,得到类似于一幅图的二维信号形式。

语音信号是不稳定的时变信号,但为了便于处理,我们假设在一个很短的时间内,如-40ms 内为一个稳定的系统,也就是 1 帧。但是我们不能简单平均分割语音,相邻的帧之间需要有一定的重合。我们通常以 25ms 为 1 帧,帧移为 10ms,因此 1 秒的信号会有 10 帧。

我们可以使用离散傅里叶变换(DFT)把每一帧信号变换到时域,公式是:

其中 s(n)表示时域信号;si(n)是第 i 帧的数据,其中 n 的范围是 1-400;当我们介绍 DFT的时候,Si(k)表示的是第 i 帧的第 k 个复系数。h(n)是一个 N 点的窗函数(比如 Hamming 窗),K是 DFT 的长度。有了 Si(k)我们就可以估计功率谱,Pi(k)是第 i 帧的功率谱:

这样,我们就得到了周期图的功率谱估计,即声谱图。它的横坐标是帧下标,纵坐标是不同频率。声谱图往往是很大的一张图,且依旧包含了大量无用的信息,所以我们需要通过梅尔标度滤波器组(mel-scale filter banks)将其变为梅尔频谱。在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值