tts_engine.py
Go to the documentation of this file.
1 #!/usr/bin/env python3
2 # -*- coding: utf-8 -*-
3 
4 import pyttsx3
5 
6 import rospy
7 from std_msgs.msg import String
8 from std_msgs.msg import Bool
9 
10 class tts_engine():
11 
12  def __init__(self):
13  rospy.Subscriber("tts/phrase", String, self.callback)
14  self.pubStatus = rospy.Publisher('tts/status', Bool, queue_size=0)
15 
16  def callback(self, msg):
17  phrase = msg.data
18  self.say(phrase)
19 
20  def publish_status(self, isSpeaking):
21  # Make the status true if it is speaking and false if it is not
22  if isSpeaking == True:
23  rospy.sleep(0.1)
24  self.pubStatus.publish(True)
25  rospy.logdebug("Started Speaking!")
26  else:
27  rospy.sleep(0.1)
28  self.pubStatus.publish(False)
29  rospy.logdebug("Finished Speaking..")
30 
31  def say(self, phrase):
32 
33  rospy.loginfo("The robot says: " + phrase)
34  self.engine = pyttsx3.init()
35  self.engine.connect('started-utterance', self.tts_onStart)
36  self.engine.connect('finished-utterance', self.tts_onEnd)
37  self.engine.say(phrase,"tts_engine")
38  self.engine.runAndWait()
39 
40  def tts_onStart(self, name):
41  rospy.logdebug('starting speaking ', name)
42  self.publish_status(True)
43 
44  def tts_onWord(self, name, location, length):
45  rospy.logdebug('word', name, location, length)
46 
47  def tts_onEnd(self, name, completed):
48  rospy.logdebug('finishing speaking', name, completed)
49  self.publish_status(False)
50  self.engine.endLoop()
51 
52 if __name__ == '__main__':
53  try:
54  rospy.init_node('tts_engine', anonymous=True)
55  tts = tts_engine()
56  rospy.spin()
57  except KeyboardInterrupt:
58  rospy.loginfo("Stopping tts engine...")
59  rospy.sleep(1)
60  print("node terminated")
tts_engine.tts_engine
Definition: tts_engine.py:10
tts_engine.tts_engine.tts_onWord
def tts_onWord(self, name, location, length)
Definition: tts_engine.py:44
tts_engine.tts_engine.say
def say(self, phrase)
Definition: tts_engine.py:31
tts_engine.tts_engine.tts_onStart
def tts_onStart(self, name)
Definition: tts_engine.py:40
tts_engine.tts_engine.engine
engine
Definition: tts_engine.py:34
tts_engine.tts_engine.__init__
def __init__(self)
Definition: tts_engine.py:12
tts_engine.tts_engine.callback
def callback(self, msg)
Definition: tts_engine.py:16
tts_engine.tts_engine.tts_onEnd
def tts_onEnd(self, name, completed)
Definition: tts_engine.py:47
tts_engine.tts_engine.pubStatus
pubStatus
Definition: tts_engine.py:14
tts_engine.tts_engine.publish_status
def publish_status(self, isSpeaking)
Definition: tts_engine.py:20


vosk
Author(s): Angelo Antikatzidis. , Alpha Cephei Inc.
autogenerated on Fri May 5 2023 02:23:58