antifield

vmt

vmt is a Discord app that turns voice messages into text, and optionally into 30+ other languages. Free, open source, and self-hostable.

What it is

Some people send voice messages. Some of those are ten minutes long, take a detour halfway through, and end with “wait, what was I saying”. vmt turns them into text: right-click a voice message, select it, run /transcribe, and the text comes back, optionally translated into one of 30-odd languages through DeepL. It works in servers, group chats and DMs.

There’s a free hosted instance for messages up to three minutes. If you’d rather run your own, it’s GPL-3.0 with a Docker image and a one-click Railway deploy, and the hosted one runs the same code.

The audio is never stored. Each clip is checksummed and only the resulting text is cached, keyed by that checksum rather than by who sent it, so the same voice message is never transcribed twice and a cache hit never counts against anyone’s quota.

Stack

Python, managed with uv. Clips are decoded through FFmpeg, transcribed with ElevenLabs Scribe, falling back to Google Speech Recognition, and translated with the DeepL API. The cache lives in libsql. The vmt.sh site is Astro and React.