Skip to main content

Real-time microphone transcription with Deepgram using Python.

Project description

livetranscriber

A zero-dependency single-file helper that streams microphone audio to Deepgram for real-time speech-to-text. This is available as a package on PyPI.

Features

  • Simple API - single LiveTranscriber class.
  • Configurable - every Deepgram LiveOptions parameter can be overridden via keyword arguments; sensible Nova-3 defaults are provided.
  • Mandatory callback - forces the calling code to supply a function that will be invoked for every final transcript chunk (empty / interim chunks are ignored).
  • Output capture - optional output_path writes each final transcript line to disk.
  • Pause / resume - you may call pause or resume from your callback.
  • Graceful shutdown - Ctrl-C or stop shuts everything down and releases resources.

Installation

Install the package directly from PyPI using pip:

pip install livetranscriber

Alternatively, if you are working with the source code or a specific requirements file, you can install the dependencies listed in requirements.txt:

deepgram-sdk>=4,<5
numpy>=1.24  # build-time requirement of sounddevice
sounddevice>=0.4

Install with uv (preferred) or plain pip:

uv venv .venv && source .venv/bin/activate
uv pip install -r requirements.txt

or

pip install -r requirements.txt
  1. Python Version:

    Python 3.11 is required.

Environment Setup

Export your Deepgram API key (see https://console.deepgram.com):

export DEEPGRAM_API_KEY="dg_…"

Example Usage

from livetranscriber import LiveTranscriber

def on_text(text: str):
    print("NEW>", text)

tr = LiveTranscriber(callback=on_text, model="nova-3-general", language="en-US")
tr.run()  # blocks until you press Ctrl-C

API

LiveTranscriber Class

High-level wrapper around Deepgram live transcription.

Parameters:

  • callback: A function that will be invoked for every final transcript. Must accept a single str argument. May be sync or async.
  • output_path (Optional): Path to a text file that will receive each final transcript line (UTF-8).
  • api_key (Optional): Your Deepgram API key. If omitted, the DEEPGRAM_API_KEY environment variable is used; failing both raises RuntimeError.
  • keepalive (Optional): If True (default) the WebSocket client sends keepalive pings.
  • **live_options_overrides (Optional): Any keyword argument that matches a LiveOptions field overrides the built-in defaults. For example, punctuate=False.

Methods:

  • run(): Run until .stop() or Ctrl-C.
  • stop(): Public request to shut down; may be called from any thread.
  • pause(): Pause writing transcripts to output_path (callback still runs).
  • resume(): Resume writing transcripts to output_path.

Dependencies

  • deepgram-sdk
  • numpy
  • sounddevice

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

livetranscriber-0.2.0.tar.gz (6.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

livetranscriber-0.2.0-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

File details

Details for the file livetranscriber-0.2.0.tar.gz.

File metadata

  • Download URL: livetranscriber-0.2.0.tar.gz
  • Upload date:
  • Size: 6.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.4

File hashes

Hashes for livetranscriber-0.2.0.tar.gz
Algorithm Hash digest
SHA256 27beb929e8d9bfe36682083a5d17228ad2b8080fe07223c1259a79da31e5d5d5
MD5 50480a70c00edf9a1500a619fa5af1df
BLAKE2b-256 de75a52f97961b5d0147f5d5d0d5f8a9aec11b130b0fa7c51c8ac7f18fbd0398

See more details on using hashes here.

File details

Details for the file livetranscriber-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for livetranscriber-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 64cd327721024e02379400d70a2d2db405c3028572f377ed097f1ea635443c3f
MD5 acb33afa1f5291ea5f3d079ede5a1ed0
BLAKE2b-256 5460c0d9bd6e9f01250044d52b7cd92854feeabbd2ac22ec52a284c91caa72ee

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page