Skip to main content

Troubleshooting

speak() has no player

Pass an AudioPlayer to KittenTTS.create(), or call generate() when you only need WAV data.

iOS player rejects WAV bytes

Tell the app-side player that generated bytes are audio/wav, or write them to a temporary file with a .wav extension.

Android emulator is out of space

adb uninstall com.example.yourapp
flutter run -d android

Wipe the emulator data if uninstalling old builds is insufficient.

First run is slow or restarts

Model and phonemizer files download on first use. Inspect cacheInfo(). If an interrupted asset is corrupt, call redownloadModel() once. The SDK normally retries each file four times.

Web cannot initialize ONNX

Load onnxruntime-web@1.22.0 before flutter_bootstrap.js. Confirm Content Security Policy and hosting permit the script, WASM, model, and dictionary requests.

Web phonemizer behavior differs

The default web path uses the bundled JS/Emscripten CE runtime. allowRuleBasedFallback: true is for experiments and is not quality-equivalent to CE.

Local model files fail immediately

Both ONNX and voices.npz paths must resolve. When modelFiles is set, the SDK does not fall back to downloads.

Include Flutter/Dart versions, target platform, model, and full error in reports: Flutter issues.