MCPInstall

deepgram-python-conversational-stt

Use when writing or reviewing Python code in this repo that calls Deepgram Conversational STT v2 / Flux (/v2/listen) for turn-aware streaming transcription. Covers client.listen.v2.connect(...), Flux models, end-of-turn detection. Use deepgram-python-speech-to-text for standard v1 ASR, deepgram-python-voice-agent for full-duplex interactive assistants. Triggers include "flux", "v2 listen", "conversational STT", "turn detection", "end of turn", "EOT", "listen.v2", "flux-general-en", "flux-general-multi".

Installs
39
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/deepgram/deepgram-python-sdk --skill deepgram-python-conversational-stt
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads deepgram-python-conversational-stt automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Using Deepgram Conversational STT / Flux (Python SDK)

Turn-aware streaming STT at /v2/listen — optimized for conversational audio (end-of-turn detection, eager EOT, barge-in scenarios).

When to use this product

  • You're building a conversational UI and need explicit turn boundaries.
  • You want Flux models (optimized for human-to-human or human-to-agent conversation).
  • You want lower latency turn signals than v1 utterance_end.

Use a different skill when:

  • You want general-purpose transcription (captions, batch, non-conversational) → deepgram-python-speech-to-text.
  • You want a full interactive agent (STT + LLM + TTS) → deepgram-python-voice-agent.
  • You want analytics (summarize/sentiment) → deepgram-python-audio-intelligence.

Authentication

import os
from dotenv import load_dotenv
load_dotenv()

from deepgram import DeepgramClient
client = DeepgramClient(api_key=os.environ["DEEPGRAM_API_KEY"])

Header: Authorization: Token <api_key>. WSS only — no REST path on v2.

Quick start

import threading, time
from pathlib import Path
from deepgram.core.events import EventType
from deepgram.listen.v2.types import (
    ListenV2CloseStream,
    ListenV2Connected,
    ListenV2FatalError,
    ListenV2TurnInfo,
)

with client.listen.v2.connect(
    model="flux-general-en",
    encoding="linear16",
    sample_rate="16000",
) as conn:

    def on_message(m):
        if isinstance(m, ListenV2TurnInfo):
            print(f"turn {m.turn_index} [{m.event}] {m.transcript}")
        elif isinstance(m, dict):                     # untyped fallback
            if m.get("type") == "TurnInfo":
                print(f"turn {m.get('turn_index')} [{m.get('event')}] {m.get('transcript')}")
        else:
            print(f"event: {getattr(m, 'type', type(m).__name__)}")

    conn.on(EventType.OPEN,    lambda _: print("open"))
    conn.on(EventType.MESSAGE, on_message)
    conn.on(EventType.CLOSE,   lambda _: print("close"))
    conn.on(EventType.ERROR,   lambda e: print(f"err: {type(e).__name__}: {e}"))

    def send_audio():
        for chunk in mic_chunks():                     # 80ms recommended
            conn.send_media(chunk)
            time.sleep(0.01)
        conn.send_close_stream(ListenV2CloseStream(type="CloseStream"))

    threading.Thread(target=send_audio, daemon=True).start()
    conn.start_listening()

Key parameters

ParamNotes
modelflux-general-en (English) or flux-general-multi (multilingual) — REQUIRED, must be a Flux model
encodinglinear16, mulaw, etc. Omit for containerized audio
sample_rateString in the SDK signature, e.g. "16000"
eager_eot_thresholdFire end-of-turn early at this confidence
eot_thresholdPrimary end-of-turn confidence; set to "1.0" to suppress confidence-based endings
eot_timeout_msTime-based fallback turn end; still applies when eot_threshold="1.0"
keytermBias for domain keywords
mip_opt_out, tagMetadata / privacy flags
language_hintONLY for flux-general-multi
authorization, request_optionsOverride auth or request options

No language parameter on v2 — language is implied by model (flux-general-en) or hinted via language_hint on multi.

