C++ 小词汇量语音识别(约20个单词)

C++ 小词汇量语音识别(约20个单词),c++,fft,speech-recognition,speech-to-text,hidden-markov-models,C++,Fft,Speech Recognition,Speech To Text,Hidden Markov Models,我目前正在为我的大学做一个项目。任务是编写语音识别系统,该系统将在后台运行在手机上,等待几个命令(如.call 0 123…) 这是一个2个月的项目,所以它不必非常准确。可接受的噪音量可能很小,文字之间会有片刻的沉默 我目前正在加载以原始16位PCM格式编码的示例字。将其拆分为块(大约每秒50个),并对每个块运行FFT以获得频谱 要解决的问题是: 1) 通过较长的录音并将其拆分为文字。 2) 找到与单词最匹配的单词 1) 我在考虑一块接一块地检查,如果我遇到几个声音频率较高的块,就认为这个词已经

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

这是一个2个月的项目,所以它不必非常准确。可接受的噪音量可能很小,文字之间会有片刻的沉默

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

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

1) 我在考虑一块接一块地检查,如果我遇到几个声音频率较高的块,就认为这个词已经开始了。无论如何,我正在寻找资源,可能有助于这一点

2) 这条缝得更硬一点。对于这样的系统,有必要使用HMM吗?或者假设词汇量很小(20个单词),有更简单的方法吗

编辑: 该项目的重点是自己编写系统,因此我无法使用Sphinx或HTK等现成的库

问候,,
Karol要识别手机上的命令,可以使用Pocketsphinx。它涵盖了Android上的语音识别应用程序,可以在CMUSphinx网站上找到。

如果将来有人会有同样的问题的话。查找两个主要关键字:

MFCC-为每个单词模板计算一系列系数

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


这种方法足够好,20字字典的准确率达到80%左右,并在课堂上提供了一个很好的演示。

这:可能会对你有所帮助。更好的是,谢谢你的回答,但整个项目是关于我自己编写系统的,所以我不能使用现成的框架(至少不是为了识别)。