Elys Speak
Work in progress
Elys Speak is experimental and not yet published on FAB. The API below is functional but may still change. It is part of the Elys voice suite alongside Elys Listen (STT) and Elys Mind (LLM).
Offline text-to-speech for Unreal Engine 5. Elys Speak synthesizes speech
locally on a worker thread with a Sherpa-ONNX backend (Kokoro / Piper / Matcha),
returns a USoundWave plus phoneme timing for lipsync, and never touches the network.
Why Elys Speak
- 100% offline — no cloud, no API keys.
- Multiple engines — Kokoro (multilingual, high quality), Piper (lightweight), Matcha.
- Lipsync-ready — synthesis returns phoneme timing events.
- Standalone — no dependency on any other Elys plugin.
- Transparent chaining — accepts
PushText (FString), so it slots straight after Elys Listen or Elys Mind. See Chaining.
A 30-second example
UERP_TTSComponent* TTS = NPC->FindComponentByClass<UERP_TTSComponent>();
TTS->OnSpeechGenerated.AddDynamic(this, &ANPC::OnSpeechReady);
TTS->SpeakText(TEXT("Greetings, traveller!"));
Status
| Stage | Experimental / WIP — not on FAB yet |
| Engine | UE 5.7 (Win64; Mac/Linux planned) |
| Backend | Sherpa-ONNX (Kokoro / Piper / Matcha) |
| Input | SpeakText / PushText (FString) |
| Output | OnSpeechGenerated (FERP_TTSResult) — USoundWave + phonemes |