<p>下面是一个更新的Naoqi版本的实现方法:</p>
<pre><code>import qi
import argparse
class SpeechEventListener(object):
""" A class to react to the ALTextToSpeech/CurrentBookMark event """
def __init__(self, session):
super(SpeechEventListener, self).__init__()
self.memory = session.service("ALMemory")
self.leds = session.service("ALLeds")
self.subscriber = self.memory.subscriber("ALTextToSpeech/CurrentBookMark")
self.subscriber.signal.connect(self.onBookmarkDetected)
# keep this variable in memory, else the callback will be disconnected
def onBookmarkDetected(self, value):
""" callback for event ALTextToSpeech/CurrentBookMark """
print "Event detected!"
print "Value: " , value # key and message are not useful here
if(value == 1):
self.leds.fadeRGB("FaceLeds", 0x00FF0000, 0.2)
if(value == 2):
self.leds.fadeRGB("FaceLeds", 0x000000FF, 0.2)
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument(" ip", type=str, default="127.0.0.1",
help="Robot IP address. On robot or Local Naoqi: use '127.0.0.1'.")
parser.add_argument(" port", type=int, default=9559,
help="Naoqi port number")
args = parser.parse_args()
# Initialize qi framework
connection_url = "tcp://" + args.ip + ":" + str(args.port)
app = qi.Application(["SpeechEventListener", " qi-url=" + connection_url])
app.start()
session = app.session
speech_event_listener = SpeechEventListener(session)
tts = session.service("ALTextToSpeech")
# tts.enableNotifications() > this seems outdated
while True:
raw_input("Say something...")
tts.say("Put that \\mrk=1\\ there.")
</code></pre>