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

Speech recognition 如何在帧上分割语音数据并计算MFCC,speech-recognition,speech-to-text,speech,cmusphinx,Speech Recognition,Speech To Text,Speech,Cmusphinx,我了解创建自动语音识别引擎的基本步骤。然而,我需要一个关于如何分割的清晰的概念,以及什么是帧和样本。我会把我知道的写下来,希望答案能在我错的地方纠正我,并引导我更进一步 据我所知,语音识别的基本步骤是: (我假设输入数据是wav/ogg(或某种音频)文件) 预加重语音信号:即,应用一个滤波器,将重点放在高频信号上。可能类似于:y[n]=x[n]-0.95x[n-1] 查找话语开始的时间并调整片段大小。(可与步骤1互换) 将片段分割成更小的时间帧,每个片段的长度约为30毫秒。此外,每个段将有大约2

我了解创建自动语音识别引擎的基本步骤。然而,我需要一个关于如何分割的清晰的概念,以及什么是帧和样本。我会把我知道的写下来,希望答案能在我错的地方纠正我,并引导我更进一步

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

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

  • 预加重语音信号:即,应用一个滤波器,将重点放在高频信号上。可能类似于:y[n]=x[n]-0.95x[n-1]
  • 查找话语开始的时间并调整片段大小。(可与步骤1互换)
  • 将片段分割成更小的时间帧,每个片段的长度约为30毫秒。此外,每个段将有大约256帧,两个段将有100帧的间隔?(即30*100/256毫秒?)
  • 将汉明窗口应用于每个帧(段的1/256)?结果是一组信号帧
  • 快速傅里叶变换X(t)表示的每帧信号
  • Mel滤波器组处理:(尚未详细说明)
  • 离散余弦变换:(还没有详细讨论过——但我知道这会给我一组MFCC,也叫每个输入话语的声学向量
  • Delta能量和Delta谱:我知道这是用来计算mfcc的Delta和double Delta系数的,不多
  • 在此之后,我认为我需要使用HMM或ANN将Mel频率倒谱系数(增量和双增量)分类到相应的音素,并进行分析,以将音素与单词匹配,并分别将单词与句子匹配
  • 虽然这些对我来说很清楚,但我不知道步骤3是否正确。如果正确,在接下来的步骤3中,我是否将其应用于每个帧?而且,在步骤6之后,我认为每个帧都有自己的MFCC集,对吗

    提前谢谢你

    将剪辑分割成更小的时间帧,每个片段的长度约为30秒。此外,每个片段将有大约256帧,两个片段的间隔为100帧?(即30*100/256毫秒?)

    不是帧,而是样本。在8khz采样率下,每帧30ms的采样率为30/1000*8000=240个样本。帧重叠,帧之间的偏移为10ms或80个样本。图中显示:

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

    如果正确,在下面的步骤3中,我是否将其应用于每个帧

    另外,在第6步之后,我认为每个帧都有自己的MFCC集,对吗


    是。

    如何从.wav/.mp4文件构造mfcc?@kRazzyR不知道如何在评论中回答这个问题,但你需要阅读音频文件(如果需要,先解压缩)作为一个时间序列。然后大致应用本问答中所述的步骤。好的,我知道了。有一个名为librosa的python包。我能够使用import librosa y,sr=librosa.load('./data/tring/abcd.wav')mfcc=librosa.feature.mfcc(y=y,sr=sr)生成mfcc