Skip to main content

Setup Guide

Goal: working microphone transcription in about five minutes.

1. Enable the plugin

After installing from FAB, open Edit → Plugins, find Elys Listen under Audio, make sure it is enabled, and restart the editor if prompted.

2. Download a Whisper model

Open Tools → Elys Listen → Download Whisper Models. Pick a model:

ModelSizeNotes
tiny / base75–142 MBFast, good for testing
small466 MBRecommended balance of speed/accuracy
medium / large1.5–3 GBBest accuracy, heavier

Models download to Content/ElysListen/Models/. When a download finishes, the plugin auto-configures the model path for you.

3. Configure settings

In Project Settings → Plugins → Elys Listen (STT):

  • Enable STT: on
  • STT Backend: Whisper (Local)
  • STT Model Path: set automatically by the downloader (or browse to a .bin)
  • Default Language Code: e.g. en-US, fr-FR

4. Start listening

Speech-to-text is a machine-global input, so the primary API is the STT subsystem — no actor needed. Bind On Text and call Start Listening:

// C++
UERP_STTSubsystem* STT = GetGameInstance()->GetSubsystem<UERP_STTSubsystem>();
STT->OnText.AddDynamic(this, &UMyThing::HandleTranscript); // FString in
STT->StartListening();

In Blueprint: Get Game Instance Subsystem (Elys STT Subsystem) → bind On Text / On STT Result → call Start Listening.

Prefer a component? Add an Elys STT Component to any actor (a PlayerController works well), tick Auto Start Listening, and bind On STT Result / On Text on the component. It just forwards to the subsystem — use whichever style you like.

5. Speak

With the default settings, just talk: the voice activity detector segments your speech automatically and On STT Result fires after each utterance (about 1.5 s of silence ends one). For push-to-talk instead, set bUseVoiceActivityDetection = false in the component's Config and call Flush Transcription when the key is released.

6. Multiplayer note

STT runs client-side only. Never replicate audio. If the server needs the text, send the final FERP_STTResult.TranscribedText over an RPC.

Next: pipe transcripts into an LLM or TTS — see Chaining, and read Shipping Your Game before you package.