Voice Quality & TTS Setup
Kidhoot reads all content aloud to help young children follow along β even before they can read. You can choose between three voice options depending on your needs.
Comparing the Three Optionsβ
| System voice | Piper | ElevenLabs | |
|---|---|---|---|
| Setup required | None | Download once (~50 MB) | API key |
| Internet required | β No | Download only | β Yes (every session) |
| Quality | Basic (device-dependent) | Natural & expressive | Premium, human-like |
| Works offline? | β Always | β After download | β Requires internet |
| Cost | Free | Free | Free tier available |
How to Change Voice Providerβ
- Open parent settings by tapping the Settings button (βοΈ) on the home screen
- Go to Settings β Voice
- Select your preferred provider
- If you choose Piper or ElevenLabs, follow the additional steps below
Option 1: System Voice (Default)β
The system voice uses your device's built-in text-to-speech engine. It requires no setup and works immediately.
Quality varies by device β some Android devices have excellent system voices, others sound quite robotic. If the voice sounds unnatural, we recommend trying Piper.
Option 2: Piper (Recommended Offline Voice)β
Piper is a high-quality open-source offline TTS engine. It sounds much more natural than a typical system voice, without requiring internet after the initial download.
How Piper works: Piper uses a compact AI voice model that is downloaded once to your device. Once the model is on your device it runs entirely offline β no internet connection is needed during any lesson. The model is stored locally and works even in airplane mode. You only ever need internet for the one-time download.
Supported Languagesβ
Piper supports all three Kidhoot languages: English, French, and Italian.
How to Download the Piper Modelβ
- In Settings β Voice, select Piper
- Tap Download voice model
- Wait for the download to complete (~50 MB, Wi-Fi recommended)
- The voice will activate automatically once downloaded
You only need to download Piper once. It stays on your device and works entirely offline.
Option 3: ElevenLabs (Premium Cloud Voices)β
ElevenLabs provides the highest-quality voices available. Every word is generated in the cloud in real time, giving a very natural, human-like result for both lesson content and personalized messages.
Step 1 β Create an ElevenLabs accountβ
Go to elevenlabs.io and create a free account. A free account includes a generous monthly allowance β more than enough for regular use.
Step 2 β Get your API keyβ
- Go to elevenlabs.io/app/developers/api-keys
- Click Create API key
- Give it a name (e.g. "Kidhoot") and enable these two scopes:
- Text to Speech β required for the app to generate voice
- Voices β required if you want to pick or use your own custom voice
- Copy the key
Step 3 β Enter the key in Kidhootβ
- In Settings β Voice, select ElevenLabs
- Paste your API key and tap Validate
- Once validated, the voice will activate immediately
ElevenLabs needs an active internet connection. If connectivity drops mid-session, the app automatically falls back to the system voice so learning is never interrupted.
Choosing a voice per language (optional)β
After validating your API key, you can pick a different voice for each language Kidhoot teaches (English, French, and Italian).
- In Settings β Voice β ElevenLabs, each language shows a dropdown with the current voice
- Tap the dropdown to see available voices for that language
- Tap π next to any voice to hear a preview before selecting
The default voices are carefully chosen to sound natural and clear for children. You only need to change them if you have a preference.
Using your own cloned voice (optional)β
ElevenLabs lets you create a clone of any voice β including your own. Once created, your cloned voice appears in the voice picker just like any other and can be selected per language.
This means Kidhoot can speak to your child in a voice they already know and love.
Troubleshooting Voice Issuesβ
Voice is silent or not playing
- Check your device volume
- Make sure the app volume slider in Settings β Voice is not at zero
- Try switching to System voice to rule out a provider issue
Piper model won't download
- Ensure you have a stable Wi-Fi connection
- Check you have at least 100 MB of free storage
- Try again after restarting the app
ElevenLabs key not validating
- Double-check you copied the full key with no extra spaces
- Make sure the Text to Speech scope is enabled on the key
ElevenLabs voice list is empty
- Make sure the Voices scope is enabled on your API key (see Step 2 above)
ElevenLabs not working during a session
- Check your internet connection
- Check your usage limit at elevenlabs.io
Fallback behaviour: If your selected voice provider fails, Kidhoot automatically falls back to the system voice so learning is never interrupted.
See also: Troubleshooting & FAQ