当前位置:  开发笔记 > 编程语言 > 正文

如何在帧上分割语音数据并计算MFCC

如何解决《如何在帧上分割语音数据并计算MFCC》经验,为你挑选了1个好方法。

我理解创建自动语音识别引擎的基本步骤.但是,我需要清楚地了解如何完成分段以及帧和样本是什么.我会写下我所知道的并希望答案在我错误的地方纠正我并引导我进一步.

我所知道的语音识别的基本步骤是:

(我假设输入数据是wav/ogg(或某种音频)文件)

    预先强调语音信号:即,应用将强调高频信号的滤波器.可能类似于:y [n] = x [n] - 0.95 x [n-1]

    找到话语开始和调整剪辑大小的时间.(可与第1步互换)

    将剪辑分段为较小的时间帧,每个段长度为30毫秒.此外,每个分段将有大约256帧,两个分段将有100帧的分离?(即30*100/256毫秒?)

    将Hamming Window应用于每个帧(段的1/256)?结果是一组信号帧.

    快速傅立叶变换由X(t)表示的每帧的信号

    Mel Filter Bank Processing :(尚未详细说明)

    离散余弦变换:(尚未详细说明 - 但要知道这将给我一组MFCC,也称为每个输入话语的声学矢量.

    Delta Energy和Delta Spectrum:我知道这用于计算MFCC的delta和double delta系数,并不多.

    在此之后,我认为我需要使用HMM或ANN将Mel频率倒谱系数(delta和double delta)分类到相应的音素,并执行分析以将音素与单词和单词与句子匹配.

虽然这些对我来说很清楚,但如果第3步是正确的,我会感到困惑.如果正确,请在3中的步骤中将其应用于每个帧?另外,在第6步之后,我认为每一帧都有自己的MFCC,我是对的吗?

先感谢您!



1> Nikolay Shmy..:

将剪辑分段为较小的时间帧,每个段长度为30毫秒.此外,每个分段将有大约256帧,两个分段将有100帧的分离?(即30*100/256毫秒?)

不是框架,而是样品.每帧30ms,8khz采样率为30/1000*8000 = 240个样本.帧重叠,帧之间的移位是10ms或80个样本.这是它在图片上的样子:

信号在帧上分裂

这里Q是80,K是240个样本.

如果正确,请在3中的步骤中将其应用于每个帧?

此外,在第6步之后,我认为每个帧都有自己的MFCC,我是对的.

是.

推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有