September 13, 2026 · current

TTS Voices in Pediatric AAC on iOS — Vendor Suppliers, Apple System Voices, Licensing, and Clinical Evidence (plus custom words with photos)

Why Oso Voice's voice picker shows Apple novelty voices ("Whisper") and how to filter them; which voice vendors the major pediatric AAC apps use (Acapela child voices dominate); what Apple exposes on iOS 17/18 (no genuine child voice; Personal Voice is a self-clone, not a stock voice); what licensing a child voice would require (Acapela iOS SDK, annual fee plus royalties, offline-capable); clinical evidence that age/gender-matched voices drive acceptance. Also records the /slp ruling on caregiver-added custom words with photos.

Oso Voice research — 2026-09-13. Adam raised two roadmap ideas after ADR 009 shipped: caregiver-added custom words with images from the photo library, and voice quality — the picker exposes odd voices like “Whisper”. Both were taken through the /slp consultant; the voice half was then checked for currency by a Sonnet web-research pass (sources footnoted, confidence tagged [vendor-doc], [peer-reviewed], [practitioner], [secondary], [not found]).

Part 1 — Voices

Headline

  1. “Whisper” is an Apple novelty voice. iOS ships a distinct novelty category (Bad News, Bahh, Bells, Boing, Bubbles, Cellos, Deranged, Good News, Hysterical, Junior, Pipe Organ, Trinoids, Whisper, Zarvox, plus iOS 17 additions) flagged by the isNoveltyVoice trait, and AVSpeechSynthesisVoice.speechVoices() returns them — an app must filter [practitioner, corroborated]. Oso Voice’s tts.ts filters only by English language, so novelty voices sort in among the real ones.
  2. Apple ships no genuine child voice. Standard voices come in compact, enhanced, premium quality tiers (com.apple.voice.<quality>.<locale>.<Name>); the only child-like one is the pitch-shifted novelty voice “Junior” [practitioner inference; no Apple statement found]. Apple Personal Voice (iOS 17) lets a user clone their own voice and authorize third-party apps (requestPersonalVoiceAuthorization, isPersonalVoice trait) — a self-clone for people losing speech, not a stock child voice [vendor-doc].
  3. The major pediatric AAC apps ship licensed child voices, almost all from Acapela. Proloquo2Go bundles Acapela’s purpose-built American children’s voices Josh and Ella (developed with AssistiveWare since 2012) plus British children’s voices, free with the app [vendor-doc]. TD Snap, TouchChat and LAMP use Acapela (PRC-Saltillo also lists Inclusive/Almagu voices) [vendor-doc]. Grid for iPad offers Acapela, Nuance/RealSpeak, CereProc, Speak Unique and ModelTalker packs [vendor-doc]. CoughDrop uses device voices free and Acapela child/teen voices as a premium tier [vendor-doc]. Avaz on iOS relies on Apple voices [secondary].
  4. Licensing a child voice means Acapela, offline-capable, at negotiated cost. Acapela has a dedicated iOS TTS SDK with on-device voices; pricing is an annual developer license plus per-unit/per-voice royalties, contact sales [vendor-doc]. CereProc has an iOS SDK and offline CereWave voices but no confirmed child product line [not found]; Cerence (ex-Nuance Vocalizer) is enterprise-only [not found] on pricing.
  5. Clinical evidence favors age/gender-matched voices, and individual choice. Terblanche et al. 2025 (Int J Lang Commun Disord): adult voices scored higher on naturalness (MOS ~4.2 vs ~3.8) but acceptability, not naturalness, drove preference; voices matched to the child’s age, gender, language and culture increased acceptance and use, while one 12-year-old still chose an adult voice [peer-reviewed]. AssistiveWare frames the pre-2012 status quo (children on adult or pitch-shifted voices) as an identity and social-acceptance problem for the ~60% of its users under 12 [vendor-doc]. ASHA’s practice portal treats voice output as one feature-matching dimension in AAC assessment [secondary].

Vendor × voice supplier

