2

I am building an android app in which TTS (text to speech) is controlled by voice commands. For voice recognition, I am using pocketsphinx and it works fine when TTS is not active (the "start" command i.e.). However, the accuracy of recognition goes down when TTS is active (e.g. for "stop" command).

I tried using AcousticEchoCanceler, but it doesn't seem to help. Could you please tell me:

  1. Is AEC supposed to filter phone output from the input? Is it the case that it doesn't work well or is it that it's not supposed to do this?

  2. What else shall I try?

Thanks!

Adi
  • 23
  • 3
  • 2
    http://stackoverflow.com/help/how-to-ask http://stackoverflow.com/help/dont-ask http://stackoverflow.com/help/on-topic Refer these links – Alok Nair Aug 21 '14 at 04:34

1 Answers1

1

We quickly discussed that issue with you on the chat.

Is AEC supposed to filter phone output from the input? Is it the case that it doesn't work well or is it that it's not supposed to do this?

No, AEC will not filter TTS. It removes echo - repeated signal.

What else shall I try?

You might want to synthesize audio to a file first:

How to store text to speech output as WAV file?

and then play it. When you know what is played you can filter it from the recording by subtracting it from recorded audio with the best delay. Otherwise it's a very complex problem.

Community
  • 1
  • 1
Nikolay Shmyrev
  • 24,897
  • 5
  • 43
  • 87