如何在应用程序中使用Sphinx3

时间:2012-01-05 13:45:57

标签: c speech-recognition cmusphinx

我使用Sphinx4一段时间非常符合我的需求。我加载一个识别器,将音频数据传递给它,并在我的应用程序中使用识别的字符串。

现在我正在开发一个C应用程序(不幸的是C ++不是一个选项),我需要类似的东西,并且认为我可以使用用C语言编写的Sphinx3。

问题在于我真的不知道它是如何在应用程序中使用的,并且没有“Hello World” - 例如Sphinx4提供它。

我已经编译并安装了sphinxbase和sphinx3,现在我可以在我的应用程序中包含sphinx头文件。

现在回答我的问题:

  • 是否有一个“简单”且记录良好的示例应用程序,它使用来自C环境的sphinx3?
  • 如何加载sphinx3引擎并使用我的二进制音频数据调用识别器?
  • OR:我是否需要启动像“sphinx3_decode”这样的应用程序并从我自己的应用程序中调用它?如果是,那是否有一个示例应用程序?

提前谢谢!

祝你好运, 罗伯特

2 个答案:

答案 0 :(得分:4)

建议使用Sphinx3。来自网站:

  

Sphinx-3是CMU的大词汇量语音识别系统。它的   我们继续维护的基于C的旧解码器。计划到了   在中使过时,它仍然是最准确的解码器   大量的词汇任务。我们正在使用它作为基线来检查   识别器准确性。此解码器仅适用于研究人员   想要评估ASR中的出血边缘方法,如树搜索方法。

如果你需要使用解码器,你应该使用pocketsphinx。您可以在网站上找到该教程和API文档

http://cmusphinx.sourceforge.net/wiki/tutorialpocketsphinx

http://cmusphinx.sourceforge.net/api/pocketsphinx/pocketsphinx_8h.html

答案 1 :(得分:-1)

我最近参与了旁遮普语言的综合项目。 以下是我们使用的一些步骤......

  • 首先,我们以16000赫兹的采样率在一个真空房间录制了旁遮普音频数据。
  • 然后我们将记录的数据用Praat软件分割成2到30秒的小wav和原始文件,并将它们保存在名为train的文件夹中。
  • 然后我们采用了Linux系统。 Ubuntu并安装了所需的插件,如autoconfig,automake等和非解除Sphinx 3以及4个软件包cmuclmtk,pocketsphinx,sphinxbase,sphinxtrain。
  • 然后根据小wav文件,我们制作了许多文件,如转录,dic,手机,填充,文件ID,ccs等。
  • 然后我们打开终端并键入 - " sphinx_fe“以检查狮身人面像是否有效。
  • 然后我们创建了一个名为“man”的文件夹,然后在终端中写下了它的路径。
  • 然后我们运行命令 - “sphinxtrain -t man setup”。通过运行此命令,将在包含文件“feat_paramas”&的“man”文件夹中形成名为“etc”的文件夹。 “配置”。
  • 根据我们的数据在配置文件中进行了更改。
  • 然后我们移动了之前创建的所有文件,即。转录,在位于man文件夹中的etc文件夹中的dic。
  • 然后我们将'lang1.sh'脚本放在etc文件夹中,剩下4个脚本放在man文件夹中。
  • 然后我们在终端中打开etc文件夹的路径并运行命令 - “lang1.sh”
  • 然后我们在终端中运行一系列命令 - “mfcgen2.sh”,然后是“verify3.sh”,然后是“hmm4.sh”,最后是“end-test.sh”以获得最终结果。

如果您已经使用过Sphinx 4,那么您可以了解上述步骤中提到的文件。我希望这会对你有所帮助。