From 68c1069548c110dbad409bee788a2f571854bea0 Mon Sep 17 00:00:00 2001 From: Paul Kompfner Date: Mon, 28 Apr 2025 10:37:11 -0400 Subject: [PATCH] [WIP] AWS Nova Sonic service --- src/pipecat/services/aws_nova_sonic/aws.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/pipecat/services/aws_nova_sonic/aws.py b/src/pipecat/services/aws_nova_sonic/aws.py index facf84a49..dd7fd702b 100644 --- a/src/pipecat/services/aws_nova_sonic/aws.py +++ b/src/pipecat/services/aws_nova_sonic/aws.py @@ -412,7 +412,9 @@ class AWSNovaSonicService(LLMService): ) self._content_being_received = content - # print(f"[pk] content start: {self._content_being_received}") + # print(f"[pk] content start: {content}") + if content.role == Role.ASSISTANT: + print(f"[pk] assistant content start: {content}") if content.role == Role.ASSISTANT: if content.type == ContentType.AUDIO: @@ -425,13 +427,15 @@ class AWSNovaSonicService(LLMService): # This should never happen if not self._content_being_received: return + content = self._content_being_received text_content = event_json["textOutput"]["content"] # print(f"[pk] text output. content: {text_content}") + if content.role == Role.ASSISTANT: + print(f"[pk] assistant text output. content: {text_content}") # Bookkeeping: augment the current content being received with text # Assumption: only one text content per content block - content = self._content_being_received content.text_content = text_content async def _handle_audio_output_event(self, event_json): @@ -457,13 +461,15 @@ class AWSNovaSonicService(LLMService): # This should never happen if not self._content_being_received: return + content = self._content_being_received content_end = event_json["contentEnd"] stop_reason = content_end["stopReason"] - # print(f"[pk] content end: {self._content_being_received}.\n stop_reason: {stop_reason}") + # print(f"[pk] content end: {content}.\n stop_reason: {stop_reason}") + if content.role == Role.ASSISTANT: + print(f"[pk] assistant content end: {content}.\n stop_reason: {stop_reason}") # Bookkeeping: clear current content being received - content = self._content_being_received self._content_being_received = None if content.role == Role.ASSISTANT: