Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

Simon for Python

user2011
2011-01-28
2013-01-13
  • 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

    Stephan

     
  • 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,
    Peter

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

    Greetings,
    Stephan

     
  • 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,
    Peter

     
  • user2011
    user2011
    2011-02-01

    Hello,

    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.

    Stephan

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

    Best regards,
    Peter

     
  • Hello,

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

    Thanks you in advance!
    Dave