Commits on Nov 17, 2013
  1. Merge pull request #4 from jefftimesten/master

    Updated the examples for newest version of oF and XCode. Also added a new example.
    committed Nov 17, 2013
Commits on Nov 4, 2013
  1. another README update!

    jefftimesten committed Nov 4, 2013
  2. README update

    jefftimesten committed Nov 4, 2013
  3. README update

    jefftimesten committed Nov 4, 2013
  4. README update

    jefftimesten committed Nov 4, 2013
  5. updated examples.

    jefftimesten committed Nov 4, 2013
Commits on Oct 3, 2012
  1. Merge pull request #2 from momo-the-monster/master

    Added Volume Setter using SetSpeechProperty
    committed Oct 3, 2012
Commits on Oct 1, 2012
  1. added volume setter

    momo-the-monster committed Oct 1, 2012
Commits on Jun 1, 2009
  1. Added destructors to clean up after themselves.

    - I should have done this waaay at the beginning, but now they're in...
      both classes have destructors so that they clean up after themselves
      when recognizer and synthesizer objects are destroyed. In the the
      recognizer case we release the recognizer and close the speech system
      while in the synthesizer case we just dispose of the speech channel.
    - I have read up a bit more on the speech synthesizer in OS X and I see
      some stuff that I would like to implement in the future (multiple
      speech channels for a clatter of voices) and I could say the same
      about the recognizer (use input sources other than just the
      microphone). I will look into these options for future work.
    committed Jun 1, 2009
  2. Quick addition to the listen and speak example.

    - Added a couple of lines to listen_then_speak example to illustrate how
      to turn on and off spelling in ofxSpeechSynthesizer.
    committed Jun 1, 2009
  3. More examples.

    - Removed a couple of debugging statements I had in
    - Added two new examples, one to illustrate how ofxSpeechSynthesizer
      works and the other as an example of both ofxSpeechRecognizer and
      ofxSpeechSynthesizer working together.
    committed Jun 1, 2009
Commits on May 31, 2009
  1. Added an example that uses the ofxSpeechRecognizer

    - Added an example that shows how to use the speech recognizer.
    committed May 31, 2009
  2. Wrote some documentation.

    - Some documentation written, very basic... can be better.
    - Will test deployment and add more examples.
    committed May 31, 2009
  3. Packaged as an openFrameworks addon.

    - Sat down to package the code as an openframeworks addon.
    - Time to write documentation, test deployment and usage in a brand new
      oF project, and use these brand new projects (assuming they work) as
      examples to add into the example folder.
    committed May 31, 2009
