From ef1e4277d32a593c7230e2fdd5b588f560ef0084 Mon Sep 17 00:00:00 2001 From: Jin Kim Date: Tue, 4 Feb 2025 10:32:55 +0900 Subject: [PATCH] Add an example for Whisper using OpenAI API --- examples/foundational/07g-interruptible-openai.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/examples/foundational/07g-interruptible-openai.py b/examples/foundational/07g-interruptible-openai.py index 78a23b65f..01d869e91 100644 --- a/examples/foundational/07g-interruptible-openai.py +++ b/examples/foundational/07g-interruptible-openai.py @@ -18,7 +18,7 @@ from pipecat.pipeline.pipeline import Pipeline from pipecat.pipeline.runner import PipelineRunner from pipecat.pipeline.task import PipelineParams, PipelineTask from pipecat.processors.aggregators.openai_llm_context import OpenAILLMContext -from pipecat.services.openai import OpenAILLMService, OpenAITTSService +from pipecat.services.openai import OpenAILLMService, OpenAISTTService, OpenAITTSService from pipecat.transports.services.daily import DailyParams, DailyTransport load_dotenv(override=True) @@ -38,12 +38,21 @@ async def main(): DailyParams( audio_out_enabled=True, audio_out_sample_rate=24000, - transcription_enabled=True, + transcription_enabled=False, vad_enabled=True, vad_analyzer=SileroVADAnalyzer(), + vad_audio_passthrough=True, ), ) + # You can use the OpenAI compatible API like Groq. + # stt = OpenAISTTService( + # base_url="https://api.groq.com/openai/v1", + # api_key="gsk_***", + # model="whisper-large-v3", + # ) + stt = OpenAISTTService(api_key=os.getenv("OPENAI_API_KEY"), model="whisper-1") + tts = OpenAITTSService(api_key=os.getenv("OPENAI_API_KEY"), voice="alloy") llm = OpenAILLMService(api_key=os.getenv("OPENAI_API_KEY"), model="gpt-4o") @@ -61,6 +70,7 @@ async def main(): pipeline = Pipeline( [ transport.input(), # Transport user input + stt, # STT context_aggregator.user(), # User responses llm, # LLM tts, # TTS