Skip to content

Professional Python SDK for Soniox Speech-to-Text API - Blazing fast, production-ready, and fully-featured with real-time transcription, translation, and speaker diarization support

License

Notifications You must be signed in to change notification settings

CodeWithBehnam/soniox-pro-sdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

18 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Soniox Pro SDK

PyPI version Python Support License: MIT Code style: black

The most powerful, flexible, and blazing-fast Python SDK for the Soniox Speech-to-Text API.

Production-ready, fully-typed, and optimised for performance.

Features

Complete API Coverage

  • REST API (Files, Transcriptions, Models, Authentication)
  • WebSocket API (Real-time transcription and translation)
  • Synchronous and asynchronous interfaces
  • Full type safety with Pydantic models

Performance Optimised

  • Blazing fast with optional C extensions
  • Connection pooling for HTTP and WebSocket
  • Async I/O throughout
  • Memory-efficient streaming

Advanced Capabilities

  • 60+ languages supported
  • Real-time translation (one-way and two-way)
  • Speaker diarization (up to 15 speakers)
  • Language identification
  • Endpoint detection
  • Custom context and vocabulary
  • Word-level timestamps
  • Confidence scores

Developer Experience

  • Comprehensive documentation
  • Full IDE autocomplete support
  • 90%+ test coverage
  • Type-checked with mypy
  • Clean, Pythonic API

Installation

Basic Installation

# Using uv (recommended)
uv add soniox-pro-sdk

# Using pip
pip install soniox-pro-sdk

Optional Dependencies

# Async support
pip install soniox-pro-sdk[async]

# Performance optimisations (C extensions)
pip install soniox-pro-sdk[performance]

# Microphone input support
pip install soniox-pro-sdk[microphone]

# Web interface for microphone transcription
pip install soniox-pro-sdk[web]

# Development tools
pip install soniox-pro-sdk[dev]

# Everything
pip install soniox-pro-sdk[all]

Quick Start

Async Transcription

from soniox import SonioxClient

# Initialise client
client = SonioxClient(api_key="your-api-key")

# Transcribe from URL
transcription = client.transcriptions.create(
    audio_url="https://example.com/audio.mp3",
    model="stt-async-v3",
    enable_speaker_diarization=True,
)

# Wait for completion
result = client.transcriptions.wait_for_completion(transcription.id)
print(result.transcript.text)

Real-time Transcription from File

from soniox import SonioxClient

# Initialise client
client = SonioxClient(api_key="your-api-key")

# Stream audio
with client.stream() as stream:
    with open("audio.mp3", "rb") as f:
        while chunk := f.read(4096):
            stream.send_audio(chunk)

    # Receive tokens
    for response in stream:
        for token in response.tokens:
            if token.is_final:
                print(token.text, end="")

Real-time Transcription from Microphone 🎀

NEW: Transcribe live from your microphone!

from soniox import SonioxClient
from soniox.audio import MicrophoneCapture

# Initialise client
client = SonioxClient(api_key="your-api-key")

# Create microphone capture
mic = MicrophoneCapture(sample_rate=16000)

# Start real-time stream
with client.stream() as stream:
    # Capture and send audio for 10 seconds
    for audio_chunk in mic.capture(duration=10.0):
        stream.send_audio(audio_chunk)

    stream.end_stream()

    # Get transcription
    for response in stream:
        for token in response.tokens:
            print(token.text, end=" ", flush=True)

Web Interface Available! 🌐

Try the Docker-based web interface for an easy, visual experience:

# Clone repository
git clone https://github.com/CodeWithBehnam/soniox-pro-sdk.git
cd soniox-pro-sdk

# Configure API key
cp .env.example .env
# Add your SONIOX_API_KEY to .env

# Start web interface
docker compose up

# Open http://localhost:8000 in your browser

See MICROPHONE_GUIDE.md for complete documentation.

Async/Await Support

import asyncio
from soniox import AsyncSonioxClient

async def transcribe():
    async with AsyncSonioxClient(api_key="your-api-key") as client:
        file = await client.files.upload("audio.mp3")
        transcription = await client.transcriptions.create(file_id=file.id)
        result = await client.transcriptions.wait_for_completion(transcription.id)
        return result.transcript.text

text = asyncio.run(transcribe())

Documentation

Full documentation available at: https://github.com/CodeWithBehnam/soniox-pro-sdk

Testing

# Run tests
uv run pytest

# With coverage
uv run pytest --cov=soniox

# Type check
uv run mypy src/soniox

# Lint
uv run ruff check src/soniox

License

MIT License - see LICENSE for details.

Links


Built for the developer community

About

Professional Python SDK for Soniox Speech-to-Text API - Blazing fast, production-ready, and fully-featured with real-time transcription, translation, and speaker diarization support

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •