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
- “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
isNoveltyVoicetrait, andAVSpeechSynthesisVoice.speechVoices()returns them — an app must filter[practitioner, corroborated]. Oso Voice’stts.tsfilters only by English language, so novelty voices sort in among the real ones. - Apple ships no genuine child voice. Standard voices come in
compact,enhanced,premiumquality 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,isPersonalVoicetrait) — a self-clone for people losing speech, not a stock child voice[vendor-doc]. - 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]. - 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. - 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
isNoveltyVoicetrait 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 — samecom.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 aspremium/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()sentiosVoiceId: ''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 deviceAVSpeechSynthesisVoice.namecarries 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.mdis 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.