Transcribe and translate Discord voice messages.
vmt is a Discord app that transcribes voice messages and optionally translates them into 30+ languages via DeepL. It works in servers, group chats, and DMs, and can be installed to a server or to your own account.
Note
If you don't want to deploy or self-host, we run a free hosted instance that supports voice messages up to 3 minutes.
- Right-click a voice message (long-press on mobile)
- Select Apps → Select Voice Message
- Run
/transcribe, optionally passing a language to translate into
| Command | Description |
|---|---|
/transcribe [translate_to] [public] |
Transcribe the selected voice message, optionally translating it into another language |
/languages [public] |
Browse all supported translation languages and their codes |
/help [public] |
Show usage instructions and the command reference |
Responses are only visible to you by default; set public: true to post them to the channel.
Voice messages are decoded with pydub (via FFmpeg), transcribed using Google Speech Recognition through SpeechRecognition, and translated with the DeepL API.
- Go to the Discord Developer Portal and create a new application
- Under Installation → Installation Contexts, enable both User Install and Guild Install
- Under Installation → Default Install Settings, add the
applications.commandsscope to both install contexts - Under Bot → Privileged Gateway Intents, enable Message Content Intent (required to read voice message attachments)
- Copy your bot token from the Bot page — you'll need it for the environment variables
- Copy the install link from the Installation page to add the app to your account or server
| Variable | Description |
|---|---|
BOT_TOKEN |
Your Discord bot token from the Developer Portal |
DEEPL_API_KEY |
Your DeepL API key |
DEEPL_FREE_API |
Set to true if using DeepL's free tier (it uses a separate endpoint, api-free.deepl.com); defaults to false |
MAX_VOICE_MESSAGE_DURATION |
Maximum voice message duration in seconds (default: 60) |
This repository deploys to Railway in one click and handles the FFmpeg installation automatically. Signing up through our link also grants you $20 in Railway credits.
You'll need Python (developed against 3.13) and FFmpeg:
- macOS:
brew install ffmpeg - Ubuntu/Debian:
sudo apt-get install ffmpeg - Windows: download from ffmpeg.org, or
choco install ffmpegvia Chocolatey
git clone https://github.com/antifield/vmt.git
cd vmt
pip install -r requirements.txt
# copy env, fill in credentials
cp .env.example .env
python src/main.pyantifield/vmt is licensed under the GNU General Public License v3.0. Authored by @dromzeh <marcel@antifield.com>.
You must state all significant changes made to the original software, make the source code available to the public with credit to the original author, original source, and use the same license.
© 2023–2026 Antifield LTD | Registered UK Company No. 15988228 | ICO Reference No. ZB857511