Welcome, guest | Sign In | My Account | Store | Cart
import speech

# say() speaks out loud.
speech.say("I am speaking out loud.")

# input() waits for user input.  The prompt text is optional.
spoken_text = speech.input("Say something, user!")
print "You said: %s" % spoken_text

# You can limit user input to a set of phrases.
spoken_text = speech.input("Are you there, user?", ["Yes", "No", "Shut up, computer."])
print "You said: %s" % spoken_text

# If you don't want to wait for input, you can use listenfor() to run a callback
# every time a specific phrase is heard.  Meanwhile your program can move on to other tasks.
def L1callback(phrase, listener):
  print "Heard the phrase: %s" % phrase
# listenfor() returns a Listener object with islistening() and stoplistening() methods.
listener1 = speech.listenfor(["any of", "these will", "match"], L1callback)
       
# You can listen for multiple things at once, doing different things for each.
def L2callback(phrase, listener):
  print "Another phrase: %s" % phrase
listener2 = speech.listenfor(["good morning Michael"], L2callback)

# If you don't have a specific set of phrases in mind, listenforanything() will
# run a callback every time anything is heard that doesn't match another Listener.
def L3callback(phrase, listener):
  speech.say(phrase) # repeat it back
  if phrase == "stop now please":
    # The listener returned by listenfor() and listenforanything()
    # is also passed to the callback.
    listener.stoplistening()
listener3 = speech.listenforanything(L3callback)

# All callbacks get automatically executed on a single separate thread.
# Meanwhile, you can just do whatever with your program, or sleep.
# As long as your main program is running code, Listeners will keep listening.

import time
while listener3.islistening(): # till "stop now please" is heard
  time.sleep(1)

assert speech.islistening() # to at least one thing
print "Dictation is now stopped.  listeners 1 and 2 are still going."

listener1.stoplistening()
print "Now only listener 2 is going"

# Listen with listener2 for a while more, then turn it off.
time.sleep(30)

speech.stoplistening() # stop all remaining listeners
assert not speech.islistening()

History

  • revision 10 (15 years ago)
  • previous revisions are not available