gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 18:35:59 25 4
gpt4 key购买 nike

我了解创建自动语音识别引擎的基本步骤。但是,我需要更清楚地了解如何进行分割以及帧和样本是什么。我会写下我所知道的,并希望回答者在我错的地方纠正我并进一步指导我。

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

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

  • 预强调语音信号:即应用一个滤波器,将重点放在高频信号上。可能类似于:y[n] = x[n] - 0.95 x[n-1]
  • 找出话语开始的时间并调整剪辑的大小。 (可与步骤 1 互换)
  • 将剪辑分割成更小的时间段,每个段长约 30 毫秒。此外,每个段将有大约 256 帧,两个段将有 100 帧的分隔? (即,30*100/256 毫秒?)
  • 将汉明窗应用于每一帧(段的 1/256)?结果是一组信号帧。
  • 快速傅立叶变换X(t)表示的每帧信号
  • Mel 滤波器组处理:(尚未详细介绍)
  • 离散余弦变换:(尚未详细介绍 - 但知道这会给我一组 MFCC,也称为每个输入话语的声学向量。
  • Delta Energy和Delta Spectrum:我知道这个是用来计算MFCC的delta和double delta系数的,不多。
  • 在此之后,我认为我需要使用 HMM 或 ANN 将 Mel 频率倒谱系数(delta 和 double delta)分类为相应的音素,并进行分析以将音素与单词和单词分别与句子进行匹配。

  • 尽管这些对我来说很清楚,但我对第 3 步是否正确感到困惑。如果正确,在以下 3 的步骤中,我是否将其应用于每一帧?另外,在第 6 步之后,我认为每个帧都有自己的 MFCC 集,对吗?

    先感谢您!

    最佳答案

    Segment the clip into smaller time frames, each segment being like 30msecs long. Further, Each segment will have about 256 Frames and two segments will have a seperation of 100 Frames? (i.e., 30*100/256 msec ?)



    不是帧,而是样本。 8khz 采样率下 30ms 的每帧为 30/1000 * 8000 = 240 个样本。帧是重叠的,帧之间的移动是 10 毫秒或 80 个样本。这是它在图片上的样子:

    Signal split on frames

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

    If it is correct, in the steps following 3, do I apply that to each frame?



    是的

    Also, after step 6, I think that each frame has their own set of MFCC, am I right.



    是的。

    关于speech-recognition - 如何在帧上分割语音数据并计算 MFCC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34672182/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com