我正在制作一个同时使用语音识别和tts的应用程序。 在我的应用程序中,我继续语音识别,问题是当我使用tts时,语音识别将听取应用程序所说的内容。如何在tts讲话期间停止语音识别,然后在tts结束后启动语音识别?我可以用另一种方式解决问题吗?
答案 0 :(得分:2)
实施OnUtteranceCompletedListener
或UtteranceProgressListener
并在startListening
或onUtteranceCompleted
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();
}
}