pipecat-ai / pipecat

Open Source framework for voice and multimodal conversational AI
BSD 2-Clause "Simplified" License
3.03k stars 241 forks source link

Can other transports be used #325

Open pxz2016 opened 1 month ago

pxz2016 commented 1 month ago

Such as livekit: End to end stack for WebRTC

aconchillo commented 1 month ago

Yes, absolutely, as soon as someone adds the LiveKit transport. But currently, that's not implemented.

ashutoshsaboo commented 1 month ago

Big +1 on this request! Would be super interested in livekit support for pipecat!

TomTom101 commented 1 month ago

Gotta say their API sounds familiar:

async def entrypoint(ctx: JobContext):
2  vad = silero.VAD()
3  stt = deepgram.STT()
4  llm = openai.LLM()
5  tts = elevenlabs.TTS()
6  assistant = VoiceAssistant(vad, stt, llm, tts, allow_interruptions=True)
7  assistant.set_system_message(["You are a voice assistant created by LiveKit."])
8  await assistant.say('Hello, how can I help you today?')
9
10  @ctx.room.on("participant_connected")
11  def _on_participant_connected(participant:
12                               rtc.RemoteParticipant):
13    assistant.start(ctx.room, participant)
14  
joachimchauvet commented 1 month ago

I'm planning to work on LiveKit whenever I have some free time. Has anybody started working on it already?

q815101630 commented 3 weeks ago

I'm planning to work on LiveKit whenever I have some free time. Has anybody started working on it already?

Hi @joachimchauvet Do you have progress? would love to do the same!

davidzhao commented 3 weeks ago

I'd love to see this happen as well! @kwindla and I were talking about collaborating on this and would love to help however I can.

nulyang commented 3 weeks ago

396 I tried adding a simple serializer to help bridge LiveKit Agents via WebSocket.

joachimchauvet commented 3 weeks ago

Hi @joachimchauvet Do you have progress? would love to do the same!

Yes, but I'm not quite there yet. I've been able to connect to a LiveKit room and send TTS audio from my Pipecat pipeline, but I'm running into a few issues with some callback handlers and receiving frames from participants. Once I've tidied things up and have something decent enough to share, I'll post an update here. Still haven't gotten around to video yet, though.

Edit: Haven't had the chance to clean that up yet but if anybody wants some inspiration already, I'll push my progress here.

ashutoshsaboo commented 5 days ago

@davidzhao any plans on shipping livekit support for pipecat? One of the reasons not able to use pipecat & livekit, is primarily because of lack of livekit support and vice-versa.

giantamoeba commented 5 days ago

I would like to add my voice to the others, livekit-transport would be fantastic especially video, that would be the last missing puzzle piece for a fully local solution. I hope I am not missing anything but I think the local transport does not support video or image input.

pushpak1300 commented 4 days ago

Livekit will be good option.

ChrisFeldmeier commented 9 hours ago

+1 for live kit here, if it is really needed I can help to build livekit pipecat module.

ChrisFeldmeier commented 6 hours ago

@joachimchauvet : Can you send me a test main.py or so with what you dev livekit it, or a example how to use it. (I know it is still in dev, but I could optimized it with your code and help you)

joachimchauvet commented 5 hours ago

@joachimchauvet : Can you send me a test main.py or so with what you dev livekit it, or a example how to use it. (I know it is still in dev, but I could optimized it with your code and help you)

Sure! I'm on my phone right now but I'll send that over in the morning (CET) with the latest changes I have locally.