Skip to main content

REST API for audio transcription using parakeet-mlx

Project description

Paratran

REST API and MCP server for audio transcription on Apple Silicon, powered by parakeet-mlx.

Parakeet is #1 on the Open ASR Leaderboard and runs ~30x faster than Whisper on Apple Silicon via MLX.

Requirements

  • macOS with Apple Silicon (M1/M2/M3/M4)
  • Python 3.11+
  • ~2 GB memory for the default model

Quick Start

Run without installing:

uvx paratran

Install

uv (recommended)

uv tool install paratran
paratran

pip

pip install paratran
paratran

From source

git clone https://github.com/briansunter/paratran.git
cd paratran
uv sync
uv run paratran

Usage

# Default settings
paratran

# Custom model cache location
paratran --model-dir /Volumes/Storage/models

# Custom host and port
paratran --host 127.0.0.1 --port 9000

# Different model
paratran --model mlx-community/parakeet-tdt-1.1b-v2

All options can also be set via environment variables:

CLI Flag Env Var Default
--model PARATRAN_MODEL mlx-community/parakeet-tdt-0.6b-v3
--model-dir PARATRAN_MODEL_DIR HuggingFace default (~/.cache/huggingface)
--host 0.0.0.0
--port 8000

API

GET /health

curl http://localhost:8000/health
{
  "status": "ok",
  "model": "mlx-community/parakeet-tdt-0.6b-v3",
  "model_dir": "/Volumes/Storage/models"
}

POST /transcribe

Upload an audio file (wav, mp3, flac, m4a, ogg, webm):

curl -X POST http://localhost:8000/transcribe -F "file=@recording.m4a"
{
  "text": "Hello world, this is a test.",
  "duration": 3.52,
  "processing_time": 0.176,
  "sentences": [
    {
      "text": "Hello world, this is a test.",
      "start": 0.0,
      "end": 3.52,
      "tokens": [
        { "text": "Hello", "start": 0.0, "end": 0.48 },
        { "text": " world", "start": 0.48, "end": 0.8 }
      ]
    }
  ]
}

Interactive API docs are available at http://localhost:8000/docs.

MCP Server

Paratran includes an MCP server so Claude Code, Claude Desktop, or any MCP client can transcribe audio files directly.

Claude Code

Add to .claude/settings.json:

{
  "mcpServers": {
    "paratran": {
      "command": "uvx",
      "args": ["paratran-mcp"],
      "env": {
        "PARATRAN_MODEL_DIR": "/Volumes/Storage/models"
      }
    }
  }
}

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "paratran": {
      "command": "uvx",
      "args": ["paratran-mcp"],
      "env": {
        "PARATRAN_MODEL_DIR": "/Volumes/Storage/models"
      }
    }
  }
}

MCP Tool

The transcribe tool accepts a file path and all the same options as the REST API (decoding, beam search, sentence splitting, chunking, precision).

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

paratran-0.3.0.tar.gz (6.4 kB view details)

Uploaded Source

Built Distribution

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

paratran-0.3.0-py3-none-any.whl (8.2 kB view details)

Uploaded Python 3

File details

Details for the file paratran-0.3.0.tar.gz.

File metadata

  • Download URL: paratran-0.3.0.tar.gz
  • Upload date:
  • Size: 6.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","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 paratran-0.3.0.tar.gz
Algorithm Hash digest
SHA256 dd020e969092303c6c819f795502d3d5918d7891a1ec4d8d5febc09dda28bb16
MD5 39b7e757c627ef1515b0b067f2ce9b39
BLAKE2b-256 eabb529ccc0148d1aa77d4399a5ff211dfea0774e2768d69356e7015a8e1819e

See more details on using hashes here.

File details

Details for the file paratran-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: paratran-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 8.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","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 paratran-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c93fc7a27625cf90d58556886c4e0a3f3e15c2c0328cfdb8e910ce4290d4fe90
MD5 8c2ec8424159135183704a66421e280c
BLAKE2b-256 93d66b24c368e66f37c2291340728c18bb5dffa949ee59c6ae6c2c37ac770506

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