Playback and WAV export
Generate and play
let result = try await tts.speak(
"This is generated and played locally.",
voice: .rosie,
speed: 1.0
)
speak() returns after playback completes and returns the generated result. On iOS, audio session activation can fail and surface as audioSessionFailed.
Stop playback
await tts.stopSpeaking()
Because KittenTTS is an actor, calls from outside its isolation use await even though stopSpeaking() itself is synchronous.
Encode WAV
let result = try await tts.generate("Save this audio.")
let wav: Data = result.wavData()
The encoder produces a standard RIFF WAV with 16-bit PCM, one channel, and a 24 kHz sample rate.
Write atomically
let destination = FileManager.default.temporaryDirectory
.appendingPathComponent("kitten.wav")
try result.writeWAV(to: destination)
writeWAV(to:) uses an atomic Data write and surfaces normal Cocoa file errors. Choose an app-owned documents, caches, or temporary directory appropriate to the file's lifetime.