elegant-battery-64445
09/15/2025, 4:33 PMconst session = new voice.AgentSession({
vad: vad,
stt: new openai.STT({ model: 'whisper-1'}),
llm: new openai.LLM({ model: 'gpt-4o-mini' }),
tts: new cartesia.TTS({
model: 'sonic-2',
voice: 'f786b574-daa5-4673-aa0c-cbe3e8534c02'
}),
turnDetection: new livekit.turnDetector.MultilingualModel(),
});tall-airline-16756
09/15/2025, 4:33 PMelegant-battery-64445
09/15/2025, 4:34 PMaudioTranscript: ""tall-airline-16756
09/15/2025, 4:34 PMelegant-battery-64445
09/15/2025, 4:34 PMaudioTranscript: "" even when i am sending the audioetall-airline-16756
09/15/2025, 4:35 PMaudioTranscript field remains empty even though you're sending audio. Let’s explore a few common reasons why this might happen:
• Final Transcript Not Received: The audioTranscript updates only when a FINAL_TRANSCRIPT event comes through from the Speech-to-Text (STT) system. Interim transcripts are saved separately and don’t update this field.
• STT Node Misconfiguration: It’s worth double-checking that the STT node is properly set up and enabled. If input_audio_transcription isn’t enabled in your model settings, transcription won’t happen.
• Empty or Invalid STT Response: Sometimes, if the STT engine returns an empty or invalid transcript, the field won’t update.
• Audio Input Issues: Make sure the audio you’re sending matches the expected format, like the correct sample rate and channel count.
Here’s a simple way to troubleshoot this:
1. Confirm that input_audio_transcription is enabled in your model settings.
2. Check your logs to see if FINAL_TRANSCRIPT events are coming through.
3. Ensure the STT node is properly initialized and is receiving audio frames.
4. Verify that the audio actually contains speech and matches the required format.
If you try these steps and still run into issues, please don’t hesitate to reach out—I’m here to help you get this sorted!
Sources: livekit-plugins/livekit-plugins-google/livekit/plugins/google/beta/realtime... | How to Set Up Speech-to-Text Input with Text-Only Output in LiveKit Agents | agents/src/transcription.tselegant-battery-64445
09/15/2025, 4:36 PMelegant-battery-64445
09/15/2025, 4:36 PMtall-airline-16756
09/15/2025, 4:37 PMtranscription_enabled setting within the RoomOutputOptions. This setting is what controls whether the speech-to-text (STT) transcriptions are sent as text streams to your frontend.
Here’s a simple way to verify it:
1. Take a look at the RoomOutputOptions configuration. If transcription_enabled is set to True or isn’t specifically set (since it defaults to True), that means transcription output is turned on.
2. If you’re working with AgentSession, you can also check the transcription_enabled property inside the AgentOutput component. For example:
if session.output.transcription_enabled:
print("Input audio transcription (output) is enabled")
else:
print("Input audio transcription (output) is disabled")
If you have any questions or want me to walk you through this further, just let me know—I’m here to help!
Sources: Text and transcriptions | LiveKit Docs | Text and transcriptions | LiveKit Docs | examples/voice_agents/toggle_io.pyelegant-battery-64445
09/15/2025, 4:38 PMtall-airline-16756
09/15/2025, 4:38 PMlk.transcription text stream topic to show these transcriptions.
2. Default Settings: Transcription is set to be on by default in the RoomOutputOptions with transcription_enabled=True. So, unless someone has turned it off, your audio input should be getting transcribed.
3. Agent Code Check: If you can peek into the agent’s code, look out for any places where set_transcription_enabled(False) or transcription_enabled=False might be set—that would mean transcription is disabled.
4. Custom Receiver Note: Sometimes, if audio output is off, you might not see transcriptions in the UI. In that case, you can add a custom text stream handler to confirm transcription is happening behind the scenes.
If you have any questions or want me to walk you through any of these steps, just let me know—I’m here to help!
Sources: examples/voice_agents/toggle_io.py | How to Set Up Speech-to-Text Input with Text-Only Output in LiveKit Agents | .env.example | Agents Playground | LiveKit Docs | Text and transcriptions | LiveKit Docselegant-battery-64445
09/15/2025, 4:42 PMtall-airline-16756
09/15/2025, 4:42 PMStreamAdapter. What this does is it buffers the audio until the VAD detects the end of someone speaking, and then it sends that audio for transcription.
Here’s a simple example in Node.js to help you get started:
import { openai, silero } from '@livekit/agents';
const whisperSTT = new openai.STT();
const vad = await silero.VAD.new();
const vadStream = vad.stream();
const stt = new STTStreamAdapter(whisperSTT, vadStream);
This way, even STT models that don’t support streaming can still be used smoothly in a streaming setup. If you’d like, I’m here to help you step through the implementation—just let me know!
Sources: Speech-to-text (STT) integrations | LiveKit Docs | livekit-agents/livekit/agents/stt/stream_adapter.py