Picovoice / cheetah

On-device streaming speech-to-text engine powered by deep learning

Home Page:https://picovoice.ai/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Acoustic Echo Cancellation

slusset opened this issue · comments

Is your feature request related to a problem? Please describe.
If I am playing back synthesized voice and I am also listening to the microphone with Cheetah, I will get the synth content transcribed by cheetah. I have been looking into Acoustic Echo Cancellation to get around this. Before I implement something with say SpeexDSP I thought it is worth asking if there is a feature from Picovoice that will accomplish this?

Describe the solution you'd like
If Cheetah has integrated AEC that would be ideal. Alternatively there is a filter or something like it that I could insert into the TargetDataLine (I am using Java API) before passing to Cheetah.

Describe alternatives you've considered
I've considered implementing my own AEC with SpeexDSP. It is a C library so I would need to understand Speex itself, C and JNI to do this. It is possible, but if it is an already solved problem then I would prefer to go that route..

Additional context
If there is another alternative I would be interested to learn of it. I know that Android platform has Java version of AEC but I am not sure if that will work in generic Java environment. I also understand ByteDance has a solution however it is proprietary and I am not sure how to evaluate..

Cheetah is only an STT and does not preprocess the input audio frames, nor does it have a built-in AEC or any type of filter to assist you in such scenarios. You are required to perform preprocessing on the input audio yourself, cleaning it appropriately, and then provide the refined PCM to Cheetah.

Ok thank you for the response.