Commit a4917b

2026-08-07 11:33:03 admin: init
/dev/null .. 05-avatars-companions.md
@@ 0,0 1,57 @@
+ ---
+ title: Avatars & Companions
+ aliases: [Companions, Netra the Owl, Voice Personas]
+ tags: [3netra/wiki, avatars, companions, tts]
+ product: 3netra Meta Android App
+ source_repository: 3Netra-ai/3n_meta_android
+ source_ref: origin/prod
+ source_revision: b48aada8fd5427b5db0c02945569963c4ae543c8
+ last_verified: 2026-08-06
+ up: "[[Home]]"
+ ---
+
+ # Avatars & Companions
+
+ 3netra's UI exposes four companion cards. `companion_id` and nickname are saved in preferences; the selection does not currently alter prompts, model routing, or a voice tag.
+
+ ## Companion Roster (CompanionSelectScreen)
+
+ | id | Avatar | Name | Personality | Accent color | Voice sample |
+ |---|---|---|---|---|---|
+ | `owl` (default) | ๐Ÿฆ‰ | **Netra the Owl** | Wise and warm | SkyCyan | "Hi! I'm Netra. I'm watching over you and I'll describe every wonderful thing I see!" |
+ | `cosmo` | ๐Ÿค– | **Cosmo the Bot** | Upbeat and energetic | LavenderPurple | "Cosmo here! Ready to zoom through your classroom at the speed of light? Let's go!" |
+ | `sage` | ๐ŸŒฟ | **Sage the Panda** | Calm and peaceful | FriendlyGreen | "Hello, friend. Sage here. Let's explore together, one gentle step at a time." |
+ | `ripple` | ๐Ÿฌ | **Ripple** | Playful and friendly | MintTeal | "Wheee! It's Ripple! I see SO many cool things around you. Want to hear all about them?" |
+
+ Each card offers **"Hear my voice ๐Ÿ”Š"** preview (speaks the sample through the standard TTS path). Selection screen also captures the student's nickname ("What should Netra call you?").
+
+ **Netra the Owl** is the brand mascot and appears across: onboarding welcome ("Hi! I'm Netra."), Home hero card (๐Ÿฆ‰), grade-selection quote bubbles ("I'll talk just like your class does!"), permission screen, and pairing success ("Amazing! I can see through your glasses now!").
+
+ ## Voice Persona Machinery
+
+ | Component | Role |
+ |---|---|
+ | `ChildVoicePersonaManager` | Active Scene screen helper: Android TTS with legacy Kโ€“6 vocabulary replacement and pitch/rate controls |
+ | `StudentOnboardingWizard` | Unwired calibration screen using the same child-voice helper |
+ | Companion selection | Local `companion_id`/nickname presentation state; no verified TTS or backend mapping |
+ | `student_settings` fields | Client payload fields only; no committed DDL proves defaults or persistence |
+ | Speaking speed | Settings writes `tts_speed`; `BluetoothService.speak()` reads it. Scene screen uses its separate child-voice helper |
+
+ ## TTS Pipeline (all spoken output)
+
+ ```mermaid
+ flowchart LR
+ TXT[Screen/chat text] --> PATH{Call site}
+ PATH -->|Scene screen| ATTS[ChildVoicePersonaManager / Android TTS]
+ PATH -->|BluetoothService| LANG{settings language}
+ LANG -->|conditional| SAR[Sarvam client]
+ LANG -->|otherwise| BTTS[Android TTS]
+ ```
+
+ > [!warning] Implementation mismatch
+ > The reviewed source still calls the active helper `ChildVoicePersonaManager` and contains child/Kโ€“6 filtering. This is not an implementation of the higher-education voice policy documented elsewhere; it must be changed in source, not inferred from companion copy.
+
+ ---
+
+ > [!tip] Navigation
+ > โฌ…๏ธ [[04-User-Journeys|User Journeys]] ยท ๐Ÿ  [[Home]] ยท โžก๏ธ [[06-Feature-Matrix|Feature Matrix]]
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9