Skip to main content

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 voicePiperElevenLabs
Setup requiredNoneDownload once (~50 MB)API key
Internet required❌ NoDownload onlyβœ… Yes (every session)
QualityBasic (device-dependent)Natural & expressivePremium, human-like
Works offline?βœ… Alwaysβœ… After download❌ Requires internet
CostFreeFreeFree tier available

How to Change Voice Provider​

  1. Open parent settings by tapping the Settings button (βš™οΈ) on the home screen
  2. Go to Settings β†’ Voice
  3. Select your preferred provider
  4. 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.


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​

  1. In Settings β†’ Voice, select Piper
  2. Tap Download voice model
  3. Wait for the download to complete (~50 MB, Wi-Fi recommended)
  4. The voice will activate automatically once downloaded
One-time download

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​

  1. Go to elevenlabs.io/app/developers/api-keys
  2. Click Create API key
  3. 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
  4. Copy the key

Step 3 β€” Enter the key in Kidhoot​

  1. In Settings β†’ Voice, select ElevenLabs
  2. Paste your API key and tap Validate
  3. Once validated, the voice will activate immediately
Internet required

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).

  1. In Settings β†’ Voice β†’ ElevenLabs, each language shows a dropdown with the current voice
  2. Tap the dropdown to see available voices for that language
  3. 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