App Supplier(s) Child/teen voices Cost to family
Proloquo2Go / Proloquo Acapela (Josh, Ella, British children’s voices) + Apple Yes, purpose-built Included [1][2]
TD Snap Acapela (incl. My-Own-Voice) + Apple Some, via catalog Voice packs [3]
TouchChat / LAMP WFL Acapela + Inclusive/Almagu + Apple Yes, “variety of ages” Bundled [3][4][5]
Grid for iPad Acapela, Nuance/RealSpeak, CereProc, Speak Unique, ModelTalker + Apple Depends on pack Mixed [6][7]
CoughDrop Apple voices free; Acapela premium Yes, premium Freemium [8]
Avaz (iOS) Apple voices No genuine child voice Free [9]

Licensing options

Vendor iOS SDK Offline Pricing Child voices
Acapela Group Yes Yes Annual license + royalties, contact sales Yes (flagship) [10][11]
CereProc Yes Yes Annual developer subscription; academic free Not confirmed [12][13]
Cerence (ex-Nuance) Yes (embedded SDK) Yes Enterprise, no public pricing Not confirmed [14][15]

Recommendation (SLP ruling)

  • Now, free, part of real-device readiness: filter novelty voices out of the picker (by the isNoveltyVoice trait if react-native-tts exposes it, else by identifier family — note the exact novelty identifier prefix on current iOS is [not found], verify on device); exclude unauthorized Personal Voice entries; sort Enhanced/Premium first; add a one-line hint telling caregivers how to download an enhanced voice in iOS Settings, since the compact defaults are the ones that sound robotic. Keep voice preview. Principles: low-friction access; sensory-safe defaults (a novelty voice surfacing to a child is a sensory hazard, not a joke). Implementation ruling (2026-09-13): the legacy Macintalk-era voices (Albert, Fred, Kathy, Ralph — same com.apple.speech.synthesis.voice.* identifier family) are hidden unconditionally alongside the novelty voices, not surfaced as “Standard, low quality”: their intelligibility for young listeners is poor and every surveyed vendor curates its voice list rather than exposing the raw system enumeration. The filter must also apply on the boot path that restores the persisted voice, not only in the picker, so a previously selected novelty voice is corrected before the first word is spoken. On the iOS 26.4 simulator, 68 voices enumerate; three novelty voices show display names that differ from their ids (Deranged → “Wobble”, Hysterical → “Jester”, Princess → “Superstar”), so the denylist carries both. Follow-up: react-native-tts’s iOS wrapper maps quality as enhanced → 500, else → 300, never distinguishing Premium from default, so Premium voices on a real device may be mislabeled or mis-ranked. Amendment (2026-10-11): Adam ruled Apple’s Eloquence voices (com.apple.eloquence.*) hidden, overriding the earlier keep. The Premium tier is now reported correctly through a patch to the iOS wrapper (quality sent as premium / enhanced / default), and the picker shows one entry per voice name at the best installed tier. A one-time first-launch notice and a Settings banner now nudge caregivers toward Enhanced/Premium voices (iOS only); the app never changes the selected voice itself. Upgrade offers are same-name only and declinable, a forced voice replacement is shown to the caregiver once, and the download guidance names the iOS 26 path (Read & Speak; Spoken Content on iOS 17/18).

  • Phase 2 “extended voices” = a licensed child voice, realistically Acapela. It is the only vendor confirmed here with shipped child voices that AAC peers already use, and it works on-device (product principle 3, offline-first). Budget an annual SDK license plus royalties and app-size overhead for bundled voice data. Under product principle 6 a usable voice is part of the communication floor; a child voice is a premium-tier candidate only if a good adult Enhanced voice remains free — and the Terblanche finding that some children prefer an adult voice supports keeping the choice with the child and family, never auto-assigning by age.

  • Personal Voice is worth exposing later for the small population that has it (an older child losing speech, a parent modeling in their own voice), not as a substitute for a stock child voice.

    Device findings (2026-10-11, first run on Adam’s iPhone 17): two bugs the simulator cannot surface, both fixed the same day (brightvoice a74c426, 3b6443e). (1) speak() sent iosVoiceId: '' on every grid tap; react-native-tts’s iOS wrapper honours the key whenever it is present, so an empty id resolved to no voice and the system default won — the selected voice had never been used on a real device since the July rate workaround (only Preview, which names the voice, worked). The service now carries the selected/restored/substituted id per utterance and omits the key when none exists. (2) On a device AVSpeechSynthesisVoice.name carries the tier (“Ava (Premium)”, “Evan (Enhanced)”); the simulator reports bare names. Unstripped, the picker showed the tier twice and compact “Samantha” never matched “Samantha (Enhanced)” for dedupe or the upgrade offer. Names are now normalised at the roster source. Lesson: the simulator’s roster differs in shape, not just size — voice-path changes are only tested once the device roster log has been read.

