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]] |
