我有 android 的语音转文本 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;
}
}
}
最佳答案
API 有 3 个额外功能
- EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS
- EXTRA_SPEECH_INPUT_MINIMUM_LENGTH_MILLIS
- EXTRA_SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS
但请注意,API 还表示“根据识别器的实现,这些值可能没有效果”,因此您只需使用您正在使用的实现进行测试它们是否有任何效果。 (我自己没有做过这个测试,所以如果您对此答案添加评论以报告您的测试结果,那就太好了。)
关于android - 配置 Android 语音识别器中的话语长度和停顿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19308184/