Simon for Python

  • user2011

    user2011 - 2011-01-28

    Hi folks,

    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


  • Peter Grasch

    Peter Grasch - 2011-01-28

    Hi Stephan!

    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?

    Best regards,

  • user2011

    user2011 - 2011-01-31

    Hi Peter,

    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. :-)


  • Peter Grasch

    Peter Grasch - 2011-01-31

    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.

    Best regards,

  • user2011

    user2011 - 2011-02-01


    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.


  • Peter Grasch

    Peter Grasch - 2011-02-02

    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:

    JSON and DBus are both standards that are well documented. They should also both have standard python implementations.

    Best regards,

  • David Fritzsche

    David Fritzsche - 2011-02-03


    Is it possible to get a link for a documentation of JSON and DBUS for SIMON?

    Thanks you in advance!


Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.

No, thanks