|
21 | 21 | from rclpy.callback_groups import ReentrantCallbackGroup |
22 | 22 | from std_msgs.msg import String, Bool |
23 | 23 | from geometry_msgs.msg import Twist |
24 | | -from coffee_voice_agent_msgs.msg import TtsEvent, AgentState, EmotionState, ConversationItem, AgentStatus, ToolEvent |
| 24 | +from coffee_voice_agent_msgs.msg import AgentState, EmotionState, ConversationItem, AgentStatus, ToolEvent |
25 | 25 |
|
26 | 26 | try: |
27 | 27 | import websockets |
@@ -77,13 +77,6 @@ def __init__(self): |
77 | 77 | callback_group=self.callback_group |
78 | 78 | ) |
79 | 79 |
|
80 | | - self.tts_events_pub = self.create_publisher( |
81 | | - TtsEvent, |
82 | | - 'voice_agent/tts_events', |
83 | | - 10, |
84 | | - callback_group=self.callback_group |
85 | | - ) |
86 | | - |
87 | 80 | self.agent_status_pub = self.create_publisher( |
88 | 81 | AgentStatus, |
89 | 82 | 'voice_agent/status', |
@@ -243,36 +236,6 @@ async def _handle_websocket_message(self, message: str): |
243 | 236 | # Handle startup/ready events from voice agent |
244 | 237 | self.get_logger().info(f"Voice agent startup: {data.get('message', 'Ready')} (version: {data.get('version', 'unknown')})") |
245 | 238 |
|
246 | | - elif message_type == 'TTS_EVENT': |
247 | | - # Handle TTS started/finished events - parse nested data structure |
248 | | - event_data = data.get('data', {}) |
249 | | - event = event_data.get('event', 'unknown') |
250 | | - emotion = event_data.get('emotion', 'unknown') |
251 | | - source = event_data.get('source', 'unknown') |
252 | | - text = event_data.get('text', '') |
253 | | - text_preview = text[:50] + "..." if len(text) > 50 else text |
254 | | - |
255 | | - self.get_logger().info(f"TTS {event}: emotion={emotion}, source={source}, text='{text_preview}'") |
256 | | - |
257 | | - # Publish TTS event to ROS2 topic |
258 | | - tts_msg = TtsEvent() |
259 | | - tts_msg.event = event |
260 | | - tts_msg.emotion = emotion |
261 | | - tts_msg.text = text_preview # Use truncated text for efficiency |
262 | | - tts_msg.source = source |
263 | | - # Parse timestamp if provided, otherwise use current time |
264 | | - timestamp_str = event_data.get('timestamp') |
265 | | - if timestamp_str: |
266 | | - try: |
267 | | - dt = datetime.datetime.fromisoformat(timestamp_str.replace('Z', '+00:00')) |
268 | | - tts_msg.timestamp.sec = int(dt.timestamp()) |
269 | | - tts_msg.timestamp.nanosec = int((dt.timestamp() % 1) * 1e9) |
270 | | - except: |
271 | | - tts_msg.timestamp = self.get_clock().now().to_msg() |
272 | | - else: |
273 | | - tts_msg.timestamp = self.get_clock().now().to_msg() |
274 | | - self.tts_events_pub.publish(tts_msg) |
275 | | - |
276 | 239 | elif message_type == 'AGENT_STATUS': |
277 | 240 | # Handle unified agent status events |
278 | 241 | status_data = data.get('data', {}) |
|
0 commit comments