Commits on May 30, 2009
  1. Added additional functionality to synthesizer.

    - Added some facilities for the speech synthesizer to handle digit by
      digit mode as well as character by character (somehow character by
      character also enables digit by digit, this may be a bug in my logic
      somewhere or just the way Carbon Speech Synthesis works... don't know
    - I added as well a couple of functions to pause, continue, and stop
      speaking. They seem to work nicely, but if you pause the synthesizer
      twice in the same sentence, then it begins the sentence from the
    - I renamed addDictionary and addDictionaryFromFile functions in the
      ofxSpeechRecognizer to loadDictionary and loadDictionaryFromFile
      respectively. Commented the header file to explain what each function
      does in an easier to read spot. I will use a lot of this to write the
      documentation soon.
    - Did some documenting of the ofxSpeechSynthesizer interface so that
      it's a bit more clear. Will be using this for the documentation later.
    - Time to package this as an addon and see if it works as such.
    committed May 30, 2009
  2. Finished rough draft of synthesizer.

    - I have finished most of the ofxSpeechSynthesizer code, but I still
      have to impolement a couple of callback functions as well as some
      facilities to use certain programative functionality of the speech
    - I have wrote some minor test code just to veriify that it works, but
      I need to do more throrough testing of the library.
    - Again, the entire ofxSpeech has very little error handling, this needs
      to be corrected as soon as possible.
    - Need to restructure the project folder so that it mirrors a proper
      openFrameworks addon, and so I can deploy it and test it as such.
    committed May 30, 2009
Commits on May 28, 2009
  1. Minor work on Synthesizer after short hiatus.

    - I've neglected work on ofxSpeech for the past week for several reasons
      that merit no mention here, but things are back on track for finishing
      ofxSpeechSynthesizer sometime in the next week.
    - I have moved the code to generate the list of available voices into
      the constructor for ofxSpeechSynthesizer since that way a user of the
      library can query for listVoices and then initialize the synthesizer
      with one of them. Better to separate things that way, I think.
    - Modified the initSynthesizer to take an optional argument that denotes
      the name of the voice to use. If no name is passed, the synthesizer is
      initialized with the default system voice. The way I am looking at it
      is that the method itself will create a voice spec with the name of the
      voice and then open a speech channel with that voice spec, in the case
      of the default voice the new channel will be opened with a Null voice
    - Once that is done, I will be implementing the speakWord (though maybe
      speakPhrase is a more apt name for such a method) and then get things
      ready for the release of the first beta of this addon.
    - I am not sure at this point if it's that important to implement all
      the possible callbacks for the speech synthesis module. The only for
      which I see immediate use at the moment is one to determine whether the
      speech synthesis is done or the synthesizer is still talking and we
      should wait a bit before speaking. Other than that, I don't know what
      to do about the others. Luckily, unlike ofxSpeechRecognizer, the
      callback functions here can be handled in their entirety locally and
      don't have to touch testApp at all.
    - Will continue tomorrow, the goal is to implement the speech channel
      creation as well as the speakWord/speakPhrase so that it can be tested
      thoroughly over the weekend.
    committed May 28, 2009
Commits on May 20, 2009
  1. Began serious work on the synthesizer.

    - Began work on the ofxSpeechSynthesizer. Started with getting and
      population the list of voices as well as adding a function to display
      their names in the console, and another one to return an array with the
      voices' names in question.
    - The more I read about the Speech Synthesis Manager Reference from
      Apple, the more I realize I will have to change some of the way the
      class is designed in order to allow the user to have more
      functionality available to them.
    - I want to add some programative functionality for the speech channel,
      like having control over the word rate, character by character speech,
      and digit-by-digit speech for numbers. This enters into the
      refactoring equation, something for the next coding session.
    - Maybe a function where the user can load a file and have the
      synthesizer speak its contents would be interesting, and perhaps not
      too difficult to implement within the remaining days until the release
      of the first iteration.
    - That seems to be all for now. Until next time, I remain...
    committed May 20, 2009
Commits on May 18, 2009
  1. Cleaning up ofxSpeechRecognizer

    - Decided to clean up ofxSpeechRecognizer before I moved on to
    - Removed some cruft and odd debugging printout statements I had laying
    - Added a good deal of comments (I should do this up front for
      ofxSpeechSynthesizer) even though I think a lot of the code speaks for
      itself... still, it doesn't hurt to be redundant if that's the case,
      and if not, then there are comments.
    - Rewrote addVocabulary to addDictionary.
    - Implemented as well an addDictionaryFromFile function that takes the
      name of a file (that should be located in the data directory of the
      project) containing a list of words to recognize and adds them to the
      recognizer's language model.
    - Tested the new addDictionaryFromFile and it works nicely, though I
      have to wonder about a little performance issue I have introduced in
      there that makes using that function take twice the time it should if
      reproduced the code from addDictionary. Still thinking about it.
    - Read up how to make oF addons so that I can package this the proper
      way. I will branch this repo into a package branch or something so
      that I can use master for this kind of development and packaging as
      a deployment branch (maybe it's time I get into learning about tags in
    - Continued research into the OSX Speech Synthesizer Manager Reference.
      Again, lots of functionality, but I will only stick to the basics to
      begin with and then add more functionality after it's working properly.
    committed May 18, 2009
Commits on May 17, 2009
  1. Fully working version. Works like a charm!

    - Fixed the bugs I was getting earlier. ofxSpeechRecognizer works nicely
      so far.
    - I will make the handleSpeech done member function into a regular
      function again, there's not logic in using it as a member function if
      it's still going to be static and have no access to non-static class
    - Also want to add a function that allows me to load the vocabulary from
      a file. Something like void addVocabulary(std::string fileName), which
      takes the name of a text file in the data directory and loads it's
      contents into the language model for the recognizer. It would make it
      more useful than passing a string vector (though that should still be
      an option).
    - I will continue to test the recognizer and write some examples to
      illustrate its use better. I also need to clean up the code for it.
    - Now I can focus my energies on implementing the ofxSpeechSynthesizer
      so that I can have a working beta of ofxSpeech.
    committed May 17, 2009
  2. Finishing events, having problems with callback.

    - Most of the event stuff is finalized, but some issues have cropped up
      because of the static nature of the callback function required by the
      osx speech recognition engine. I have no access to member functions
      from a static member function and this is defintely a problem since I
      need my poco speechEvent is a member of the ofxSpeechRecognizer class.
    _ I will be working on this issue tomorrow. Once that is done,
      ofxSpeechRecognized will be at a point where I can test it more
      thoroughly and, perhaps, do some actual work with it. Then off to
    committed May 17, 2009
  3. Still working out the event system.

    - I have been doing some exploratory coding to get my head around the
      poco event system. I think between ofEvents.h and the source code
      from ofxTUIO, I have a good idea as to how to proceed. The code in
      this commit is not ready and doesn't reflect what I learned since the
      last commit, but I will take care of that soon.
    - I want to finish this up now, but ride is here... gotta run.
    committed May 17, 2009
Commits on May 15, 2009
  1. Beginning implementing custom events.

    - Finally, after going over some of the code from oF core, I have gotten
      a clearer idea about how to implement custom events using the poco
      event system. The juicy stuff is in libs/openFrameworks/events/ and
      has been helpful.
    - I started by defining the speechEvent, but had some issues when trying
      to add the listener method I coded in the testApp class. It seems I
      have run into an issue of circular includes and I don't know yet how
      to fix that... it's obvious I am doing something wrong here, but at
      this time I can't quite track it down.
    - Need to add the HandleSpeechDoneAppleEvent function into the class as
      a static member function so that we can issue the event notification
      from within that method.
    - So for the next code run:
        - fix HandleSpeechDoneAppleEvent as a member function.
        - figure out and fix the issue with the listener for the speech
    - Going to sleep now.
    committed May 15, 2009
Commits on May 14, 2009
  1. Basic recognition done, now the event system.

    - Finished all the work on the recognition code of ofxSpeechRecognizer.
      The code compiles and runs, results from some simple testing have been
      positive, but I need to start paying more attention to my testing
    - I tried to implement a simple system using a function pointer to call
      a method in testApp with the resulting string, but my attempts were
      pretty unsuccessful. This is really an incentive for me to go ahead
      and do things right from the beginning, using the openFrameworks event
      system that's built on poco. Some reading required, but the overall
      result is likely to be better.
    - I am also thinking about bringing the HandleSpeechDoneAppleEvent
      function into the ofxSpeechRecognizer class. Accorind to the Carbon
      docs on the Speech Recognition Manager Reference, I wil still have to
      make this a static method, but it will certainly save me from keeping
      that static callback pointer method (but that's gonna go away once the
      poco event thing is implemented anyway).
    - There's a number of things I want to add right now, but I am more
      concerned with getting basic functionality working before I add more
      features. Who wants to use a speech recognition plugin that doesn't
      even recognize speech.
    - More work ahead tomorrow, for now... sleep.
    committed May 14, 2009
Commits on May 12, 2009
  1. ofxSpeechRecognizer is close to working status.

    - Finished implementing most of the recognizer, the apple speech event
      handler is working, but it doesn't do much at this point, just
      indicates that a speech event was detected. But that's a good
      indication that the rest of the system is working well up to this
    - Need to add a callback from testApp (for now) so that
      HandleSpeechDoneAppleEvent can pass the recognized string back to the
      testApp. For now this will only serve as a quick hack for illustrative
      purposes, but I want to use the new event framework in oF 006 so that
      there is minimal hacking required to use the speech system.
    - Additionally, I began work on fleshing out the structure for the
      ofxSpeechSynthesizer class. It's very rough right now as I am not
      fully aware of what's available to me in the Carbon Speech Synthesis
    - I would also like to look at how this could be extended to include
      support for Windows (with SAPI and FreeTTS) as well as GNU/Linux
      (though I am not aware of the libraries I have at my disposal there).
    committed May 12, 2009
  2. Initial commit

    - Created the main structure for this ofxSpeech addon, name may change
    - Began work on the ofxSpeechRecognizer class, created the main
      structure, and implemented the easier parts. I am using the Carbon
      speech API since it will allow me to do the whole thing in c++ as
      opposed to using a mix of c++ and objective-c, it will also make
      it easier to add windows and linux support in the future.
    committed May 12, 2009