如何在说话期间停止语音识别?

时间:2014-03-09 05:56:58

标签: java android text-to-speech voice-recognition

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

2 个答案:

答案 0 :(得分:2)

实施OnUtteranceCompletedListenerUtteranceProgressListener并在startListeningonUtteranceCompleted

中致电onDone

答案 1 :(得分:0)

我可以使用Asynctask

修复它

但我现在无法启动语音识别。

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();
    }
}