Run AudioText locally

This page gets a local service running with SQLite and the default model registry. Install the Faster-Whisper extra only when you want to run real model inference.

Install the package for development

Run:

uv sync --extra dev

Install the real transcription backend when you are ready to load models:

uv sync --extra dev --extra faster-whisper

Audio metadata probing for compressed formats such as WebM, Opus, and MP3 uses ffmpeg/ffprobe. WAV metadata can be read without it, but production hosts should still install ffmpeg.

Set local secrets

Run:

export AUDIOTEXT_DATA_DIR="$PWD/data"
export AUDIOTEXT_TOKEN_PEPPER="$(openssl rand -hex 32)"
export AUDIOTEXT_ADMIN_SESSION_SECRET="$(openssl rand -hex 32)"

These values are local development secrets. Generate different values for each server.

Initialize the database

Run:

uv run audiotext db init
uv run audiotext admin create-user
uv run audiotext token create --name local-test

The token command prints the raw API token once. Store it in your shell while testing:

export AUDIOTEXT_API_TOKEN="att_tok_..."

Start the service

Run:

uv run audiotext serve --host 127.0.0.1 --port 8791

Open the admin UI at http://127.0.0.1:8791/admin.

Check the service:

curl -fsS http://127.0.0.1:8791/healthz
curl -fsS http://127.0.0.1:8791/readyz

Send a test transcription

Run:

curl -sS http://127.0.0.1:8791/v1/audio/transcriptions \
  -H "Authorization: Bearer $AUDIOTEXT_API_TOKEN" \
  -F model=cpu-lite \
  -F language=ca \
  -F file=@clip.webm

Use language=ca, language=es, or language=en when the calling app already knows the language. Use language=auto only when the service should detect it.