


TextToSpeech is a mod that brings in-game text to life using an offline, high-quality text-to-speech engine—**Piper **. When you or other players send chat messages, the mod converts that text to speech and plays it through your local player's AudioSource, making it speak to you. It will also read out other text in the game like runes, intro text, center screen messages, dreams, and npc text.
This mod is a work in progress and has room for improvement. If you have any suggestions or ideas, please feel free to reach out to me on my discord.
This mod is CLIENT SIDE ONLY. It does not require server-side installation.
Note: All TTS processing is done locally. The mod downloads only the necessary Piper files and voice models from the internet when needed (see Piper VOICES.md for available voices) and does not transmit any personal data. Subsequent usage is offline after initial files are downloaded. Exception being, you configured the mod to use another voice model URL (it would download the model and config file from that URL instead once more).
Nice to know If you use a language model that is built for a specific language and your game is set to that language, the TTS will read it normally. The language models are built for the language they are made for.
In-Game Text-to-Speech:
Automatically converts chat messages and other text (Rune, Intro, Dream, Raven, Chat etc.) into spoken audio.
Local Player Voice:
The TTS audio is played from your player’s AudioSource so it sounds like someone is speaking to you.
Automatic Piper Setup:
On first launch, the mod downloads the Piper Windows release, extracts it, and downloads the selected voice model and
configuration file automatically.
By default, it uses the en_GB-alba-medium voice (Woman Great Britain). (
See Piper VOICES.md for alternatives. To preview the voices,
you can use the Piper TTS Voice Samples.)
Fully Configurable Voice:
The mod’s configuration file allows you to change the voice model URL. This means you can use any voice model
available on the Piper VOICES.md
Transparent Operation:
Everything is open source and fully documented. If you have any questions or concerns, feel free to check the source
or ask in my discord.
Piper is an open-source neural text-to-speech engine that uses ONNX for efficient
local inference. It’s optimized for low-resource systems (like the Raspberry Pi) while still delivering high-quality
speech synthesis on modern desktops.
This mod uses Piper to generate TTS audio:
.onnx model and its accompanying .onnx.json config file to
ensure proper synthesis.For a full list of available voices and links, refer to VOICES.md or Piper TTS Voice Samples to preview the voices.
Download:
Get the latest version of TextToSpeech from Thunderstore.
Place in Plugins:
Drop the mod’s DLL into your BepInEx/plugins folder. (e.g., BepInEx/plugins/TextToSpeech.dll) or use a mod manager
like mentioned above in requirements.
Launch the Game:
On first run, the mod will:
All settings are stored in Azumatt.TextToSpeech.cfg (located in your BepInEx/config folder). You can change these by
manually going to the configuration file directly and opening it with a compatible editor, use the mod manager of
choice's configuration editor, or use the most preferred method which is one of the Configuration
Manager's (Offical BepInEx Configuration Manager
or Azus UnOfficial Config Manager)
Key settings include:
Speaker ID:
Speaker ID for the voice model. This is usually 0 for most models. If you choose a model that has multiple speakers, you can set this to the desired speaker ID.
Voice Model URL:
The URLs for downloading the voice model and its configuration file can be modified if you prefer a different voice.
The configuration file for the voice will download automatically
For example, the default uses:
https://huggingface.co/rhasspy/piper-voices/resolve/v1.0.0/en/en_GB/alba/medium/en_GB-alba-medium.onnx
To make sure you get the right url, right-click on the model link you wish to use for the language of choice
and then copy link address. Paste that directly into the configuration value for Voice Model URL. The
?download=true is automatically stripped out in the code. So do not worry about that. If you are live
updating this value, please give it a few seconds to update, the speed is determined by your internet speed
and the size of the language model.

Skip Self In Chat:
If enabled, the mod will not play TTS for your own chat messages. This is useful if you want to hear others but not
yourself.
Speak Center Messages
If enabled, the mod will play TTS for center screen messages (like "Resting..." or "You don't have enough wood").
Speak NPC Messages
If enabled, the mod will play TTS for NPC messages (like "Haldor says: ...").
Speak Rune Messages If enabled, the mod will play TTS for rune messages and boss stones.
Speak Chat Message
If enabled, the mod will play TTS for chat messages (like "PlayerName in chat said: [message]"). Overrides the Skip Self In Chat setting.
Speak Dream Messages
If enabled, the mod will play TTS for dream messages (like "You dream of...").
TTS Playback Options:
The mod always plays TTS via the local player's AudioSource or a one-shot audio source on target transforms/objects.
Piper Setup:
Upon startup, the mod checks for the Piper executable, voice model, and configuration file. If any are missing, it
downloads and extracts them automatically.
Process Management:
The mod launches Piper processes on-demand to generate WAV files from text.
Intercepting Text:
Using Harmony patches, the mod intercepts:
In each case, the text is combined with the topic (or player name) and then passed to Piper for synthesis.
Local Processing:
All speech synthesis happens locally—no text or audio is sent to external servers.
Automatic Downloads:
The mod downloads only the Piper executable, voice model, and configuration file from official sources.
Refer to Piper VOICES.md for details.
Open Source:
The full source code is available on GitHub. You can inspect, modify, or
contribute to the project.
BepInEx/LogOutput.log for any Piper error output. Informational messages from Piper are logged as
debug (a setting in BepInEx.cfg must be on to see these in the LogOutput file).For Questions or Comments, find me in the Odin Plus Team Discord or in mine:
Mod Icon: Text to speech icons created by Freepik - Flaticon Direct link to this mod icon created by Freepik - Flaticon
This mod is released under the MIT License. Please review the voice models’ licenses, as some may have additional restrictions (should you attempt to redistribute them).