Code review feedback

This commit is contained in:
Mark Backman
2024-09-26 22:13:37 -04:00
parent d3a477902b
commit 706c00d897
3 changed files with 13 additions and 3 deletions

View File

@@ -9,7 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added ### Added
- Added AWS Polly TTS support. - Added AWS Polly TTS support and `07m-interruptible-aws.py` as an example.
- Added InputParams to Azure TTS service. - Added InputParams to Azure TTS service.

View File

@@ -22,6 +22,7 @@ from pipecat.processors.aggregators.llm_response import (
LLMUserResponseAggregator, LLMUserResponseAggregator,
) )
from pipecat.services.aws import AWSTTSService from pipecat.services.aws import AWSTTSService
from pipecat.services.deepgram import DeepgramSTTService
from pipecat.services.openai import OpenAILLMService from pipecat.services.openai import OpenAILLMService
from pipecat.transports.services.daily import DailyParams, DailyTransport from pipecat.transports.services.daily import DailyParams, DailyTransport
from pipecat.vad.silero import SileroVADAnalyzer from pipecat.vad.silero import SileroVADAnalyzer
@@ -43,12 +44,14 @@ async def main():
DailyParams( DailyParams(
audio_out_enabled=True, audio_out_enabled=True,
audio_out_sample_rate=16000, audio_out_sample_rate=16000,
transcription_enabled=True,
vad_enabled=True, vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )
stt = DeepgramSTTService(api_key=os.getenv("DEEPGRAM_API_KEY"))
tts = AWSTTSService( tts = AWSTTSService(
api_key=os.getenv("AWS_SECRET_ACCESS_KEY"), api_key=os.getenv("AWS_SECRET_ACCESS_KEY"),
aws_access_key_id=os.getenv("AWS_ACCESS_KEY_ID"), aws_access_key_id=os.getenv("AWS_ACCESS_KEY_ID"),
@@ -72,6 +75,7 @@ async def main():
pipeline = Pipeline( pipeline = Pipeline(
[ [
transport.input(), # Transport user input transport.input(), # Transport user input
stt, # STT
tma_in, # User responses tma_in, # User responses
llm, # LLM llm, # LLM
tts, # TTS tts, # TTS

View File

@@ -9,6 +9,7 @@ from loguru import logger
from pydantic import BaseModel from pydantic import BaseModel
from pipecat.frames.frames import ( from pipecat.frames.frames import (
ErrorFrame,
Frame, Frame,
TTSAudioRawFrame, TTSAudioRawFrame,
TTSStartedFrame, TTSStartedFrame,
@@ -152,7 +153,7 @@ class AWSTTSService(TTSService):
if "AudioStream" in response: if "AudioStream" in response:
with response["AudioStream"] as stream: with response["AudioStream"] as stream:
audio_data = stream.read() audio_data = stream.read()
chunk_size = 4096 # You can adjust this value chunk_size = 8192
for i in range(0, len(audio_data), chunk_size): for i in range(0, len(audio_data), chunk_size):
chunk = audio_data[i : i + chunk_size] chunk = audio_data[i : i + chunk_size]
if len(chunk) > 0: if len(chunk) > 0:
@@ -164,3 +165,8 @@ class AWSTTSService(TTSService):
except (BotoCoreError, ClientError) as error: except (BotoCoreError, ClientError) as error:
logger.exception(f"{self} error generating TTS: {error}") logger.exception(f"{self} error generating TTS: {error}")
error_message = f"AWS Polly TTS error: {str(error)}"
yield ErrorFrame(error=error_message)
finally:
await self.push_frame(TTSStoppedFrame())