| name | voice-transcription |
| description | Transcribe voice messages and audio files to text using faster-whisper locally on CPU. Use when a user sends a voice note or audio file. |
Voice Transcription
Transcribe audio files (voice messages, recordings) to text using faster-whisper with the turbo model running locally on CPU. No external API keys required.
Bundled Scripts
transcribe.py — Transcribe an audio file
uv run scripts/transcribe.py /path/to/voice.ogg
uv run scripts/transcribe.py /path/to/audio.mp3 --language en
uv run scripts/transcribe.py /path/to/audio.wav --json
Output (default):
Language: en (probability: 0.98)
[0.00s -> 3.50s] Hello, this is a test message.
[3.50s -> 6.20s] I'm recording this for transcription.
Output (JSON):
{
"language": "en",
"language_probability": 0.98,
"segments": [
{"start": 0.0, "end": 3.5, "text": "Hello, this is a test message."},
{"start": 3.5, "end": 6.2, "text": "I'm recording this for transcription."}
],
"full_text": "Hello, this is a test message. I'm recording this for transcription."
}
Setup
Dependencies (faster-whisper) are declared inline via PEP 723 and handled automatically by uv run. The turbo model (~800MB) is downloaded on first use and cached in ~/.cache/huggingface/.
Supported Formats
Any format supported by ffmpeg/PyAV: .ogg, .mp3, .wav, .m4a, .flac, .webm, .opus, etc.
Notes
- Uses
turbo model (whisper-large-v3-turbo) — fast and accurate, optimized for CPU with INT8 quantization.
- First run is slower due to model download. Subsequent runs are much faster.
- Language is auto-detected but can be overridden with
--language.