Java 语音对文本和文本对语音 activityresult上受保护的void(int-requestCode、int-resultCode、Intent-data){ super.onActivityResult(请求代码、结果代码、数据); 开关(请求代码){ 案例请求代码语音输入:{ if(resultCode==RESULT\u OK&&null!=数据){ ArrayList结果=data.getStringArrayListExtra(RecognizerIntent.EXTRA_结果); k=0; 对于(int i=0;i0) tts.speak(“买了2个香蕉”,TextToSpeech.QUEUE\u FLUSH,null); } } 打破 } } }

Java 语音对文本和文本对语音 activityresult上受保护的void(int-requestCode、int-resultCode、Intent-data){ super.onActivityResult(请求代码、结果代码、数据); 开关(请求代码){ 案例请求代码语音输入:{ if(resultCode==RESULT\u OK&&null!=数据){ ArrayList结果=data.getStringArrayListExtra(RecognizerIntent.EXTRA_结果); k=0; 对于(int i=0;i0) tts.speak(“买了2个香蕉”,TextToSpeech.QUEUE\u FLUSH,null); } } 打破 } } },java,android,text-to-speech,Java,Android,Text To Speech,我试着做点什么,而且从演讲到文本的效果很好。我现在从谷歌那里得到了所有的可能性,但当我想让它相应地说和做一些事情时(实际上是创建一个命令) 它不起作用 k表示一个索引,表示单词“X”(在另一种语言中,这就是为什么我将X而不是单词)存在于结果数组列表中的次数。 如果k大于0,我希望动作发生 希望可以理解。为什么要通过getText()检查null,而不是直接从字符串检查null?由于文本之间有逗号,它将始终返回true。您初始化了tts吗?可能您的语言不受支持。@ShashankMishra我初始

我试着做点什么,而且从演讲到文本的效果很好。我现在从谷歌那里得到了所有的可能性,但当我想让它相应地说和做一些事情时(实际上是创建一个命令) 它不起作用

k表示一个索引,表示单词“X”(在另一种语言中,这就是为什么我将X而不是单词)存在于结果数组列表中的次数。 如果k大于0,我希望动作发生


希望可以理解。

为什么要通过getText()检查null,而不是直接从字符串检查null?由于文本之间有逗号,它将始终返回true。您初始化了tts吗?可能您的语言不受支持。@ShashankMishra我初始化了tts。该语言支持从语音到文本的转换,所以当我想让它说话时,我会用英语来做。然后试试调试。
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

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

                    ArrayList<String> result = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
                 k = 0;
                    for(int i=0;i<result.size();i++){
                        if(result.get(i).contains("X")) {
                            k+=1;

                        }
                        }
                    tv.setText(result.toString()+","+k);
                    if(tv.getText()!=null){
                        if(k>0)
                            tts.speak("bought 2 bananas",TextToSpeech.QUEUE_FLUSH,null);
                    }
                }

                break;
            }

        }
    }