Java 语音识别无法在Android上工作
我想在Java 语音识别无法在Android上工作,java,android,textview,text-to-speech,Java,Android,Textview,Text To Speech,我想在文本视图中显示我使用tts引擎所说的内容。我有一个按钮: btnparla.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { Intent i = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
文本视图中显示我使用tts引擎所说的内容。我有一个按钮
:
btnparla.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
Intent i = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
i.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
i.putExtra(RecognizerIntent.EXTRA_PROMPT, "Say something");
try {
startActivityForResult(i, VOICE_REC);
//txt.setText("");
} catch (ActivityNotFoundException e){
Toast t = Toast.makeText(getApplicationContext(), "Errore", Toast.LENGTH_SHORT);
t.show();
}
}
});
然后:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
// TODO: Implement this method
super.onActivityResult(requestCode, resultCode, data);
switch (resultCode) {
case VOICE_REC: {
if (resultCode == Activity.RESULT_OK) {
ArrayList<String> dico = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
resultList.setText(dico.get(0));
}
break;
}
}
}
@覆盖
受保护的void onActivityResult(int请求代码、int结果代码、意图数据)
{
//TODO:实现此方法
super.onActivityResult(请求代码、结果代码、数据);
开关(结果代码){
案例语音记录:{
if(resultCode==Activity.RESULT\u确定){
ArrayList dico=data.getStringArrayListExtra(RecognizerIntent.EXTRA_结果);
resultList.setText(dico.get(0));
}
打破
}
}
}
其中,resultList
是在onCreate
resultList=(TextView)findViewById(R.id.list)中声明的TextView
代码>。按钮可以工作,但不会在文本视图中保存任何内容。它没有显示我说的话。有什么问题?startActivityForResult中的参数VOICE\u REC(i,VOICE\u REC)代码>是请求代码而不是结果代码。将开关条件从开关(结果代码)
更改为开关(请求代码)
开关(请求代码){
案例语音记录:{
if(resultCode==Activity.RESULT\u确定){
ArrayList dico=data.getStringArrayListExtra(RecognizerIntent.EXTRA_结果);
resultList.setText(dico.get(0));
}
打破
}
}
代码看起来正常,我想您的TextView声明可能有问题,但我无法判断。请让我看看那个声明是什么样子的。还要在setText之后添加这段代码,并告诉我记录器是否有任何结果:if(matches.size()>0){Log.d(“MainActivity”,matches.get(0))};如果是这样的话,那么我们就知道文本到语音正在工作,这一定是文本视图问题。在你的另一个问题中,你说你正在创建一个自定义区域设置,我想这是持续的。尝试添加i.putExtra(RecognizerIntent.EXTRA_语言,“it”);
switch (requestCode) {
case VOICE_REC: {
if (resultCode == Activity.RESULT_OK) {
ArrayList<String> dico = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
resultList.setText(dico.get(0));
}
break;
}
}