after playing around with simon, I'm really convinced by the performance and hit-ratio of that nice tool.
Now I would like to use simon within a Python environment. All I know about simon is, that the recognition stuff is implemented in simond and communication can happen via TCP/IP. Is this right?
My question is: Is there a way to communication with simond via TCP/IP within a Python environment? How does the communication protocol look like?
Thanks for your help
Yes, the communication happens in simond. The protocol isn't the best to be honest and is pretty much undocumented. You can find the header (which defines all known requests) in simonlib/simonprotocol/simonprotocol.h
simons implementation can be found in simon/src/simonrecognitioncontrol/recognitioncontrol.cpp but is also one of the worst bits of the current simon implementation so have fun :P
Nah, seriously, it should be readable but is probably not the easiest way to go about this (you would also need to implement audio recording and -segmentation).
If you don't mind simon running you can also use the DBus / JSON plugins of the current simon development version to interface with your python tool. Maybe this is the better option (that would only take a few minutes to set up).
If you want to directly interface with simond feel free to ask me about it.
What are you trying to do?
oh. Thanks for that advice. Well, actually I do not want to do audio recording by my self. In this case I should go the DBus / JSON way. Is there an tutorial how to interface simon with this approach? Can I use D / J directly out of Python?
I do not plan any special application. But I have to develope several tools in Python and want to be able to interact via voice with that tools.
Would be nice if you guide me through this. :-)
No sorry. This isn't even released software yet (but you can rely on it being in the next release as it is already implemented and perfectly stable).
The logic is fairly straight-forward, tough. Just export the functions you want voice-activated as DBus / JSON functions and use the simon command plugin to call them. Just have a look it should be pretty self-explenatory.
You can use qdbusviewer to show exported DBus interfaces for example to try it out.
when do you plan to release version 4? Is there a pre-build of that developer version available?
Do you have a documentation of the interfaces DBus and Jason ?
Thanks and bye.
Version 4 will probably be released around June. There are no binary pre-releases but you are welcome to build it from source. There are instructions on the wiki: http://www.simon-listens.org/wiki/index.php/Development_Environment
JSON and DBus are both standards that are well documented. They should also both have standard python implementations.
Is it possible to get a link for a documentation of JSON and DBUS for SIMON?
Thanks you in advance!
There is no such documentation yet. However, the plugins are pretty self explanatory I guess: DBus for example: http://wstaw.org/m/2011/02/05/plasma-desktopBu1481.jpg