Java 如何在tts通话期间停止语音识别?

Java 如何在tts通话期间停止语音识别?,java,android,text-to-speech,voice-recognition,Java,Android,Text To Speech,Voice Recognition,我正在制作一个同时使用语音识别和tts的应用程序。 在我的应用程序中,我一直在使用语音识别,问题是当我使用tts时,语音识别会听到应用程序所说的话。如何在tts讲话期间停止语音识别,然后在tts结束后启动语音识别?我可以用另一种方法解决这个问题吗?实现onutternancecompletedlistener或utternanceprogresslistener并在onutternancecompleted或onDone中调用startListening,我可以用异步任务解决它 但我现在不能启动

我正在制作一个同时使用语音识别和tts的应用程序。
在我的应用程序中,我一直在使用语音识别,问题是当我使用tts时,语音识别会听到应用程序所说的话。如何在tts讲话期间停止语音识别,然后在tts结束后启动语音识别?我可以用另一种方法解决这个问题吗?

实现
onutternancecompletedlistener
utternanceprogresslistener
并在
onutternancecompleted
onDone

中调用
startListening
,我可以用异步任务解决它

但我现在不能启动语音识别

private class MiTareaAsincronaDialog extends AsyncTask<Void, Integer, Boolean> {

    @Override
    protected Boolean doInBackground(Void... params) 
    {
        String words = "Esto es una prueba del texto pasado a oral";
        speakWords(words);
        while(myTTS.isSpeaking() == true)
        {

            try {
                Thread.sleep(100);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

        return true;
    }

    @Override
    protected void onProgressUpdate(Integer... values) {
    }

    @Override
    protected void onPreExecute() {
    }

    @Override
    protected void onPostExecute(Boolean result) {

        Toast.makeText(MainActivity.this, "Tarea finalizada!",
                Toast.LENGTH_SHORT).show();
    }

    @Override
    protected void onCancelled() 
    {
        Toast.makeText(MainActivity.this, "Tarea cancelada!",
    Toast.LENGTH_SHORT).show();
    }
}
私有类MitareAssincronDialog扩展了异步任务{
@凌驾
受保护的布尔doInBackground(Void…params)
{
String words=“Esto es una prueba del texto pasado a oral”;
说单词(单词);
while(myTTS.isSpeaking()==true)
{
试一试{
睡眠(100);
}捕捉(中断异常e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
}
返回true;
}
@凌驾
受保护的void onProgressUpdate(整型…值){
}
@凌驾
受保护的void onPreExecute(){
}
@凌驾
受保护的void onPostExecute(布尔结果){
Toast.makeText(MainActivity.this,“Tarea finalizada!”,
吐司。长度(短)。show();
}
@凌驾
受保护的void onCancelled()
{
Toast.makeText(MainActivity.this,“Tarea cancelada!”,
吐司。长度(短)。show();
}
}

常识要求您在tts忙时停止语音识别。也许你可以解释一下你用来启动语音识别的代码?否则,恐怕没有人能回答这个问题……嗨,谢谢你的回答。我已经找到了一些教程,展示了如何做到这一点,但它不起作用,也许我用错了方法。只需发布不起作用的代码。在调用speak以调用OnTerranceCompleted或OnOne时,您必须传入一个utranceId。