Deepgram Nova-3 Stream API

Live transcription over a socket, returning interim results while the speaker is still talking and a settled transcript once each phrase ends.

DeepgramTranscriptionProprietary EndpointNew

About Deepgram Nova-3 Stream

Live transcription over a socket, returning interim results while the speaker is still talking and a settled transcript once each phrase ends.

Use the OpenAI Realtime protocol, or send 16 kHz mono 16-bit PCM as binary frames and read Results events.

Also known as Deepgram-Nova-3-Stream

transcriptionspeech to textrealtimestreaming asrmultilingual

Deepgram Nova-3 Stream specs

Model ID
deepgram-nova-3-stream
Author
Deepgram
Category
Transcription
Released
-
Input
Audio
Output
Text
Endpoints
WEBSOCKET/v1/realtime
Alternate model IDs
nova-3-streamdeepgram/deepgram-nova-3-stream

Deepgram Nova-3 Stream API pricing

Live pay-as-you-go rates from the EmpirioLabs catalog. You are billed only for what you use, with no monthly minimum.

Type
Spec
Rate
Transcription
per minute of audio
$0.025
Compare on the full pricing page

How to call the Deepgram Nova-3 Stream API

Deepgram Nova-3 Stream transcribes a live audio stream over a WebSocket at wss://api.empiriolabs.ai/v1/realtime?model=deepgram-nova-3-stream, not over the HTTP endpoints. Connect with the model id deepgram-nova-3-stream and send your EmpirioLabs API key as an Authorization: Bearer header on the handshake. Append base64 16-bit PCM audio and read transcript events back while the speaker is still talking. A browser cannot set headers on a WebSocket, so open this connection from your server and relay audio to the browser over your own socket. Get an API key from the EmpirioLabs dashboard.

Python (websockets)
import asyncio, json, os, websockets

async def main():
    async with websockets.connect(
        "wss://api.empiriolabs.ai/v1/realtime?model=deepgram-nova-3-stream",
        additional_headers=[
            ("Authorization", f"Bearer {os.environ['EMPIRIOLABS_API_KEY']}"),
        ],
        max_size=None,
    ) as ws:
        print(json.loads(await ws.recv())["type"])  # session.created

        import base64

        # 16-bit PCM microphone audio, base64 encoded, in small chunks.
        for chunk in read_microphone_chunks():
            await ws.send(json.dumps({
                "type": "input_audio_buffer.append",
                "audio": base64.b64encode(chunk).decode(),
            }))

        await ws.send(json.dumps({"type": "input_audio_buffer.commit"}))

        async for raw in ws:
            event = json.loads(raw)
            if event["type"].endswith("input_audio_transcription.delta"):
                # "text" is settled transcript; "stash" is still in progress.
                if event.get("text"):
                    print(event["text"], end="", flush=True)

asyncio.run(main())
Full Deepgram Nova-3 Stream API reference

Deepgram Nova-3 Stream API parameters

Request parameters supported by the Deepgram Nova-3 Stream API on EmpirioLabs. Defaults apply when a field is omitted.

ParameterTypeDefaultRange / valuesDescription
input_audio_formatenumlinear16linear16Encoding of the audio you send: 16 kHz mono 16-bit PCM, or 24 kHz in the current OpenAI Realtime protocol.
languagestringen-Language code such as en, es or fr, or multi for speech that switches between languages. Set it with language= on the connection URL or in the session's...

Good to know

Live transcription over a WebSocket at wss://api.empiriolabs.ai/v1/realtime?model=deepgram-nova-3-stream, with your API key in the Authorization header. Use the OpenAI Realtime protocol, including the OpenAI SDKs, or Deepgram's streaming protocol with 16 kHz mono 16-bit PCM sent as binary frames. Add language= to the connection URL to transcribe a specific language. Billing is per minute of audio sent.

Deepgram Nova-3 Stream API: common questions

How much does the Deepgram Nova-3 Stream API cost?

On EmpirioLabs, Deepgram Nova-3 Stream is billed pay as you go: Transcription $0.025 per minute of audio. The live rate card on this page always matches what the API charges.

Which endpoint does Deepgram Nova-3 Stream use?

Deepgram Nova-3 Stream is served through WEBSOCKET /v1/realtime on api.empiriolabs.ai with standard bearer-token authentication.

Can I try Deepgram Nova-3 Stream in the browser before integrating?

Open the EmpirioLabs playground and press Start session to try it in your browser. Deepgram Nova-3 Stream runs over a WebSocket rather than a request and response, so to build with it start from the realtime voice quickstart. Connect from your server with your EmpirioLabs API key and the model id deepgram-nova-3-stream, then stream audio in both directions.

How do I get a Deepgram Nova-3 Stream API key?

Create an EmpirioLabs account, then generate a key under API Keys in the dashboard. Billing is pay-as-you-go credits, so you only pay for the requests you make.

Ready to use better endpoints?

Check out our pricing or reach out if you want your own model deployed on our stack.