Skip to main content

OpenAI-compatible ASR server with pluggable local backends.

Project description

Open ASR Server

CI PyPI

OpenAI-compatible ASR server with pluggable local transcription backends.

Install

Base install includes the API server and shared models/formatters:

uv tool install "open-asr-server"

Add backend extras as needed:

uv tool install "open-asr-server[parakeet]"
uv tool install "open-asr-server[whisper]"
uv tool install "open-asr-server[lightning-whisper]"

Note: the Whisper extras currently require Python 3.11 (tiktoken build constraints on 3.12+).

Whisper troubleshooting

If uv run --extra whisper fails on Python 3.12+, use a 3.11 interpreter for now:

uv run --python 3.11 --extra whisper -- open-asr-server serve --host 127.0.0.1 --port 8000

Run

uv tool run open-asr-server serve --host 127.0.0.1 --port 8000

Environment variables:

  • OPEN_ASR_SERVER_DEFAULT_MODEL: default model ID for requests
  • OPEN_ASR_SERVER_PRELOAD: comma-separated models to preload at startup
  • OPEN_ASR_SERVER_API_KEY: optional shared secret for requests
  • OPEN_ASR_SERVER_ALLOWED_MODELS: comma-separated allowed model IDs or patterns
  • OPEN_ASR_SERVER_MAX_UPLOAD_BYTES: max upload size in bytes (default: 26214400)
  • OPEN_ASR_SERVER_MODEL_DIR: override the Hugging Face cache location for this server

Models default to the Hugging Face cache unless a local path is provided. Use OPEN_ASR_SERVER_MODEL_DIR if you want a dedicated cache without changing your global HF environment.

Backend options

All backends are MLX-based today (Apple Silicon/macOS). Non-MLX backends are planned, but not yet supported.

Model IDs determine which backend is used:

  • Parakeet MLX: mlx-community/parakeet-tdt-0.6b-v3 (default) or parakeet-*
  • MLX Whisper: whisper-large-v3-turbo or mlx-community/whisper-large-v3-turbo
  • Lightning Whisper MLX: lightning-whisper-distil-large-v3

API compatibility

The server implements:

  • POST /v1/audio/transcriptions
  • GET /v1/models

Example:

curl -s -X POST "http://127.0.0.1:8000/v1/audio/transcriptions" \
  -F "file=@audio.wav" \
  -F "model=whisper-large-v3-turbo"

Security

This server is designed for trusted networks. If you expose it publicly, enable OPEN_ASR_SERVER_API_KEY and front it with a reverse proxy that provides TLS and rate limiting.

API key headers:

  • Authorization: Bearer <token>
  • X-API-Key: <token>

Use OPEN_ASR_SERVER_ALLOWED_MODELS to limit which model IDs can be loaded and prevent unbounded downloads.

Release

uv version --bump patch
uv run --extra dev pytest
uv build --no-sources
uv publish --index testpypi --token "$UV_PUBLISH_TOKEN"
uv publish --token "$UV_PUBLISH_TOKEN"

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

open_asr_server-0.1.1.tar.gz (12.0 kB view details)

Uploaded Source

Built Distribution

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

open_asr_server-0.1.1-py3-none-any.whl (18.0 kB view details)

Uploaded Python 3

File details

Details for the file open_asr_server-0.1.1.tar.gz.

File metadata

  • Download URL: open_asr_server-0.1.1.tar.gz
  • Upload date:
  • Size: 12.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for open_asr_server-0.1.1.tar.gz
Algorithm Hash digest
SHA256 cd1ba8418b1d4bc3a14b73a0777e04149f515253d641b6b940fd16b33751c494
MD5 83c615fa9e8b375e33c34e513a1a0947
BLAKE2b-256 b7a59a6213f31fe1bcfcb0802f692d8068e5531302fed86f79c396244089c6fe

See more details on using hashes here.

File details

Details for the file open_asr_server-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: open_asr_server-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 18.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for open_asr_server-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 58c0825fadf96ce05b16b7003d7ceb156a38afd14f60677f13456b1a6cb83bce
MD5 9e6dbab9c7a71b68974b6bda3b83cb6a
BLAKE2b-256 b969328ac27608c3a82a74af4014b25576cab57a84e869eb4253c1979a570a85

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