Pocketsphinx setKeywordThreshold()问题

问题描述 投票:4回答:1

我想为我的应用程序使用pocketsphinx离线语音识别,但其文档不清楚。如果有人可以给出以下问题的答案,那么它将真正帮助我很多。

  1. setKeywordThreshold(1e-5f)方法的作用(使用)是什么。此方法允许的最小值和最大值是多少。
  2. 我想支持不同的语言,并在此链接http://sourceforge.net/projects/cmusphinx/files/Acoustic%20and%20Language%20Models/上找到某些语言的内置声学模型。但由于文档滞后,我无法理解哪种模式最适合哪种语言。任何人都可以建议我为以下语言建立最好的声学模型 - (一个)。澳大利亚英语(b)。美式英语(三)。英国英语(d)。加拿大英语(e)。欧洲英语(f)。印度英语(g)。爱尔兰英语(h)。新西兰英语(i)。南非英语(j)。俄语(k)。西班牙语(l)。法语(m)。荷兰语(n)。德语
  3. 我只想识别每种语言中1到200的数字。做这个的最好方式是什么 ?
  4. 我创建了一个digits.gram文件来识别从1到99的数字,但它也识别背景声音。例如,当钻孔机的任何背景声音出现时,它会将其识别为一个。只有在说出特定数字时,我们才能识别数字?

digits.gram文件

#JSGF V1.0;

grammar digits;

<single> = one | two | three | four | five | six | seven | eight | nine ;
<digit> = <single> |
          zero  |
          ten   |
          eleven |
          twelve |
          thirteen |
          fourteen |
          fifteen |
          sixteen |
          seventeen |
          eighteen |
          nineteen |
          twenty |
          thirty |
          forty |
          fifty |
          sixty |
          seventy |
          eighty |
          ninety |
          twenty <single> |
          thirty <single> |
          forty <single> |
          fifty <single> |
          sixty <single> |
          seventy <single> |
          eighty <single> |
          ninety <single> ;
cmusphinx pocketsphinx-android
1个回答
0
投票

解决问题4的最佳方法是添加关键字以开始识别。当你有一个关键词,你可以建议用户知道如何使用你的系统,并在真正的命令之前说“你好,Pocketsphinx”。

所以可以尝试:

  • 使用关键字。
  • 通过应由解码器返回的置信度对输出进行过滤。
  • 此外,您可以添加一些更常见的单词作为回溯到您的字典,以便Pocketsphinx将匹配它们而不是您的“正确”列表,这可能会提高准确性。 (但它甚至值得,你应该玩它来找到解决你的场景的最佳方法)
© www.soinside.com 2019 - 2024. All rights reserved.