【问题标题】:Google Glass and Speech Recognizer time delay recognizing results谷歌眼镜和语音识别器时间延迟识别结果
【发布时间】:2014-09-28 21:30:11
【问题描述】:

我正在开发一个可以通过语音执行“下一张卡片”和“上一张卡片”的 Glass 应用程序。该应用程序运行良好,除了从说出单词到执行操作的时间刚刚超过 1 秒。这是一个足够长的延迟,它是显而易见的。这不会像谷歌的“ok glass”那样快速响应。

最明显的变化似乎是实现: EXTRA_SPEECH_INPUT_MINIMUM_LENGTH_MILLIS 和/或 EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS 和/或 EXTRA_SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS

但这目前没有效果。 Android 的 RecognizerIntent 网页上也注明了所有这 3 个: “另请注意,某些值可能会导致不希望或意外的结果 - 请谨慎使用!此外,根据识别器的实现,这些值可能没有效果。”

这是如何在 main 中实现的代码:

        speechIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
    speechIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
    speechIntent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, getApplication().getPackageName());
    speechIntent.putExtra(RecognizerIntent.EXTRA_PARTIAL_RESULTS, true);
    speechIntent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_MINIMUM_LENGTH_MILLIS, Long.valueOf(100));
    speechIntent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS, Long.valueOf(100));
    speechIntent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS, Long.valueOf(100));

    speechRecognizer = SpeechRecognizer.createSpeechRecognizer(this);
    speechRecognizer.setRecognitionListener(this);

    if (SpeechRecognizer.isRecognitionAvailable(this)) {
        speechRecognizer.startListening(speechIntent);

        }

我尝试用 new Long() 和 100 替换 Long.valueOf()(如果由于某种原因 100 太小,我也尝试了 500 的值)。 Eclipse 的警告建议使用 Long.valueOf()。

结果在 onPartialResults 上返回,这个过程比 onResults 工作得更好,因为 onResults 等待暂停。由于测试了上面的 3 个附加功能,我在结果上返回了结果,但没有任何变化。

关于我在这里缺少什么的任何想法?如果您需要查看更多代码,请告诉我。 谢谢。

【问题讨论】:

    标签: android speech-recognition google-glass google-gdk


    【解决方案1】:

    对于这样的简短命令,您应该使用contextual voice menu 而不是语音识别器以获得更好的结果。

    您可以看到当前批准的命令列表here,但在开发过程中您可以使用任何您想要的命令(通过将开发权限添加到您的清单中)。

    如果您希望通过审核流程并在未来发布,请务必同时提交您可能需要的任何新语音命令。

    【讨论】:

    • 我在应用程序的介绍中实现了一个上下文语音菜单,它适合在那里,因为有一个关于用户可以在应用程序中去哪里的选项菜单。一旦用户进入一个部分,只说“下一个”或“后退”而不是先说“好的玻璃”会更有效,因为用户将通过多张卡片。当您说使用上下文语音菜单“以获得更好的结果”时,它仅与响应时间有关吗?可以理解的是,除了电池之外的其他方面似乎工作得很好。感谢您的快速回复。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-04
    • 1970-01-01
    • 1970-01-01
    • 2016-11-04
    • 2016-04-14
    相关资源
    最近更新 更多