Skip to main content

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

StageExperimental / WIP — not on FAB yet
EngineUE 5.7 (Win64; Mac/Linux planned)
BackendSherpa-ONNX (Kokoro / Piper / Matcha)
InputSpeakText / PushText (FString)
OutputOnSpeechGenerated (FERP_TTSResult)USoundWave + phonemes