Merge pull request #1648 from pipecat-ai/aleix/always-push-audio

input transports now always push audio frames
This commit is contained in:
Aleix Conchillo Flaqué
2025-04-24 18:59:09 -07:00
committed by GitHub
151 changed files with 513 additions and 569 deletions

View File

@@ -10,7 +10,35 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added ### Added
- Added `MCPClient`; a way to connect to MCP servers and use the MCP servers' tools. - Added `TransportParams.audio_in_passthrough`. If set (the default), incoming
audio will be pushed downstream.
- Added `MCPClient`; a way to connect to MCP servers and use the MCP servers'
tools.
### Changed
- STT services now passthrough audio frames by default. This allows you to add
audio recording without worrying about what's wrong in your pipeline when it
doesn't work the first time.
- Input transports now always push audio downstream unless disabled with
`TransportParams.audio_in_passthrough`. After many Pipecat releases, we
realized this is the common use case. There are use cases where the input
transport already provides STT and you also don't want recordings, in which
case there's no need to push audio to the rest of the pipeline, but this is
not a very common case.
### Deprecated
- `TransportParams.camera_*` parameters are now deprecated, use
`TransportParams.video_*` instead.
- `TransportParams.vad_enabled` parameter is now deprecated, use
`TransportParams.audio_in_enabled` and `TransportParams.vad_analyzer` instead.
- `TransportParams.vad_audio_passthrough` parameter is now deprecated, use
`TransportParams.audio_in_passthrough` instead.
### Fixed ### Fixed

View File

@@ -43,9 +43,7 @@ async def main():
DailyParams( DailyParams(
audio_out_enabled=True, audio_out_enabled=True,
audio_in_enabled=True, audio_in_enabled=True,
camera_out_enabled=False, video_out_enabled=False,
vad_enabled=True,
vad_audio_passthrough=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
transcription_enabled=True, transcription_enabled=True,
# #

View File

@@ -66,9 +66,7 @@ async def main():
DailyParams( DailyParams(
audio_out_enabled=True, audio_out_enabled=True,
audio_in_enabled=True, audio_in_enabled=True,
camera_out_enabled=False, video_out_enabled=False,
vad_enabled=True,
vad_audio_passthrough=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
transcription_enabled=True, transcription_enabled=True,
# #

View File

@@ -41,8 +41,7 @@ async def main(room_url: str, token: str):
api_key=daily_api_key, api_key=daily_api_key,
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
camera_out_enabled=False, video_out_enabled=False,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
transcription_enabled=True, transcription_enabled=True,
), ),

View File

@@ -32,9 +32,9 @@ async def main(room_url: str, token: str):
token, token,
"bot", "bot",
DailyParams( DailyParams(
audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
transcription_enabled=True, transcription_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
), ),
) )

View File

@@ -50,9 +50,9 @@ async def main(room_url: str, token: str):
token, token,
"bot", "bot",
DailyParams( DailyParams(
audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
transcription_enabled=True, transcription_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
), ),
) )

View File

