Home›Java›Mods›Transcribe
Transcribe
ModsJava

Transcribe

Java mod listed for Minecraft 1.21. Downloads from the MC Java Mods app on Android.

by eyman_26 · on Modrinth

A Paper 1.21+ plugin for voice transcribing, built on Simple Voice Chat with pluggable speech-to-text (embedded Vosk or an external WebSocket…

⬇ Download on Modrinth
Transcribe — screenshot 1Transcribe — screenshot 2

Transcribe

THIS IS THE FREE VERSION OF THE PLUGIN. TO GET THE FULL CAPACITY OF THE PLUGIN PLEASE CONSIDER PAYING FOR THE FULL VERSION: Get it on my official website or get it on BuiltByBit

a Paper plugin that turns short spoken words into real game actions. It piggybacks on the microphone stream that Simple Voice Chat already captures, so players don't need to press "push to talk" for a second time and no extra mod is required beyond the voice chat one.

Press a trigger (sneak + F by default), a brief listen window opens, you say a word from your server's vocabulary, and Transcribe fires an event and/or runs your commands.

Runs fully offline. Speech recognition happens on your server (or your own box). No audio ever leaves your infrastructure.


Features


Requirements

Note: players must install the Simple Voice Chat mod on their client (Fabric / Forge / NeoForge). It has to be the mod, not just the server plugin, or no audio is ever captured.


Quick start

  1. Install Simple Voice Chat server-side and on clients, and verify proximity voice works.
  2. Drop Transcribe.jar into plugins/.
  3. Start the server once to generate plugins/Transcribe/config.yml.
  4. Choose your words:
    engine:
      internal:
        grammar:
          - fire
          - light
          - ice
    
  5. (INTERNAL only) Download a small Vosk model from https://alphacephei.com/vosk/models and unzip it to plugins/Transcribe/models/vosk-model-small-en-us-0.15.
  6. Point your spells at the keywords:
    recognition:
      console-commands:
        - "spellcast trigger %player% %keyword%"
    
  7. /transcribe reload, then sneak + F and say "fire".

How it works

trigger gesture
      |
      v
Listen Window opens (configurable, default 3s)  -- audio bar + sound cue
      |
      v
Opus microphone packets decoded to 48 kHz mono PCM
      |
      v
Speech recognition (INTERNAL Vosk, or EXTERNAL WebSocket service)
      |
      v
keyword matched against your grammar?  -- no --> window closes, nothing happens
      | yes
      v
VoiceWordSpokenEvent (cancellable)  -- cancelled --> nothing happens
      | not cancelled
      v
recognition.console-commands dispatched as console

Performance notes


Configuration

Everything lives in plugins/Transcribe/config.yml, which is heavily commented inline. Headlines:

Key What it does
debug.level 0-3, how much [Transcribe debug] logging to emit
engine.mode INTERNAL (embedded Vosk) or EXTERNAL (WebSocket service)
engine.sample-rate-hertz PCM rate handed to the engine (default 16000)
engine.internal.model-path path to an unpacked Vosk model, under the plugin folder
engine.internal.grammar your vocabulary - the words players can say
engine.external.uri ws:// / wss:// endpoint of your STT service
engine.external.request-timeout-millis per-request ceiling before giving up
activation.window-seconds how long the listen window stays open
activation.triggers which of the eight gesture triggers are active
activation.hotbar-slots slots 1-9 used by the hotbar triggers
activation.cancel-trigger-events suppress the vanilla action behind a trigger
activation.feedback.action-bar.* open/close action bar text, &-colour codes, '' to hide
activation.feedback.sound.* open/close sound key, volume, pitch
activation.placeholderapi.* polled placeholder condition trigger
recognition.console-commands commands to run on a recognized keyword

%player% and %keyword% are substituted in every entry of recognition.console-commands. VoiceWordSpokenEvent always fires first and can be cancelled to suppress the commands - which is where cooldowns, mana costs, or silence effects belong.

Commands & permissions

Command Permission Default
/transcribe reload transcribe.reload op

For developers

@EventHandler
public void onSpell(VoiceWordSpokenEvent event) {
    if (event.getKeyword().equals("fire")) {
        event.setCancelled();              // stop the configured console commands
        castFireball(event.getPlayer());
    }
}
// open a window programmatically, e.g. from an item or a skill GUI
TranscribeAPI.get().forceStartListenWindow(player, Duration.ofSeconds(3));

if (TranscribeAPI.get().isListening(player)) { /* ... */ }

Build against it with:

compileOnly("org.eyman_:Transcribe:<version>")

Notes & limitations

License

GPL-3.0. Simple Voice Chat is a separate, independently licensed project and is neither bundled nor redistributed here - it is a required runtime dependency.

USED CLAUDE FOR THE DESCRIPTION

Quick facts

Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.

File checked by MCModsHub

These come from our own check of the pack file, not from the source page.

Explore more