Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Local transcription

The PBX transcribes voicemail through the OpenAI-compatible transcription API (POST …/audio/transcriptions). The service can be online (OpenAI, Mistral…) or installed on your premises: messages then never leave your network. The PBX does not ship an engine; any server that exposes this API works.

Example: Speaches (faster-whisper)

Speaches serves Whisper models through faster-whisper behind this API. On a separate VM, with Docker:

# CPU only (replace latest-cpu with latest-cuda and add --gpus=all with an NVIDIA card)
docker run --detach --restart unless-stopped --name speaches \
  --publish 8000:8000 \
  --volume hf-hub-cache:/home/ubuntu/.cache/huggingface/hub \
  ghcr.io/speaches-ai/speaches:latest-cpu

# Download a multilingual model (French and English)
curl -X POST http://localhost:8000/v1/models/Systran/faster-whisper-small

Then, in the portal, Settings page, Voicemail transcription section:

FieldValue
Addresshttp://VM-ADDRESS:8000/v1
ModelSystran/faster-whisper-small
Languageempty: each message in its customer’s language
Keyempty, unless you protect the service

Try checks that the service responds.

  • Model: small runs on a 4-core CPU for a few hundred messages a day; medium or large-v3 transcribe better, preferably with a graphics card. Do not use the .en models, English only.
  • Network: the service has no authentication by default; open it to the PBX only (firewall), or put it behind a proxy that requires a key.
  • Outage: a transcription may take up to 7 minutes. On failure, the PBX retries after 1 minute then after 5 minutes, then sends the message’s email without the text.

These commands come from the Speaches documentation, to follow for recent versions.