Skip to main content

OpenAI Whisper-compatible API endpoint for Parakeet STT models

Project description

Parakeet API

OpenAI Whisper-compatible API endpoint for Parakeet STT models. (MLX for Apple Silicon, Sherpa-ONNX for others)

Performance on a 3.85s wav file:

Machine (Engine) Latency (ms) Speedup
Intel 255H (Sherpa-ONNX, CPU) 174.46 22.1x
M2 Air (MLX, GPU) 194.29 19.8x

Installation & Setup

The easiest way to install and run parakeet-api is using uv.

1. Install the CLI

For Linux, Windows, or Intel Mac (Sherpa-ONNX / CPU):

uv tool install parakeet-api

For Apple Silicon (MLX):

uv tool install "parakeet-api[mlx]"

2. Install System Dependencies

ffmpeg must be installed on your system for non-WAV audio support.

  • macOS: brew install ffmpeg
  • Ubuntu/Debian: sudo apt-get install ffmpeg

3. Download Models

Models are saved to your platform's standard data directory (e.g., ~/.local/share/parakeet-api/models).

Default Models

Download the default English/European model for your engine:

Sherpa-ONNX:

parakeet-api download sherpa

MLX:

parakeet-api download mlx

Custom Models

You can use different Parakeet models by specifying a URL or Repo ID.

MLX:

  1. Download using the script with --id:
    parakeet-api download mlx --id mlx-community/parakeet-tdt_ctc-0.6b-ja
    
  2. Update STT__MLX__MODEL_ID in your .env (or set as environment variable):
    STT__MLX__MODEL_ID=mlx-community/parakeet-tdt_ctc-0.6b-ja
    

Sherpa-ONNX:

  1. Download using the script with --url:
    parakeet-api download sherpa --url https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-nemo-parakeet-tdt_ctc-0.6b-ja-35000-int8.tar.bz2
    
  2. Update STT__SHERPA__MODEL_ID in your .env (or set as environment variable):
    STT__SHERPA__MODEL_ID=sherpa-onnx-nemo-parakeet-tdt_ctc-0.6b-ja-35000-int8
    

4. Run the Server

parakeet-api serve

The API will be available at http://localhost:8816.

5. (Optional) Run as a Background Service

You can install parakeet-api as a background service (launchd on macOS, systemd on Linux).

parakeet-api install-daemon

This will create a service file and set up a configuration file at ~/.local/share/parakeet-api/.env. To uninstall: parakeet-api uninstall-daemon

Running with Docker (Sherpa-ONNX)

For Linux or CPU environments, you can use Docker and Docker Compose.

  1. Setup environment:

    cp .env.example .env
    # Edit .env to set your SERVER__API_KEY and other settings
    
  2. Download the model using Docker:

    # Download models into the ./models directory using the container
    docker compose run --rm api download sherpa --out /app/models
    
  3. Run with Docker Compose:

    docker compose up --build
    

The ./models/ directory is bind-mounted into the container.

Usage

API Endpoints

POST /v1/audio/transcriptions

Transcribe audio to text using the OpenAI Whisper-compatible API format.

Example with curl:

curl -X POST "http://localhost:8816/v1/audio/transcriptions" \
  -H "Content-Type: multipart/form-data" \
  -F "file=@/path/to/audio.wav" \
  -F "response_format=json"

POST /v1/audio/transcriptions/raw

Same as above but accepts raw audio bytes in the request body.

curl -X POST "http://localhost:8816/v1/audio/transcriptions/raw" \
  -H "Content-Type: audio/wav" \
  --data-binary @/path/to/audio.wav

Supported Parameters

Parameter Type Default Description
file file - The audio file to transcribe.
response_format string json json, text, verbose_json, srt, vtt.
timestamp_granularities[] array ["segment"] word, segment (used with verbose_json).

[!NOTE] Limitations of Response Formats: The current implementation provides simplified timestamp information. Consequently:

  • srt / vtt: Return a single segment covering the entire audio duration (0.0 to end).
  • verbose_json: Timestamps for words and segments are placeholders/estimations.

[!NOTE] Ignored Parameters: The following parameters are accepted for compatibility with the OpenAI API but are currently ignored: model, language, prompt, temperature.

Examples

Check the examples/ directory for client implementations:

  • examples/client_requests.py: Basic transcription using requests.
  • examples/client_openai_sdk.py: Using the official OpenAI Python SDK.

For full API compatibility details, refer to the OpenAI Audio API Reference and their OpenAPI specification.

Development

Setup from Source

  1. Clone the repository:
    git clone https://github.com/likeablob/parakeet-api.git
    cd parakeet-api
    
  2. Install dependencies:
    # Includes dev tools (ruff, ty, pytest) and optional mlx support
    uv sync --all-extras --dev
    
  3. Run:
    uv run parakeet-api serve
    

Code Quality & Tests

# Linting & Formatting
uv run ruff check .
uv run ruff format .

# Type Checking
uv run ty check src/ tests/

# Run Tests
uv run pytest tests/mock
uv run pytest tests/inference # Requires models

Related Projects

License

MIT

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

parakeet_api-0.1.3.tar.gz (16.6 kB view details)

Uploaded Source

Built Distribution

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

parakeet_api-0.1.3-py3-none-any.whl (16.5 kB view details)

Uploaded Python 3

File details

Details for the file parakeet_api-0.1.3.tar.gz.

File metadata

  • Download URL: parakeet_api-0.1.3.tar.gz
  • Upload date:
  • Size: 16.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","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 parakeet_api-0.1.3.tar.gz
Algorithm Hash digest
SHA256 fa98f9d438f4b42b9eab9309c7fec077ee6033655d5f9a64bfa4f2feaa34edcd
MD5 9f7e9811e2327f31b81cf058f8ef0bc5
BLAKE2b-256 8b721928aea7a95b668f0c1f6f3351db52a82bc601636fc8bb783d5bc298661e

See more details on using hashes here.

File details

Details for the file parakeet_api-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: parakeet_api-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 16.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","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 parakeet_api-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 4b609ec608df8ddd58706d68caff17c2d105b7b866b8692a95147ca7d2bf1d20
MD5 2f873b584c2b85faa0ce0b51eb6a5fb0
BLAKE2b-256 7d5e6daaf70d69dd5297bcfade3b38734ebad4802f4f17b96160d5e42ffc99bc

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