Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Speechmatics Real-Time API Client

PyPI PythonSupport

Async Python client for the Speechmatics Real-Time API.

Features

  • Async-first design with simpler interface
  • Multi-channel transcription - Simultaneous processing of multiple audio sources
  • Single-stream transcription - Optimized client for single audio source
  • Comprehensive error handling with detailed error messages
  • Type hints throughout for excellent IDE support and code safety
  • Environment variable support for secure credential management
  • Event-driven architecture for real-time transcript processing
  • Simple connection management with clear error reporting

Installation

pip install speechmatics-rt

Quick Start

import asyncio
from speechmatics.rt import AsyncClient, ServerMessageType


async def main():
    # Create a client using environment variable SPEECHMATICS_API_KEY
    async with AsyncClient() as client:
        # Register event handlers
        @client.on(ServerMessageType.ADD_TRANSCRIPT)
        def handle_final_transcript(msg):
            print(f"Final: {msg['metadata']['transcript']}")

        # Transcribe audio file
        with open("audio.wav", "rb") as audio_file:
            await client.transcribe(audio_file)

# Run the async function
asyncio.run(main())

Multi-Channel Transcription

import asyncio
from speechmatics.rt import AsyncMultiChannelClient, ServerMessageType, TranscriptionConfig

async def main():
    # Prepare multiple audio sources
    sources = {
        "left": open("left.wav", "rb"),
        "right": open("right.wav", "rb"),
    }

    try:
        async with AsyncMultiChannelClient() as client:
            # Handle transcripts with channel identification
            @client.on(ServerMessageType.ADD_TRANSCRIPT)
            def handle_transcript(msg):
                channel = msg["results"][0]["channel"]
                transcript = msg["metadata"]["transcript"]
                print(f"[{channel}]: {transcript}")

            # Start multi-channel transcription
            await client.transcribe(
                sources,
                transcription_config=TranscriptionConfig(
                    language="en",
                    diarization="channel",
                    channel_diarization_labels=list(sources.keys()),
                )
            )
    finally:
        # Ensure all files are closed
        for source in sources.values():
            source.close()

asyncio.run(main())

JWT Authentication

For enhanced security, use temporary JWT tokens instead of static API keys. JWTs are short-lived (60 seconds by default).

from speechmatics.rt import AsyncClient, JWTAuth

# Create JWT auth (requires: pip install 'speechmatics-rt[jwt]')
auth = JWTAuth("your-api-key", ttl=60)

async with AsyncClient(auth=auth) as client:
    pass

Ideal for browser applications or when minimizing API key exposure. See the authentication documentation for more details.

Logging

The client supports logging with job id tracing for debugging. To increase logging verbosity, set DEBUG level in your example code:

import logging
import sys

logging.basicConfig(
    level=logging.DEBUG,
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
    handlers=[
        logging.StreamHandler(sys.stdout)
    ]
)

Environment Variables

The client supports the following environment variables:

  • SPEECHMATICS_API_KEY: Your Speechmatics API key
  • SPEECHMATICS_RT_URL: Custom API endpoint URL (optional)

Download files

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

Source Distribution

speechmatics_rt-1.2.0b2.tar.gz (32.2 kB view details)

Uploaded Source

Built Distribution

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

speechmatics_rt-1.2.0b2-py3-none-any.whl (38.5 kB view details)

Uploaded Python 3

File details

Details for the file speechmatics_rt-1.2.0b2.tar.gz.

File metadata

  • Download URL: speechmatics_rt-1.2.0b2.tar.gz
  • Upload date:
  • Size: 32.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for speechmatics_rt-1.2.0b2.tar.gz
Algorithm Hash digest
SHA256 353b78e06ac310b68470aa19d50abd43c018cfcc1d033fc46c9ab67bbed12eef
MD5 8b45f5bd8dc077afdad4dcfc42722b03
BLAKE2b-256 a2248c7467562f0d082b53c4f030eba3768332d962165c60730a50cf7ae5d0ca

See more details on using hashes here.

File details

Details for the file speechmatics_rt-1.2.0b2-py3-none-any.whl.

File metadata

File hashes

Hashes for speechmatics_rt-1.2.0b2-py3-none-any.whl
Algorithm Hash digest
SHA256 8c8ddbd9e946a8761efd35fb53e6d03d9404762f7ee3e03aa8f74df5f6473e09
MD5 6a8cd27200283d42f5e64ab8079f111e
BLAKE2b-256 572053b096395eddc7cdffabac7aee4dcf5c9a861c2c51beddb8fba9f5bcbfd5

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