kalliope-project / kalliope

Kalliope is a framework that will help you to create your own personal assistant.
https://kalliope-project.github.io/
GNU General Public License v3.0
1.72k stars 228 forks source link

Stop trigger for TTS #369

Closed ghost closed 7 years ago

ghost commented 7 years ago

It might be a useful enhancement to implement a kind of 'Kalliope stop' trigger, which stops running TTS, compare Alexa or Google solution.

Typical use cases are long TTS sequences. A possible solution could be the implementation of a second Snowboy trigger for this purpose as Snowboy allows switches like trigger A --> command A, trigger B --> command B and so on.

Sispheor commented 7 years ago

It is something really complicated to implement as we need another process that listen for a new "hotword". Also, if the speakers are close of the microphone, false positive can append. I'm really not favourable to this feature.

ghost commented 7 years ago

As i use Kalliope with REST API i have implemented this outside of Kalliope and it turns to be very useful, currently for stopping all kind of interactions like TTS etc.

The distance of speakers to mic is a general issue we have to struggle with, strongly depends on quality of the models.

Sispheor commented 7 years ago

Of course, via the API you don't have the issue. But with a mic, chances that kalliope catch herself during a TTS answer are high.

ghost commented 7 years ago

I encounter the issue from time to time as i am doing the STT on RPI, sending and receiving the request to a Kalliope 'server' via REST API and evaluating TTS on the RPI again.

Currently, i would say it happens once a week, but it depends on your Snowboy model, your settings and hw setup.

ghost commented 7 years ago

I use STT on RPI, sending / receiving request to Kalliope server and TTS on RPI, i.e. i have to handle this too. It depends strongly on the Snowboy models, settings and HW setup. It happens from time to time, maybe 1-2 times a week.

Sispheor commented 7 years ago

Sorry, but I think I will not work on this. Too complicated to implement and also not accurate because of the fact Kalliope will be able to listen herself and so trigger false "stop" action.

ghost commented 7 years ago

But the latter is always the case or not, if the wake up hotword is for instance "Kalliope" and one uses the mpd neuron which starts singing a song "Kalliope wake up ..." Kalliope will listen again or is it not allowed that one listens to music with a Kalliope neuron and starts a second neuron by voice in parallel? Dont know as a REST API user i always do this.

The stop hotword should not be just "stop" by the way and not "Kalliope stop" if the wake up hotword is already "Kalliope". That will not work out as you said, "stop the device" as a Snowboy hotword for instance would work in that case. You can play with the Snowboy code if you think that two hotwords are an issue in general. I don't think so.

The complexity of implementation is an argument where i cant contradict, yes :-)

Sispheor commented 7 years ago

As seen with @LaMonF , this cannot been implemented so far as: