小词汇量语音识别(约20字)

Kar*_*zki 5 c++ speech-recognition fft speech-to-text hidden-markov-models

我目前正在为我的大学做一个项目。任务是编写语音识别系统,该系统将在后台运行在手机上,等待一些命令(例如 call 0 123 ...)。

这是 2 个月的项目,所以它不必非常准确。可接受的噪音量可能很小,并且单词将被片刻的沉默隔开。

我目前正在加载以 RAW 16 位 PCM 格式编码的示例字。将其拆分为块(每秒约 50 个)并在每个块上运行 FFT 以获得频谱。

需要解决的问题是:1)通过较长的录音并将其拆分为单词。2)找到最匹配的词

1)我正在考虑只检查一个接一个的块,如果我遇到几个具有更高人类语音频率的块,则认为该词已经开始。无论如何,我正在寻找可能对此有所帮助的资源。

2)这个接缝有点硬。是否有必要将 HMM 用于这样的系统,或者假设词汇量如此之小(20 个单词),是否有更简单的方法?

编辑:该项目的重点是我自己编写系统,所以我不能使用像 Sphinx 或 HTK 这样的现成库。

问候, 卡罗尔

Kar*_*zki 2

如果将来有人有同样的问题。寻找2个主要关键词:

MFCC -梅尔频率倒谱系数,用于计算每个单词模板的一系列系数

DTW - 将捕获的单词与模板相匹配可以在维基百科上找到足够好的 DTW 描述

这种方法足够好,在 20 个单词词典上的准确率约为 80%,并在课堂上进行了良好的演示。