Android SpeechRecognizer准确性差

时间:2014-02-09 22:28:22

标签: android

我在一个Activity中使用Native SpeechRecognizer服务,它“有效”但我有一些严重的问题。

返回的“发送到文本的语音”非常令人震惊,非常非常糟糕,在应用程序中肯定无法使用(通过onResults回调)。有时结果是如此偏离我怀疑有一个故障的麦克风,但它发生在许多设备上。

我所需的词汇量只有16个字。是否有更有效的方法来实现这种有限词汇表的准确性,可能是第三方API?

真的需要这个工作,如果申请要成功,因为通过触摸屏输入对我们的要求来说太慢了。

App使用Android 4.4 / Scala / Java / Some C Algs with NDK。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

不幸的是,您无法控制Google语音识别库,但您可以实现更可自定义的库,如PocketSphinx,也可以尝试对结果进行进一步分析。例如,我使用双音乐库来检查识别的单词是否听起来像您希望听到的那样。

答案 1 :(得分:0)

通常,onResults()中的结果有很多候选对象。您可以将每个候选人与您的目标词汇进行比较,而不仅仅是选择第一个。这应该提高命中率。您还可以设置候选者的数量,例如intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS,5);。 as the Android documents described

        @Override
    public void onResults(Bundle results) {
        for (String res : resList) {
            //compare every "String res" with your target vocabulary, instead 
            //of just choose first one.
        }
    }