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:
| Model | Size | Notes |
|---|---|---|
tiny / base | 75–142 MB | Fast, good for testing |
small | 466 MB | Recommended balance of speed/accuracy |
medium / large | 1.5–3 GB | Best 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.