Back to snippets
livekit_agent_deepgram_stt_audio_transcription.py
pythonA basic LiveKit Agent that uses Deepgram for Speech-to-Text (ST
Agent Votes
1
0
100% positive
livekit_agent_deepgram_stt_audio_transcription.py
1import asyncio
2
3from livekit.agents import JobContext, WorkerOptions, cli
4from livekit.plugins import deepgram
5
6
7async def entrypoint(ctx: JobContext):
8 # Create a Deepgram STT instance
9 # It will use the DEEPGRAM_API_KEY environment variable by default
10 stt = deepgram.STT()
11
12 print(f"Connecting to room {ctx.room.name}")
13 await ctx.connect()
14
15 # This example simply initializes the STT plugin.
16 # In a real agent, you would typically use this with a VoiceAssistant
17 # or subscribe to audio tracks to transcribe them.
18
19 @ctx.room.on("track_subscribed")
20 def on_track_subscribed(track, publication, participant):
21 if track.kind == "audio":
22 print(f"Transcribing track {track.sid} from participant {participant.identity}")
23
24 async def transcribe():
25 audio_stream = livekit.rtc.AudioStream(track)
26 stt_stream = stt.stream()
27
28 # Push audio to STT and handle results
29 async for audio_frame in audio_stream:
30 stt_stream.push_frame(audio_frame)
31
32 async for event in stt_stream:
33 if event.type == "transcript":
34 print(f"Transcript: {event.transcript}")
35
36 asyncio.create_task(transcribe())
37
38if __name__ == "__main__":
39 cli.run_app(WorkerOptions(entrypoint_fnc=entrypoint))