如何解决Android识别API中的请求代码是什么
Intent recIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
recIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
recIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE,Locale.ENGLISH);
recIntent.putExtra(RecognizerIntent.EXTRA_PROMPT,"Need to speak");
try {
startActivityForResult(intentRec,REQ_CODE);
} catch (ActivityNotFoundException a) {
Toast t = Toast.makeText(getApplicationContext(),"Opps! Your device doesn't support Speech to Text",Toast.LENGTH_SHORT);
t.show();
}
@Override
protected void onActivityResult(int requestCode,int resultCode,Intent data) {
super.onActivityResult(requestCode,resultCode,data);
switch(resultCode) {
case REQ_CODE:
if (resultCode == RESULT_OK && null != data) {
ArrayList<String> result = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
Toast.makeText(getApplicationContext(),String.valueOf(data.hasExtra(RecognizerIntent.EXTRA_RESULTS)),Toast.LENGTH_SHORT);
}
break;
}
}
我一直在关注识别 API 的教程,但我仍然没有得到请求代码是什么以及为什么代码不再工作,它没有显示任何错误,甚至没有以 false 响应我的操作 那么如何使用请求代码呢?代码没有显示任何输出。
解决方法
您需要对语音到文本进行初始设置,并且每当您尝试说话时,您都需要调用 speak 方法。 按照下面的代码:
private var mTextToSpeechListener: TextToSpeech? = null
val REQUEST_CODE_SPEECH_INPUT = 5003
/**
* Showing google speech input dialog
*/
private fun speechToTextOutput() {
val intent = Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH)
intent.putExtra(
RecognizerIntent.EXTRA_LANGUAGE_MODEL,RecognizerIntent.LANGUAGE_MODEL_FREE_FORM
)
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE,Locale.getDefault())
intent.putExtra(RecognizerIntent.EXTRA_PROMPT,"Say something")
try {
startActivityForResult(intent,REQUEST_CODE_SPEECH_INPUT)
} catch (exp: ActivityNotFoundException) {
Lg.d(TAG,"speechToTextOutput: $exp")
}
}
override fun onActivityResult(requestCode: Int,resultCode: Int,data: Intent?) {
super.onActivityResult(requestCode,resultCode,data)
if (resultCode == Activity.RESULT_OK) {
when (requestCode) {
REQUEST_CODE_SPEECH_INPUT -> {
val resultSpeech = data!!
.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS)
if (resultSpeech != null && resultSpeech.size > 0) {
mBinding.txtSpeechToText.text = resultSpeech.get(0)
}
}
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。