@@ -240,14 +240,13 @@ async def bot(args: DailySessionArguments):
args.token, args.token,
"Smart Turn Bot", "Smart Turn Bot",
params=DailyParams( params=DailyParams(
audio_in_enabled=True,
audio_in_filter=KrispFilter(), audio_in_filter=KrispFilter(),
audio_out_enabled=True, audio_out_enabled=True,
camera_out_enabled=True, video_out_enabled=True,
camera_out_width=1024, video_out_width=1024,
camera_out_height=576, video_out_height=576,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(params=VADParams(stop_secs=0.2)), vad_analyzer=SileroVADAnalyzer(params=VADParams(stop_secs=0.2)),
vad_audio_passthrough=True,
turn_analyzer=FalSmartTurnAnalyzer( turn_analyzer=FalSmartTurnAnalyzer(
api_key=os.getenv("FAL_SMART_TURN_API_KEY"), aiohttp_session=session api_key=os.getenv("FAL_SMART_TURN_API_KEY"), aiohttp_session=session
), ),
@@ -275,13 +274,12 @@ async def local_daily():
token, token,
"Smart Turn Bot", "Smart Turn Bot",
params=DailyParams( params=DailyParams(
audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
camera_out_enabled=True, video_out_enabled=True,
camera_out_width=1024, video_out_width=1024,
camera_out_height=576, video_out_height=576,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(params=VADParams(stop_secs=0.2)), vad_analyzer=SileroVADAnalyzer(params=VADParams(stop_secs=0.2)),
vad_audio_passthrough=True,
turn_analyzer=FalSmartTurnAnalyzer( turn_analyzer=FalSmartTurnAnalyzer(
api_key=os.getenv("FAL_SMART_TURN_API_KEY"), aiohttp_session=session api_key=os.getenv("FAL_SMART_TURN_API_KEY"), aiohttp_session=session
), ),

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
import aiohttp import aiohttp
@@ -22,7 +23,7 @@ from pipecat.transports.network.webrtc_connection import SmallWebRTCConnection
load_dotenv(override=True) load_dotenv(override=True)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
# Create a transport using the WebRTC connection # Create a transport using the WebRTC connection

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
import aiohttp import aiohttp
@@ -22,7 +23,7 @@ from pipecat.transports.network.webrtc_connection import SmallWebRTCConnection
load_dotenv(override=True) load_dotenv(override=True)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
# Create a transport using the WebRTC connection # Create a transport using the WebRTC connection

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -21,7 +22,7 @@ from pipecat.transports.network.webrtc_connection import SmallWebRTCConnection
load_dotenv(override=True) load_dotenv(override=True)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
# Create a transport using the WebRTC connection # Create a transport using the WebRTC connection

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -21,7 +22,7 @@ from pipecat.transports.network.webrtc_connection import SmallWebRTCConnection
load_dotenv(override=True) load_dotenv(override=True)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
# Create a transport using the WebRTC connection # Create a transport using the WebRTC connection

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -22,7 +23,7 @@ from pipecat.transports.network.webrtc_connection import SmallWebRTCConnection
load_dotenv(override=True) load_dotenv(override=True)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
# Create a transport using the WebRTC connection # Create a transport using the WebRTC connection

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
import aiohttp import aiohttp
@@ -22,16 +23,16 @@ from pipecat.transports.network.webrtc_connection import SmallWebRTCConnection
load_dotenv(override=True) load_dotenv(override=True)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
# Create a transport using the WebRTC connection # Create a transport using the WebRTC connection
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
webrtc_connection=webrtc_connection, webrtc_connection=webrtc_connection,
params=TransportParams( params=TransportParams(
camera_out_enabled=True, video_out_enabled=True,
camera_out_width=1024, video_out_width=1024,
camera_out_height=1024, video_out_height=1024,
), ),
) )

View File

@@ -33,9 +33,7 @@ async def main():
transport = TkLocalTransport( transport = TkLocalTransport(
tk_root, tk_root,
TkTransportParams( TkTransportParams(video_out_enabled=True, video_out_width=1024, video_out_height=1024),
camera_out_enabled=True, camera_out_width=1024, camera_out_height=1024
),
) )
imagegen = FalImageGenService( imagegen = FalImageGenService(

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -21,16 +22,16 @@ from pipecat.transports.network.webrtc_connection import SmallWebRTCConnection
load_dotenv(override=True) load_dotenv(override=True)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
# Create a transport using the WebRTC connection # Create a transport using the WebRTC connection
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
webrtc_connection=webrtc_connection, webrtc_connection=webrtc_connection,
params=TransportParams( params=TransportParams(
camera_out_enabled=True, video_out_enabled=True,
camera_out_width=1024, video_out_width=1024,
camera_out_height=1024, video_out_height=1024,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dataclasses import dataclass from dataclasses import dataclass
@@ -63,7 +64,7 @@ class MonthPrepender(FrameProcessor):
await self.push_frame(frame, direction) await self.push_frame(frame, direction)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
"""Run the Calendar Month Narration bot using WebRTC transport. """Run the Calendar Month Narration bot using WebRTC transport.
Args: Args:
@@ -77,9 +78,9 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
webrtc_connection=webrtc_connection, webrtc_connection=webrtc_connection,
params=TransportParams( params=TransportParams(
audio_out_enabled=True, audio_out_enabled=True,
camera_out_enabled=True, video_out_enabled=True,
camera_out_width=1024, video_out_width=1024,
camera_out_height=1024, video_out_height=1024,
), ),
) )

View File

@@ -153,9 +153,9 @@ async def main():
tk_root, tk_root,
TkTransportParams( TkTransportParams(
audio_out_enabled=True, audio_out_enabled=True,
camera_out_enabled=True, video_out_enabled=True,
camera_out_width=1024, video_out_width=1024,
camera_out_height=1024, video_out_height=1024,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -52,7 +53,7 @@ class MetricsLogger(FrameProcessor):
await self.push_frame(frame, direction) await self.push_frame(frame, direction)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -60,9 +61,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -67,7 +68,7 @@ class ImageSyncAggregator(FrameProcessor):
await self.push_frame(frame) await self.push_frame(frame)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -75,12 +76,10 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
camera_out_enabled=True, video_out_enabled=True,
camera_out_width=1024, video_out_width=1024,
camera_out_height=1024, video_out_height=1024,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -24,7 +25,7 @@ from pipecat.transports.network.webrtc_connection import SmallWebRTCConnection
load_dotenv(override=True) load_dotenv(override=True)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -32,9 +33,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -24,7 +25,7 @@ from pipecat.transports.network.webrtc_connection import SmallWebRTCConnection
load_dotenv(override=True) load_dotenv(override=True)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -42,7 +43,7 @@ def get_session_history(session_id: str) -> BaseChatMessageHistory:
return message_store[session_id] return message_store[session_id]
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -50,9 +51,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from deepgram import LiveOptions from deepgram import LiveOptions
@@ -30,7 +31,7 @@ from pipecat.transports.network.webrtc_connection import SmallWebRTCConnection
load_dotenv(override=True) load_dotenv(override=True)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -24,7 +25,7 @@ from pipecat.transports.network.webrtc_connection import SmallWebRTCConnection
load_dotenv(override=True) load_dotenv(override=True)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -32,9 +33,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
import aiohttp import aiohttp
@@ -25,7 +26,7 @@ from pipecat.transports.network.webrtc_connection import SmallWebRTCConnection
load_dotenv(override=True) load_dotenv(override=True)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -33,9 +34,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -24,7 +25,7 @@ from pipecat.transports.network.webrtc_connection import SmallWebRTCConnection
load_dotenv(override=True) load_dotenv(override=True)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -32,9 +33,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -24,7 +25,7 @@ from pipecat.transports.network.webrtc_connection import SmallWebRTCConnection
load_dotenv(override=True) load_dotenv(override=True)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -32,9 +33,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -25,7 +26,7 @@ from pipecat.transports.network.webrtc_connection import SmallWebRTCConnection
load_dotenv(override=True) load_dotenv(override=True)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -33,9 +34,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -24,7 +25,7 @@ from pipecat.transports.network.webrtc_connection import SmallWebRTCConnection
load_dotenv(override=True) load_dotenv(override=True)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -32,9 +33,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -24,7 +25,7 @@ from pipecat.transports.network.webrtc_connection import SmallWebRTCConnection
load_dotenv(override=True) load_dotenv(override=True)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -32,9 +33,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
import time import time
@@ -25,7 +26,7 @@ from pipecat.transports.network.webrtc_connection import SmallWebRTCConnection
load_dotenv(override=True) load_dotenv(override=True)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -33,9 +34,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
import aiohttp import aiohttp
@@ -25,7 +26,7 @@ from pipecat.transports.network.webrtc_connection import SmallWebRTCConnection
load_dotenv(override=True) load_dotenv(override=True)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -33,9 +34,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -26,7 +27,7 @@ from pipecat.transports.network.webrtc_connection import SmallWebRTCConnection
load_dotenv(override=True) load_dotenv(override=True)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -34,9 +35,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -24,7 +25,7 @@ from pipecat.transports.network.webrtc_connection import SmallWebRTCConnection
load_dotenv(override=True) load_dotenv(override=True)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -32,9 +33,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -24,7 +25,7 @@ from pipecat.transports.network.webrtc_connection import SmallWebRTCConnection
load_dotenv(override=True) load_dotenv(override=True)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -32,9 +33,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -24,7 +25,7 @@ from pipecat.transports.network.webrtc_connection import SmallWebRTCConnection
load_dotenv(override=True) load_dotenv(override=True)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -32,9 +33,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -25,7 +26,7 @@ from pipecat.transports.network.webrtc_connection import SmallWebRTCConnection
load_dotenv(override=True) load_dotenv(override=True)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -33,9 +34,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -24,7 +25,7 @@ from pipecat.transports.network.webrtc_connection import SmallWebRTCConnection
load_dotenv(override=True) load_dotenv(override=True)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -32,9 +33,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -25,7 +26,7 @@ from pipecat.transports.network.webrtc_connection import SmallWebRTCConnection
load_dotenv(override=True) load_dotenv(override=True)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -33,9 +34,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
audio_in_filter=KrispFilter(), audio_in_filter=KrispFilter(),
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
import aiohttp import aiohttp
@@ -25,7 +26,7 @@ from pipecat.transports.network.webrtc_connection import SmallWebRTCConnection
load_dotenv(override=True) load_dotenv(override=True)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -33,9 +34,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -24,7 +25,7 @@ from pipecat.transports.network.webrtc_connection import SmallWebRTCConnection
load_dotenv(override=True) load_dotenv(override=True)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -32,9 +33,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -24,7 +25,7 @@ from pipecat.transports.network.webrtc_connection import SmallWebRTCConnection
load_dotenv(override=True) load_dotenv(override=True)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -32,9 +33,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dataclasses import dataclass from dataclasses import dataclass
@@ -190,7 +191,7 @@ class TanscriptionContextFixup(FrameProcessor):
await self.push_frame(frame, direction) await self.push_frame(frame, direction)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -198,11 +199,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
# No transcription at all. just audio input to Gemini!
# transcription_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -24,7 +25,7 @@ from pipecat.transports.network.webrtc_connection import SmallWebRTCConnection
load_dotenv(override=True) load_dotenv(override=True)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -32,9 +33,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -35,7 +36,7 @@ ultravox_processor = UltravoxSTTService(
) )
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -43,9 +44,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(params=VADParams(stop_secs=0.2)), vad_analyzer=SileroVADAnalyzer(params=VADParams(stop_secs=0.2)),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -24,7 +25,7 @@ from pipecat.transports.network.webrtc_connection import SmallWebRTCConnection
load_dotenv(override=True) load_dotenv(override=True)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -32,9 +33,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -24,7 +25,7 @@ from pipecat.transports.network.webrtc_connection import SmallWebRTCConnection
load_dotenv(override=True) load_dotenv(override=True)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -32,9 +33,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -24,7 +25,7 @@ from pipecat.transports.network.webrtc_connection import SmallWebRTCConnection
load_dotenv(override=True) load_dotenv(override=True)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -32,9 +33,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -32,9 +32,7 @@ async def main():
LocalAudioTransportParams( LocalAudioTransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
) )
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
from dotenv import load_dotenv from dotenv import load_dotenv
from loguru import logger from loguru import logger
@@ -39,7 +40,6 @@ class MirrorProcessor(FrameProcessor):
) )
) )
elif isinstance(frame, InputImageRawFrame): elif isinstance(frame, InputImageRawFrame):
print(f"Received image frame: {frame.size} {frame.format}")
await self.push_frame( await self.push_frame(
OutputImageRawFrame(image=frame.image, size=frame.size, format=frame.format) OutputImageRawFrame(image=frame.image, size=frame.size, format=frame.format)
) )
@@ -47,7 +47,7 @@ class MirrorProcessor(FrameProcessor):
await self.push_frame(frame, direction) await self.push_frame(frame, direction)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -55,11 +55,11 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
camera_in_enabled=True, video_in_enabled=True,
camera_out_enabled=True, video_out_enabled=True,
camera_out_is_live=True, video_out_is_live=True,
camera_out_width=1280, video_out_width=1280,
camera_out_height=720, video_out_height=720,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import asyncio import asyncio
import tkinter as tk import tkinter as tk
@@ -49,7 +50,7 @@ class MirrorProcessor(FrameProcessor):
await self.push_frame(frame, direction) await self.push_frame(frame, direction)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
p2p_transport = SmallWebRTCTransport( p2p_transport = SmallWebRTCTransport(
@@ -57,11 +58,11 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
camera_in_enabled=True, video_in_enabled=True,
camera_out_enabled=True, video_out_enabled=True,
camera_out_is_live=True, video_out_is_live=True,
camera_out_width=1280, video_out_width=1280,
camera_out_height=720, video_out_height=720,
), ),
) )
@@ -72,10 +73,10 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
tk_root, tk_root,
TkTransportParams( TkTransportParams(
audio_out_enabled=True, audio_out_enabled=True,
camera_out_enabled=True, video_out_enabled=True,
camera_out_is_live=True, video_out_is_live=True,
camera_out_width=1280, video_out_width=1280,
camera_out_height=720, video_out_height=720,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -26,7 +27,7 @@ from pipecat.transports.network.webrtc_connection import SmallWebRTCConnection
load_dotenv(override=True) load_dotenv(override=True)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -34,9 +35,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
import wave import wave
@@ -77,7 +78,7 @@ class InboundSoundEffectWrapper(FrameProcessor):
await self.push_frame(frame, direction) await self.push_frame(frame, direction)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -85,9 +86,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from typing import Optional from typing import Optional
@@ -46,7 +47,7 @@ class UserImageRequester(FrameProcessor):
await self.push_frame(frame, direction) await self.push_frame(frame, direction)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
# Get WebRTC peer connection ID # Get WebRTC peer connection ID
webrtc_peer_id = webrtc_connection.pc_id webrtc_peer_id = webrtc_connection.pc_id
@@ -57,10 +58,8 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
camera_in_enabled=True, video_in_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from typing import Optional from typing import Optional
@@ -46,7 +47,7 @@ class UserImageRequester(FrameProcessor):
await self.push_frame(frame, direction) await self.push_frame(frame, direction)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
# Get WebRTC peer connection ID # Get WebRTC peer connection ID
webrtc_peer_id = webrtc_connection.pc_id webrtc_peer_id = webrtc_connection.pc_id
@@ -57,10 +58,8 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
camera_in_enabled=True, video_in_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from typing import Optional from typing import Optional
@@ -46,7 +47,7 @@ class UserImageRequester(FrameProcessor):
await self.push_frame(frame, direction) await self.push_frame(frame, direction)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
# Get WebRTC peer connection ID # Get WebRTC peer connection ID
webrtc_peer_id = webrtc_connection.pc_id webrtc_peer_id = webrtc_connection.pc_id
@@ -57,10 +58,8 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
camera_in_enabled=True, video_in_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from typing import Optional from typing import Optional
@@ -46,7 +47,7 @@ class UserImageRequester(FrameProcessor):
await self.push_frame(frame, direction) await self.push_frame(frame, direction)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
# Get WebRTC peer connection ID # Get WebRTC peer connection ID
webrtc_peer_id = webrtc_connection.pc_id webrtc_peer_id = webrtc_connection.pc_id
@@ -57,10 +58,8 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
camera_in_enabled=True, video_in_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
from dotenv import load_dotenv from dotenv import load_dotenv
from loguru import logger from loguru import logger
@@ -30,16 +31,14 @@ class TranscriptionLogger(FrameProcessor):
print(f"Transcription: {frame.text}") print(f"Transcription: {frame.text}")
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
webrtc_connection=webrtc_connection, webrtc_connection=webrtc_connection,
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -37,9 +37,7 @@ async def main():
transport = LocalAudioTransport( transport = LocalAudioTransport(
LocalAudioTransportParams( LocalAudioTransportParams(
audio_in_enabled=True, audio_in_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
) )
) )

View File

@@ -4,7 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -31,7 +31,7 @@ class TranscriptionLogger(FrameProcessor):
print(f"Transcription: {frame.text}") print(f"Transcription: {frame.text}")
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -30,7 +31,7 @@ class TranscriptionLogger(FrameProcessor):
print(f"Transcription: {frame.text}") print(f"Transcription: {frame.text}")
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -30,7 +31,7 @@ class TranscriptionLogger(FrameProcessor):
print(f"Transcription: {frame.text}") print(f"Transcription: {frame.text}")
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(

View File

@@ -4,7 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import time import time
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -52,16 +52,14 @@ class TranscriptionLogger(FrameProcessor):
self._last_transcription_time = time.time() self._last_transcription_time = time.time()
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
webrtc_connection=webrtc_connection, webrtc_connection=webrtc_connection,
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(params=VADParams(stop_secs=STOP_SECS)), vad_analyzer=SileroVADAnalyzer(params=VADParams(stop_secs=STOP_SECS)),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -32,7 +33,7 @@ async def fetch_weather_from_api(function_name, tool_call_id, args, llm, context
await result_callback({"conditions": "nice", "temperature": "75"}) await result_callback({"conditions": "nice", "temperature": "75"})
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -40,9 +41,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -31,7 +32,7 @@ async def get_weather(function_name, tool_call_id, arguments, llm, context, resu
await result_callback(f"The weather in {location} is currently 72 degrees and sunny.") await result_callback(f"The weather in {location} is currently 72 degrees and sunny.")
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -39,9 +40,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import asyncio import asyncio
import os import os
@@ -57,7 +58,7 @@ async def get_image(function_name, tool_call_id, arguments, llm, context, result
) )
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
global webrtc_peer_id global webrtc_peer_id
webrtc_peer_id = webrtc_connection.pc_id webrtc_peer_id = webrtc_connection.pc_id
@@ -68,10 +69,8 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
camera_in_enabled=True, # Make sure camera input is enabled video_in_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -32,7 +33,7 @@ async def fetch_weather_from_api(function_name, tool_call_id, args, llm, context
await result_callback({"conditions": "nice", "temperature": "75"}) await result_callback({"conditions": "nice", "temperature": "75"})
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -40,9 +41,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import asyncio import asyncio
import os import os
@@ -57,7 +58,7 @@ async def get_image(function_name, tool_call_id, arguments, llm, context, result
) )
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
global webrtc_peer_id global webrtc_peer_id
webrtc_peer_id = webrtc_connection.pc_id webrtc_peer_id = webrtc_connection.pc_id
@@ -68,10 +69,8 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
camera_in_enabled=True, # Make sure camera input is enabled video_in_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import asyncio import asyncio
import os import os
@@ -59,7 +60,7 @@ async def get_image(function_name, tool_call_id, arguments, llm, context, result
) )
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
global webrtc_peer_id global webrtc_peer_id
webrtc_peer_id = webrtc_connection.pc_id webrtc_peer_id = webrtc_connection.pc_id
@@ -70,10 +71,8 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
camera_in_enabled=True, # Make sure camera input is enabled video_in_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -32,7 +33,7 @@ async def fetch_weather_from_api(function_name, tool_call_id, args, llm, context
await result_callback({"conditions": "nice", "temperature": "75"}) await result_callback({"conditions": "nice", "temperature": "75"})
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -40,9 +41,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -30,7 +31,7 @@ async def fetch_weather_from_api(function_name, tool_call_id, args, llm, context
await result_callback({"conditions": "nice", "temperature": "75"}) await result_callback({"conditions": "nice", "temperature": "75"})
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -38,9 +39,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -32,7 +33,7 @@ async def fetch_weather_from_api(function_name, tool_call_id, args, llm, context
await result_callback({"conditions": "nice", "temperature": "75"}) await result_callback({"conditions": "nice", "temperature": "75"})
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -40,9 +41,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -32,7 +33,7 @@ async def fetch_weather_from_api(function_name, tool_call_id, args, llm, context
await result_callback({"conditions": "nice", "temperature": "75"}) await result_callback({"conditions": "nice", "temperature": "75"})
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -40,9 +41,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -32,7 +33,7 @@ async def fetch_weather_from_api(function_name, tool_call_id, args, llm, context
await result_callback({"conditions": "nice", "temperature": "75"}) await result_callback({"conditions": "nice", "temperature": "75"})
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -40,9 +41,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -32,7 +33,7 @@ async def fetch_weather_from_api(function_name, tool_call_id, args, llm, context
await result_callback({"conditions": "nice", "temperature": "75"}) await result_callback({"conditions": "nice", "temperature": "75"})
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -40,9 +41,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -32,7 +33,7 @@ async def fetch_weather_from_api(function_name, tool_call_id, args, llm, context
await result_callback({"conditions": "nice", "temperature": "75"}) await result_callback({"conditions": "nice", "temperature": "75"})
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -40,9 +41,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -32,7 +33,7 @@ async def fetch_weather_from_api(function_name, tool_call_id, args, llm, context
await result_callback({"conditions": "nice", "temperature": "75"}) await result_callback({"conditions": "nice", "temperature": "75"})
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -40,9 +41,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -11,6 +11,7 @@ currently support function calling. The example shows basic chat completion func
using Perplexity's API while maintaining compatibility with the OpenAI interface. using Perplexity's API while maintaining compatibility with the OpenAI interface.
""" """
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -31,7 +32,7 @@ from pipecat.transports.network.webrtc_connection import SmallWebRTCConnection
load_dotenv(override=True) load_dotenv(override=True)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -39,9 +40,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -32,7 +33,7 @@ async def fetch_weather_from_api(function_name, tool_call_id, args, llm, context
await result_callback({"conditions": "nice", "temperature": "75"}) await result_callback({"conditions": "nice", "temperature": "75"})
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -40,9 +41,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -32,7 +33,7 @@ async def fetch_weather_from_api(function_name, tool_call_id, args, llm, context
await result_callback({"conditions": "nice", "temperature": "75"}) await result_callback({"conditions": "nice", "temperature": "75"})
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -40,9 +41,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -32,7 +33,7 @@ async def fetch_weather_from_api(function_name, tool_call_id, args, llm, context
await result_callback({"conditions": "nice", "temperature": "75"}) await result_callback({"conditions": "nice", "temperature": "75"})
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -40,9 +41,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -52,7 +53,7 @@ async def barbershop_man_filter(frame) -> bool:
return current_voice == "Barbershop Man" return current_voice == "Barbershop Man"
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -60,9 +61,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from deepgram import LiveOptions from deepgram import LiveOptions
@@ -45,7 +46,7 @@ async def spanish_filter(frame) -> bool:
return current_language == "Spanish" return current_language == "Spanish"
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -53,9 +54,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -25,7 +26,7 @@ from pipecat.transports.services.daily import DailyTransportMessageFrame
load_dotenv(override=True) load_dotenv(override=True)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -33,9 +34,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -26,7 +27,7 @@ from pipecat.transports.network.webrtc_connection import SmallWebRTCConnection
load_dotenv(override=True) load_dotenv(override=True)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -34,9 +35,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -20,30 +20,17 @@ from pipecat.transports.network.webrtc_connection import SmallWebRTCConnection
load_dotenv(override=True) load_dotenv(override=True)
# Parse command line arguments async def run_bot(webrtc_connection: SmallWebRTCConnection, args: argparse.Namespace):
# This will be used to pass the input video file to the bot
# You can run the bot with a command like:
# python 18-gstreamer-filesrc.py -i path/to/video.mp4
def parse_arguments():
parser = argparse.ArgumentParser(description="Daily AI SDK Bot Sample")
parser.add_argument("-i", "--input", type=str, required=True, help="Input video file")
return parser.parse_args()
args = parse_arguments()
async def run_bot(webrtc_connection: SmallWebRTCConnection):
logger.info(f"Starting bot with video input: {args.input}") logger.info(f"Starting bot with video input: {args.input}")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
webrtc_connection=webrtc_connection, webrtc_connection=webrtc_connection,
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_out_enabled=True,
camera_out_enabled=True, video_out_enabled=True,
camera_out_is_live=True, video_out_is_live=True,
camera_out_width=1280, video_out_width=1280,
camera_out_height=720, video_out_height=720,
), ),
) )
@@ -72,4 +59,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
if __name__ == "__main__": if __name__ == "__main__":
from run import main from run import main
main() parser = argparse.ArgumentParser(description="Pipecat Bot Runner")
parser.add_argument("-i", "--input", type=str, required=True, help="Input video file")
main(parser)

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
from dotenv import load_dotenv from dotenv import load_dotenv
from loguru import logger from loguru import logger
@@ -19,17 +20,17 @@ from pipecat.transports.network.webrtc_connection import SmallWebRTCConnection
load_dotenv(override=True) load_dotenv(override=True)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot with video test source") logger.info(f"Starting bot with video test source")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
webrtc_connection=webrtc_connection, webrtc_connection=webrtc_connection,
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
camera_out_enabled=True, video_out_enabled=True,
camera_out_is_live=True, video_out_is_live=True,
camera_out_width=1280, video_out_width=1280,
camera_out_height=720, video_out_height=720,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from datetime import datetime from datetime import datetime
@@ -65,7 +66,7 @@ weather_function = FunctionSchema(
tools = ToolsSchema(standard_tools=[weather_function]) tools = ToolsSchema(standard_tools=[weather_function])
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -73,9 +74,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(params=VADParams(stop_secs=0.8)), vad_analyzer=SileroVADAnalyzer(params=VADParams(stop_secs=0.8)),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from datetime import datetime from datetime import datetime
@@ -64,7 +65,7 @@ weather_function = FunctionSchema(
tools = ToolsSchema(standard_tools=[weather_function]) tools = ToolsSchema(standard_tools=[weather_function])
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -72,9 +73,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(params=VADParams(stop_secs=0.8)), vad_analyzer=SileroVADAnalyzer(params=VADParams(stop_secs=0.8)),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import glob import glob
import json import json
import os import os
@@ -162,7 +163,7 @@ tools = [
] ]
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
global tts global tts
@@ -172,9 +173,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(params=VADParams(stop_secs=0.8)), vad_analyzer=SileroVADAnalyzer(params=VADParams(stop_secs=0.8)),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import asyncio import asyncio
import glob import glob
import json import json
@@ -164,7 +165,7 @@ tools = [
] ]
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -172,9 +173,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(params=VADParams(stop_secs=0.8)), vad_analyzer=SileroVADAnalyzer(params=VADParams(stop_secs=0.8)),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import glob import glob
import json import json
import os import os
@@ -157,7 +158,7 @@ tools = [
] ]
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
global tts global tts
@@ -167,9 +168,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(params=VADParams(stop_secs=0.8)), vad_analyzer=SileroVADAnalyzer(params=VADParams(stop_secs=0.8)),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import glob import glob
import json import json
import os import os
@@ -221,7 +222,7 @@ tools = [
] ]
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
global tts, webrtc_peer_id global tts, webrtc_peer_id
webrtc_peer_id = webrtc_connection.pc_id webrtc_peer_id = webrtc_connection.pc_id
@@ -232,10 +233,8 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
camera_in_enabled=True, video_in_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(params=VADParams(stop_secs=0.8)), vad_analyzer=SileroVADAnalyzer(params=VADParams(stop_secs=0.8)),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -47,9 +47,8 @@ async def main():
token=None, token=None,
bot_name="Pipecat bot", bot_name="Pipecat bot",
params=DailyParams( params=DailyParams(
vad_enabled=True, audio_in_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import os import os
from dotenv import load_dotenv from dotenv import load_dotenv
@@ -31,7 +32,7 @@ from pipecat.transports.network.webrtc_connection import SmallWebRTCConnection
load_dotenv(override=True) load_dotenv(override=True)
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -39,9 +40,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import asyncio import asyncio
import os import os
import time import time
@@ -200,7 +201,7 @@ async def fetch_weather_from_api(function_name, tool_call_id, args, llm, context
await result_callback({"conditions": "nice", "temperature": "75"}) await result_callback({"conditions": "nice", "temperature": "75"})
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -208,9 +209,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import asyncio import asyncio
import os import os
import time import time
@@ -404,7 +405,7 @@ async def fetch_weather_from_api(function_name, tool_call_id, args, llm, context
await result_callback({"conditions": "nice", "temperature": "75"}) await result_callback({"conditions": "nice", "temperature": "75"})
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -412,9 +413,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -4,6 +4,7 @@
# SPDX-License-Identifier: BSD 2-Clause License # SPDX-License-Identifier: BSD 2-Clause License
# #
import argparse
import asyncio import asyncio
import os import os
import time import time
@@ -626,7 +627,7 @@ class OutputGate(FrameProcessor):
break break
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
transport = SmallWebRTCTransport( transport = SmallWebRTCTransport(
@@ -634,9 +635,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
params=TransportParams( params=TransportParams(
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

View File

@@ -49,10 +49,10 @@ async def main():
token, token,
"Respond bot", "Respond bot",
DailyParams( DailyParams(
audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
audio_out_mixer=soundfile_mixer, audio_out_mixer=soundfile_mixer,
transcription_enabled=True, transcription_enabled=True,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
), ),
) )

View File

@@ -14,6 +14,7 @@ Example:
INPUT_AUDIO_PATH=my_audio.mp3 python 23-bot-background-sound.py INPUT_AUDIO_PATH=my_audio.mp3 python 23-bot-background-sound.py
""" """
import argparse
import asyncio import asyncio
import os import os
@@ -41,7 +42,7 @@ if not audio_path:
raise ValueError("No INPUT_AUDIO_PATH specified in environment variables") raise ValueError("No INPUT_AUDIO_PATH specified in environment variables")
async def run_bot(webrtc_connection: SmallWebRTCConnection): async def run_bot(webrtc_connection: SmallWebRTCConnection, _: argparse.Namespace):
logger.info(f"Starting bot") logger.info(f"Starting bot")
soundfile_mixer = SoundfileMixer( soundfile_mixer = SoundfileMixer(
@@ -56,9 +57,7 @@ async def run_bot(webrtc_connection: SmallWebRTCConnection):
audio_in_enabled=True, audio_in_enabled=True,
audio_out_enabled=True, audio_out_enabled=True,
audio_out_mixer=soundfile_mixer, audio_out_mixer=soundfile_mixer,
vad_enabled=True,
vad_analyzer=SileroVADAnalyzer(), vad_analyzer=SileroVADAnalyzer(),
vad_audio_passthrough=True,
), ),
) )

Some files were not shown because too many files have changed in this diff Show More