在Android'中配置说话和暂停的长度;语音识别器
我有android的语音到文本API,可以与手机对话并将其转换为文本。默认情况下,如果用户停止与麦克风通话,API将假定用户已结束通话,并返回输入语音中的文本 对于我的应用程序,用户可能在连续的语句之间有很长的停顿。我如何配置Android的语音到文本API,只考虑当我要求它的结束,而不是当说话者在句子之间稍作停顿的时候就这么做?谢谢 下面是我当前的实现,只要用户在句子之间稍作停顿,就可以将语音转换为文本:在Android'中配置说话和暂停的长度;语音识别器,android,speech-recognition,speech-to-text,Android,Speech Recognition,Speech To Text,我有android的语音到文本API,可以与手机对话并将其转换为文本。默认情况下,如果用户停止与麦克风通话,API将假定用户已结束通话,并返回输入语音中的文本 对于我的应用程序,用户可能在连续的语句之间有很长的停顿。我如何配置Android的语音到文本API,只考虑当我要求它的结束,而不是当说话者在句子之间稍作停顿的时候就这么做?谢谢 下面是我当前的实现,只要用户在句子之间稍作停顿,就可以将语音转换为文本: @Override protected void onActivityResult(in
@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;
}
}
}
@覆盖
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
super.onActivityResult(请求代码、结果代码、数据);
开关(请求代码){
个案结果(演讲):{
if(resultCode==RESULT\u OK&&null!=数据){
ArrayList文本=数据
.getStringArrayListExtra(识别器意图.额外结果);
setText(text.get(0));
}
打破
}
}
}
API为此提供了3个额外功能
int someValue = 5;
intent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS, Long.valueOf(someValue * 1000L));
不幸的是,后来的版本不再对这个参数做出反应,这是一个巨大的耻辱,因为它使冗长的笔记或电子邮件写作成为不可能
我已提请他们注意该问题。可能重复的问题请不要结束此问题。它显然不同于,而且写得更好。