scripts
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