Groove TTS

Type something and hear it read back in the voice from Rhythm Heaven Groove, in any of its twelve languages.

What is this?

Groove TTS runs the text-to-speech voice from Rhythm Heaven Groove (Nintendo Switch) outside the game. You type, the server speaks it back, and you can play or download the result.

Li'l Miss Reeds

The voice belongs to Li'l Miss Reeds, a kind robot who is the host character and text-to-speech narrator of Rhythm Heaven Groove. She greets you with “Hello there! Beep!”, and she also turns up as the Drum Teacher in Drum Lessons.

Her Japanese name is Ondoku-chan (音読ちゃん) — from ondoku, “reading aloud”, with the affectionate -chan. That is her whole job: the game lets you choose how much she reads, between Read the Words, Read and Describe, and No Reading Aloud. In Read and Describe she narrates what is happening on screen as well.

Where the voice comes from

Nintendo did not build this voice. The game's credits name ReadSpeaker, HOYA's speech brand, and the engine compiled into the game identifies itself as VoiceText — a commercial speech engine, licensed and built straight into the executable: one complete, independent copy per language, twelve in all, with every pronunciation dictionary embedded in the binary itself.

There is no public desktop build of that engine. What runs here is the game's own ARM64 code, lifted out of the cartridge and executed under emulation.

Why isn't this an NVDA or SAPI voice?

Three reasons, and the first is the hard one.

Generate speech

Text to speak

Up to 5000 characters. Markup tags are allowed — see below.

Markup tags

These are the engine's own tags, the same ones the game uses. Put them straight into the text.

<vtml_pause time="500"/>
Silence, in milliseconds. Self-closing — there is no end tag.
<vtml_speed value="150">…</vtml_speed>
Speed as a percentage, 50 to 200. Lower stretches the words out.
<vtml_pitch value="180">…</vtml_pitch>
Pitch as a percentage. 150 raises the fundamental frequency by half again.
<vtml_volume value="200">…</vtml_volume>
Loudness as a percentage.
<vtml_emotion category="happiness" level="3">…</vtml_emotion>
Categories are happiness, anger and sadness; levels run 1 to 4. Happiness raises the pitch and quickens the delivery, sadness does the opposite.

An example — the tags nest, and the last part is the game's own beep:

Ready?<vtml_pause time="600"/><vtml_speed value="80">Take your time.</vtml_speed> <vtml_emotion category="happiness" level="4"><vtml_speed value="190"><vtml_pitch value="190">Beep</vtml_pitch></vtml_speed></vtml_emotion>