diff --git a/examples/foundational/15-websocket-server.py b/examples/foundational/15-websocket-server.py deleted file mode 100644 index bb2579a68..000000000 --- a/examples/foundational/15-websocket-server.py +++ /dev/null @@ -1,39 +0,0 @@ -# -# Copyright (c) 2024, Daily -# -# SPDX-License-Identifier: BSD 2-Clause License -# - -import asyncio -import sys - -from pipecat.pipeline.pipeline import Pipeline -from pipecat.pipeline.runner import PipelineRunner -from pipecat.pipeline.task import PipelineTask -from pipecat.transports.network.websocket_server import WebsocketServerTransport - -from runner import configure - -from loguru import logger - -from dotenv import load_dotenv -load_dotenv(override=True) - -logger.remove(0) -logger.add(sys.stderr, level="DEBUG") - - -async def main(): - transport = WebsocketServerTransport() - - pipeline = Pipeline([transport.input(), transport.output()]) - - task = PipelineTask(pipeline) - - runner = PipelineRunner() - - await runner.run(task) - - -if __name__ == "__main__": - asyncio.run(main()) diff --git a/examples/websocket-server/index.html b/examples/websocket-server/index.html index 02a044da7..514a4a821 100644 --- a/examples/websocket-server/index.html +++ b/examples/websocket-server/index.html @@ -173,6 +173,7 @@ } function stopAudio(closeWebsocket) { + playTime = 0; isPlaying = false; startBtn.disabled = false; stopBtn.disabled = true; diff --git a/examples/websocket-server/server.py b/examples/websocket-server/server.py index cf6ff0289..ba61084de 100644 --- a/examples/websocket-server/server.py +++ b/examples/websocket-server/server.py @@ -12,13 +12,16 @@ import sys from pipecat.frames.frames import LLMMessagesFrame from pipecat.pipeline.pipeline import Pipeline from pipecat.pipeline.runner import PipelineRunner -from pipecat.pipeline.task import PipelineTask -from pipecat.processors.aggregators.llm_response import LLMAssistantResponseAggregator, LLMUserResponseAggregator +from pipecat.pipeline.task import PipelineParams, PipelineTask +from pipecat.processors.aggregators.llm_response import ( + LLMAssistantResponseAggregator, + LLMUserResponseAggregator +) from pipecat.services.elevenlabs import ElevenLabsTTSService from pipecat.services.openai import OpenAILLMService from pipecat.services.whisper import WhisperSTTService from pipecat.transports.network.websocket_server import WebsocketServerParams, WebsocketServerTransport -from pipecat.vad.silero import SileroVAD +from pipecat.vad.silero import SileroVADAnalyzer from loguru import logger @@ -33,13 +36,15 @@ async def main(): async with aiohttp.ClientSession() as session: transport = WebsocketServerTransport( params=WebsocketServerParams( + audio_in_enabled=True, audio_out_enabled=True, - add_wav_header=True + add_wav_header=True, + vad_enabled=True, + vad_analyzer=SileroVADAnalyzer(), + vad_audio_passthrough=True ) ) - vad = SileroVAD(audio_passthrough=True) - llm = OpenAILLMService( api_key=os.getenv("OPENAI_API_KEY"), model="gpt-4o") @@ -64,7 +69,6 @@ async def main(): pipeline = Pipeline([ transport.input(), # Websocket input from client - vad, # VAD to detect user speech stt, # Speech-To-Text tma_in, # User responses llm, # LLM