【问题标题】:Configuring the length of utterance and pauses in Android's speech recognizer在 Android 的语音识别器中配置话语的长度和停顿
【发布时间】:2013-10-11 00:01:51
【问题描述】:

我有 android 的 Speech To Text API 可以对手机说话并将其转换为文本。默认情况下,如果一个人停止对着麦克风讲话,API 会假定用户已完成讲话并从输入语音中返回文本。

对于我的应用程序,用户可能在她的连续句子之间有很长时间的停顿。我如何配置 Android 的语音到文本 API 以仅在我要求时才考虑语音的结尾,而不是在说话者在句子之间稍作停顿时才这样做?谢谢!

这是我当前的实现,只要用户在句子之间稍作停顿,它就会将语音转换为文本:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    switch (requestCode) {
    case RESULT_SPEECH: {
        if (resultCode == RESULT_OK && null != data) {

            ArrayList<String> text = data
                    .getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);

            txtText.setText(text.get(0));
        }
        break;
    }

    }
}

【问题讨论】:

标签: android speech-recognition speech-to-text


【解决方案1】:

API 有 3 个额外的功能

但请注意,API 还说“根据识别器的实现,这些值可能没有效果”,因此您只需使用您正在使用的实现进行测试,看看它们是否有任何效果。 (我自己没有做过这个测试,所以如果你在这个答案中添加评论来报告你的测试结果,那就太好了。)

【讨论】:

    【解决方案2】:

    在 Android 4.1 之前(或 Google Search/Now 应用的用户),这将适用于您:

    int someValue = 5;
    intent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS, Long.valueOf(someValue * 1000L));
    

    不幸的是,后来的版本不再对这个参数做出反应,非常遗憾,因为它使冗长的笔记或电子邮件撰写变得不可能......

    我已将这个问题提请他们注意。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多