Hi Cartesia team, you guys have the best speech to text API in the market, its the fastest and most reliable yet i cannot use it due to the fact that my application needs partial transcript not just the full transcript returned when endpointing marks done or flush is called. Without partial transcript/interim result my application cannot do voice interruption. Can you guys please add that to your api an option to not only receive final transcript but also ones not final ? Thank you
#Interim results/partial transcript for STT
1 messages · Page 1 of 1 (latest)
Right now i have to use deepgram which is not accurate enough for me and slower than Cartesia and unreliable in speed. Tons of issues, but they have interim results so i have no choice
Hi Trung,
Thanks for reaching out to Cartesia Support and for the kind words!
Our streaming STT WebSocket does provide interim / partial transcripts. As you stream audio, the server sends messages of type transcript with is_final: false for interim results, and is_final: true for final ones. You can use these interim results to implement barge-in/voice interruption.
Details are in the docs here: Streaming STT WebSocket
Hey man unfortunately the reality is i did try that and i only ever receive is_final: true
I really does not receive any is_final: false at all
I dont know why
Im using Pipecat - the most popular framework and what they did when dealing with Cartesia is correct
Yet i have printed it out all cartesia messages and its only ever is_final: True happening when flushing happens
Could you check with the tech team on this>
Thanks for the follow-up!
Our WebSocket API does emit is_final: false interim transcripts, so something in the pipeline is likely causing you to only see finals. A few likely causes:
- Pipecat's VAD flushing: Pipecat’s Cartesia STT sends a
"finalize"command immediately uponVADUserStoppedSpeakingFrame, which forces finalization. If VAD triggers too aggressively, it may flush before interim results are sent. Check your VAD sensitivity and silence thresholds. - Endpointing settings: A very low
max_silence_duration_secscauses quick endpointing, reducing interim result windows. Try increasing it (e.g., 1.0–2.0s). - Audio chunk size: Sending large audio chunks instead of small increments (~20–200ms) can cause early finalization before interims.
I would recommend testing by connecting directly to our WebSocket with small real-time audio chunks to confirm receipt ofis_final: falsemessages. This will help isolate if the issue is API or integration related.
Ok im pretty sure its not the first one since i am logging all over the place and i can speak 5s continuously not letting pipecat send finalize and i wont receive interim only boom - a finalize at the end. I will check the other two points you mentioned hopefully that might be it
Yeah mate it is definitely not it. This is 100% a technical issue in Cartesia side mate im sure of it. The problem is i will be speaking for 10 seconds nonstop lol and not a single transcript will be produced and when i end my speech it calls flush from pipecat and boom the final transcript comes, that’s what it is - not that the final transcript comes early due to endpointing, etc.
So if the agent is speaking i will be speaking on top of her for 10 seconds straight and cartesia won’t produce a single interim is_final=false transcript and also no final transcript, only after 10s of nonstop speech when i stop speaking that VAD detects and calls flush that Cartesia releases the full transcript.
Cartesia STT websocket currently is unable to produce interim transcript. I have read pipecat code to the core, it’s 100% a Cartesia issue so can you please talk to the tech team ?
Can u help me w this
Can u help me on this
Hello @thorny tusk, thank you for your patience! We are investigating this and will get back to you.
Thank you for your patience!
After investigation, the STT API includes the is_final parameter, but currently it always returns True. Partial or interim transcripts with is_final: False are not yet supported. We plan to add this feature in future model updates, though no timeline is available at this moment.
Wow this is an important feature thou man :(. No serious system determines the turn start of a speech by pure VAD anymore, this renders Cartesia STT not usable for us. And i believe many others too. Really hope you guys can give a high priority and discuss ab it.
We’ve flagged this internally as a feature request for real-time interruption use cases. While we don’t have an ETA yet, your feedback is directly helping to prioritize this development!