For application-controlled turns, use eot_threshold="1.0" with a sufficiently large eot_timeout_ms, then call conn.send_force_end_turn() for the active turn. ForceEndTurn is available on Deepgram-hosted deployments, including EU and AU. On self-hosted deployments, it requires the 2026-09-15 release or later with listen_v2 = true and listen_v2_force_end_turn = true under [features]; see examples/16-transcription-force-end-turn.py.

Events (server → client)

  • ListenV2Connected — connection established
  • ListenV2ConfigureSuccess / ListenV2ConfigureFailure — mid-session config changes
  • ListenV2TurnInfo — per-turn transcript + event (Update, EndOfTurn, EagerEndOfTurn, ...) + turn_index
  • ListenV2FatalError — terminal error

Client messages: ListenV2Media, ListenV2Configure, ListenV2ForceEndTurn, ListenV2CloseStream.

Async equivalent

from deepgram import AsyncDeepgramClient
client = AsyncDeepgramClient()

async with client.listen.v2.connect(model="flux-general-en", ...) as conn:
    # same .on(...) handlers, then:
    await conn.start_listening()

API reference (layered)

  1. In-repo reference: reference.md — "Listen V2 Connect".
  2. AsyncAPI (WSS): https://developers.deepgram.com/asyncapi.yaml
  3. Context7: library ID /llmstxt/developers_deepgram_llms_txt.
  4. Product docs:

