Pocketsphinx setKeywordThreshold()问题

时间:2014-10-30 05:27:04

标签: cmusphinx pocketsphinx-android

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

  1. setKeywordThreshold(1e-5f)方法的作用(使用)是什么。该方法允许的最小值和最大值是多少。

  2. 我想支持不同的语言,并在此链接上找到某些语言的内置声学模型http://sourceforge.net/projects/cmusphinx/files/Acoustic%20and%20Language%20Models/。但由于文档滞后,我无法理解哪种模式最适合哪种语言。任何人都可以建议我为以下语言建立最好的声学模型 -

    (a)中。澳大利亚英语    (b)中。美式英语    (C)。英式英语    (d)。加拿大英语    (E)。欧洲英语    (F)。印度英语    (G)。爱尔兰英语    (H)。新西兰英语    (一世)。南非英语    (J)。俄语    (K)。西班牙语    (1)。法国    (M)。荷兰人    (N)。德国

  3. 我只想识别每种语言中1到200的数字。最好的方法是什么?

  4. 我创建了一个digits.gram文件来识别1到99之间的数字,但它也能识别背景声音。例如,当钻孔机的任何背景声音出现时,它会将其识别为一个。只有在说出特定数字时我们才能识别数字?

  5. 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> ;
    

1 个答案:

答案 0 :(得分:0)

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

因此可以尝试:

  • 使用关键字。
  • 通过应由解码器返回的置信度过滤输出。
  • 您还可以在字典中添加一些常用词作为后备,以便Pocketsphinx可以匹配它们,而不是您的“正确”列表,这也许会提高准确性。 (但它甚至可能值得,您应该尝试使用它来找到解决方案的最佳方法)