Part 2 — Custom words with photos (SLP ruling, no web pass needed)

Every major AAC system supports caregiver-added words with photos, because fringe vocabulary is personal: family names, pets, specific foods and places. A photo of a real person is more recognizable than any symbol for a proper noun, and personal content is the most motivating vocabulary a family can add. Principle 1 (core before fringe) orders the work; it does not exclude this. Design rules that keep it aligned:

  • Adding is appending. The caregiver picks category and subfolder; the new word takes the next empty cell. Never a reshuffle (ADR 006; the named-tier non-goal in docs/clinical-vision.md is about layout editing, which this is not).
  • Image override on existing words is the bigger win — replacing the generic “mom” symbol with mom’s photo in the same cell — so the feature is “override any word’s image, and add new words”, not “add” alone.
  • Shipped design: docs/superpowers/specs/2026-10-13-caregiver-custom-words-design.md; the rule is widened to photos for referents (people, pets, places, the child’s own things), symbols for concepts.
  • Photos for people, pets and places; symbols for concepts. A photo of a sad face is worse than a symbol for “sad”. Guide caregivers in the UI; keep the Modified Fitzgerald Key border on every cell (ADR 002).
  • In-app, not Studio — ratified by Adam 2026-09-13. The parent adding a word is standing in the kitchen with the child. VoicePack Studio’s role is deeper customization: authoring custom voicepacks and using AI to create the images for words. The two must share one package schema so a Studio-authored pack and in-app additions coexist (in-app additions live outside the bundled package, appended per subfolder).
  • Placement: first Phase 2 feature; a minimal version is worth landing before the first family TestFlight, because the first request will be the family’s own names. It follows the full symbol run, which fixes 456 placeholder cells that a dozen personal photos do not.

Sources

[1] assistiveware.com/community-stories/the-making-of-the-american-childrens-voices-josh-and-ella · [2] assistiveware.com/innovations/creating-genuine-childrens-voices · [3] prc-saltillo.com/voices · [4] lampwflapp.com/features/voices · [5] touchchatapp.com/articles/app-release-247 · [6] thinksmartbox.com/grid-voices · [7] hub.thinksmartbox.com/knowledgebase/which-voices-are-available-in-grid-for-ipad · [8] coughdrop.zendesk.com — “How do I select a premium voice” · [9] omazingkidsllc.com 2022-10-08 (Avaz Acapela on Android) · [10] acapela-group.com/solutions/acapela-tts-for-ios · [11] acapela-group.com/voices/children-voices · [12] app.cereproc.com/cerevoice-sdk · [13] cereproc.com/en/storedevel · [14] cerence.com/newsroom/blog/cerence-sdk-v9-embedded-voice-ai · [15] cerence.com/products/speech-input-output · Apple: developer.apple.com/videos/play/wwdc2023/10033 (Personal Voice); support.apple.com/en-us/104993; developer.apple.com/documentation/avfaudio/avspeechsynthesisvoice/traits/isnoveltyvoice; bendodson.com/weblog/2024/04/03 (novelty filtering) · Terblanche et al. 2025, pmc.ncbi.nlm.nih.gov/articles/PMC11724391 · asha.org/practice-portal/professional-issues/augmentative-and-alternative-communication

Confidence ladder

  • [vendor-doc] AssistiveWare, PRC-Saltillo, Smartbox, CoughDrop, Acapela, CereProc, Cerence, Apple developer/support pages.
  • [peer-reviewed] Terblanche et al. 2025.
  • [practitioner] novelty-voice filtering (bendodson.com), “Junior” as pitch-shifted (AppleVis forum).
  • [not found] current novelty identifier prefix; CereProc/Cerence child voices; any public Acapela price.

← All research