# This demo is a basic speech recognition script. # # A set of commands needs to be defined before the recognizer starts # Internet connectivity is needed initially to download the audio files # of the Speech service (its default behavior interfaces with Google) # once the phrases are spoken once, the files are used from that point on # and internet connectivity is no longer used. These cached files # can be found ./audioFile/google/<language code>/audrey/phrase.mpe # # A message route is created to NOT recognize speech when the speech service is talking. # Otherwise, initially amusing scenarios can occur such as infinite loops of # the robot recognizing "hello", then saying "hello", then recognizing "hello"... # # The recognized phrase can easily be hooked to additional function such as # changing the mode of the robot, or moving it. Speech recognition is not # the best interface to do finely controlled actuation. But, it is very # convenient to express high-level (e.g. go to center of the room) commands # # FYI - The memory requirements for Sphinx are a bit hefty and depending on the # platform additional JVM arguments might be necessary e.g. -Xmx256m # create ear and mouth ear = Runtime.createAndStart("ear","Sphinx") mouth = Runtime.createAndStart("mouth","Speech") # start listening for the words we are interested in ear.startListening("hello | forward | back | stop | go |turn left | turn right | spin | power off") # set up a message route from the ear --to--> python method "heard" ear.addListener("recognized", python.getName(), "heard"); # this method is invoked when something is # recognized by the ear - in this case we # have the mouth "talk back" the word it recognized def heard(data): # data = msg_ear_recognized.data[0] mouth.speak("you said " + data) print "heard ", data if (data == "forward"): print "robot goes forward" elif (data == "hello"): print "robot says hello" # ... etc # prevent infinite loop - this will suppress the # recognition when speaking - default behavior # when attaching an ear to a mouth :) ear.attach(mouth)
Thanks grog, this works... :)
Thanks grog, this works... :)
If I want to use GoogleSTT,
If I want to use GoogleSTT, what should I write in this line ear = Runtime.createAndStart("ear","Sphinx") instead of "Sphinx"?
for the purpose of detecting just 2 characters in alphanumeric combination, I have got 0 success rate with sphinx so far.
I tried dictation on this site https://dictation.io/ and the results were pretty impressive.
It uses google chrome's speech api, so is this the same this as the Google STT in MRL?