Gotchas

  1. /v2/listen, not /v1/listen. Different route, different client path (listen.v2 vs listen.v1).
  2. Flux models only. nova-3, base, etc. will be rejected. Use flux-general-en or flux-general-multi.
  3. No language parameter. Language is set by model choice. Use language_hint on flux-general-multi.
  4. sample_rate is a STRING in the SDK (e.g. "16000").
  5. Send ~80ms audio chunks for best turn-detection latency.
  6. Close with send_close_stream(ListenV2CloseStream(type="CloseStream")) — not send_finalize (that's v1).
  7. Messages may arrive as typed objects OR raw dicts — the SDK uses a tagged union with construct_type for unknowns. Handle both branches (see socket_client.py patch in .fernignore).
  8. socket_client.py is patched / frozen (see .fernignore → src/deepgram/listen/v2/socket_client.py). Don't overwrite that manual patch during regeneration; treat other listen/v2 files as generated unless the regen workflow says otherwise.
  9. Omit encoding/sample_rate for containerized audio (WAV, OGG, etc.) — the server detects them from the container.

Example files in this repo

  • examples/14-transcription-live-websocket-v2.py
  • tests/manual/listen/v2/connect/main.py

Related skills

  • deepgram-python-speech-to-text — v1 general-purpose STT (REST + WSS)
  • deepgram-python-voice-agent — full interactive assistant

Central product skills

For cross-language Deepgram product knowledge — the consolidated API reference, documentation finder, focused runnable recipes, third-party integration examples, and MCP setup — install the central skills:

npx skills add deepgram/skills

This SDK ships language-idiomatic code skills; deepgram/skills ships cross-language product knowledge (see api, docs, recipes, examples, starters, setup-mcp).

FAQ

What does the deepgram-python-conversational-stt skill do?

Use when writing or reviewing Python code in this repo that calls Deepgram Conversational STT v2 / Flux (/v2/listen) for turn-aware streaming transcription. Covers client.listen.v2.connect(...), Flux models, end-of-turn detection. Use deepgram-python-speech-to-text for standard v1 ASR, deepgram-python-voice-agent for full-duplex interactive assistants. Triggers include "flux", "v2 listen", "conversational STT", "turn detection", "end of turn", "EOT", "listen.v2", "flux-general-en", "flux-general-multi".

How do I install deepgram-python-conversational-stt?

Run npx skills add https://github.com/deepgram/deepgram-python-sdk --skill deepgram-python-conversational-stt in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/deepgram-python-conversational-stt/ (personal) or .claude/skills/deepgram-python-conversational-stt/ (project).

Which AI agents can use deepgram-python-conversational-stt?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is deepgram-python-conversational-stt safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains deepgram-python-conversational-stt?

It is published by deepgram in deepgram/deepgram-python-sdk, and it is an official skill from the maker of the technology it covers. It has 39 recorded installs.

More from deepgram/deepgram-python-sdk

View all →

deepgram-python-speech-to-text

deepgram/deepgram-python-sdk

Open the skill to read its SKILL.md instructions.

OfficialMedia & Creative47 installs

deepgram-python-audio-intelligence

deepgram/deepgram-python-sdk

Use when writing or reviewing Python code in this repo that calls Deepgram audio analytics overlays on /v1/listen - summarize, topics, intents, sentiment, diarize, redact, detectlanguage, entity detection. Same endpoint as plain STT but with analytics params. Covers both REST (client.listen.v1.media.transcribeurl/transcribefile) and the WSS-supported subset (client.listen.v1.connect). Use deepgram-python-speech-to-text for plain transcription, deepgram-python-text-intelligence for analytics on already-transcribed text. Triggers include "diarize", "summarize audio", "sentiment from audio", "redact PII", "topic detection audio", "audio intelligence", "detect language audio".

OfficialMedia & Creative40 installs

Popular media & creative skills

View category →

hyperframes

heygen-com/hyperframes

Read first to make, edit, animate or render any video with HyperFrames (HTML rendered to video), including launch films, explainers, music videos, charts, maps, vertical clips, title cards, captions and overlays. Holds the render contract, the work loop and what each kind of video needs.

Media & Creative1.2M installs

media-use

heygen-com/hyperframes

Get or make any media for a HyperFrames video - music, sound effects, images, icons, logos, voiceover, avatar and generated video, transcripts, cutouts, colour grades and looks - with HeyGen or free local tools, and mix placed audio. Also for footage that looks dark, flat or dull, or should be stylized or hidden.

Media & Creative1.1M installs

hyperframes-registry

heygen-com/hyperframes

About 450 ready-made HyperFrames blocks and components installed as editable source - transitions, overlays, titles, kinetic type, captions, charts, map overlays, 3D, camera moves. Use it before hand-building any named visual (CRT scanlines, glitch, film grain, a chart); also for hyperframes add and catalog.

Media & Creative1M installs

hyperframes-creative

heygen-com/hyperframes

Non-animation creative direction for HyperFrames videos. Use for design spec (frame.md / design.md) handling, palettes, typography, narration, beat planning, audio-reactive visuals, composition patterns, and brand / style decisions. For atomic motion patterns and scene blueprints, use hyperframes-animation.

Media & Creative916.5K installs

ai-video-generation

101-skills/superpowers

Generate AI videos with Google Veo, Seedance 2.0, HappyHorse, Wan, Grok and 40+ models via inference.sh CLI. Models: Veo 3.1, Veo 3, Seedance 2.0, HappyHorse 1.0, Wan 2.5, Grok Imagine Video, OmniHuman, Fabric, HunyuanVideo. Capabilities: text-to-video, image-to-video, reference-to-video, video editing, lipsync, avatar animation, video upscaling, foley sound. Use for: social media videos, marketing content, explainer videos, product demos, AI avatars. Triggers: video generation, ai video, text to video, image to video, veo, animate image, video from image, ai animation, video generator, generate video, t2v, i2v, ai video maker, create video with ai, runway alternative, pika alternative, sora alternative, kling alternative, seedance, happyhorse

Media & Creative881.5K installs

ai-image-generation

101-skills/superpowers

Generate AI images with GPT-Image-2, FLUX, Gemini, Grok, Seedream, Reve and 50+ models via inference.sh CLI. Models: GPT-Image-2, FLUX Dev LoRA, FLUX.2 Klein LoRA, Gemini 3 Pro Image, Grok Imagine, Seedream 4.5, Reve, ImagineArt. Capabilities: text-to-image, image-to-image, inpainting, LoRA, image editing, upscaling, text rendering. Use for: AI art, product mockups, concept art, social media graphics, marketing visuals, illustrations. Triggers: flux, image generation, ai image, text to image, stable diffusion, generate image, ai art, midjourney alternative, dall-e alternative, text2img, t2i, image generator, ai picture, create image with ai, generative ai, ai illustration, grok image, gemini image, gpt image, openai image, chatgpt image

Media & Creative880.3K installs