Seraf/LISA-CLIENT-Linux — pull request #5 by gdumee (2014-05-23 07:55:42+00:00)
Title: Client enhancement

The recorder uses the same gstreamer pipeline as the listener :
- In a separate thread
- Less latency to start record
- Only record voice, not silents (vader module)
- Encode voice in mp3 before sending to wit
- Dynamic record length : recorder can dynamicaly record up to 10s of voice, if user continues to speak

The player can block until the end of the playback : Lisa can now waits to finish pronoucing sentences before hearing the leyword or recording voice (don't hear herself)

A new module : the speaker. The TTS engine is now in a separate module :
- Dedicated thread
- Blocking speak (waits end of speak before return)
- Add a new TTS engine : VoiceRSS. It is online and adds latency, but it's free and has a nicer voice than picoTTS
- System utterances : Lisa client can speak autonomously for errors or local process. The utterances are choosen randomly in a pool of similar utterances, to create a feeling of AI

The listener :
- Dedicated thread, the twisted service threads are only used for client/server communication, not voice processing
- Enhanced keyword spotting : keyword change in server loads different files at init on client, and you can use a different hmm for your language
- Retries : when client doesn't understand the user, it asks for retry, and records directly a new voice command, without waiting a new keyword