Soniox Pro SDK
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]
# 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 soniox import SonioxRealtimeClient
# Initialise real-time client
client = SonioxRealtimeClient(
api_key="your-api-key",
model="stt-rt-v3",
)
# 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="")
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
- Documentation: https://github.com/CodeWithBehnam/soniox-pro-sdk
- Source Code: https://github.com/CodeWithBehnam/soniox-pro-sdk
- Soniox API: https://soniox.com/docs
Built for the developer community
Metadata
Release files for soniox-pro-sdk 1.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| soniox_pro_sdk-1.2.0.tar.gz | 141.6 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| soniox_pro_sdk-1.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 163.5 kB
Release files / soniox_pro_sdk-1.2.0.tar.gz
| Download URL | soniox_pro_sdk-1.2.0.tar.gz |
|---|---|
| Size | 141.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7ff3600535a02f7864dc38fffdfd8dcca92cd12f8221bce3e8c92356fe53f4da
|
|
BLAKE2b-256 checksum How to use checksums |
aefe284c6872ed1ea9cc1681fe83849cc978d7a0487ffca3223b2d67c6b5d1d2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Dec 14, 2025.
Transparency logRelease files / soniox_pro_sdk-1.2.0-py3-none-any.whl
| Download URL | soniox_pro_sdk-1.2.0-py3-none-any.whl |
|---|---|
| Size | 22.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1ec1db26c37257ba649bc383f2a6495b9e172179f9172714dfae11c67137890d
|
|
BLAKE2b-256 checksum How to use checksums |
9a12f49b1e9b1c4033aabe6410e44902337f4ffdba7b39e1c09f06b6f5302dcc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Dec 14, 2025.
Transparency logSecurity for soniox-pro-sdk 1.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for soniox_pro_sdk-1.2.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Dec 14, 2025.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.