Blame

a4917b admin 2026-08-07 11:33:03
init
1
---
2
title: Avatars & Companions
3
aliases: [Companions, Netra the Owl, Voice Personas]
4
tags: [3netra/wiki, avatars, companions, tts]
5
product: 3netra Meta Android App
6
source_repository: 3Netra-ai/3n_meta_android
7
source_ref: origin/prod
8
source_revision: b48aada8fd5427b5db0c02945569963c4ae543c8
9
last_verified: 2026-08-06
10
up: "[[Home]]"
11
---
12
13
# Avatars & Companions
14
15
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.
16
17
## Companion Roster (CompanionSelectScreen)
18
19
| id | Avatar | Name | Personality | Accent color | Voice sample |
20
|---|---|---|---|---|---|
21
| `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!" |
22
| `cosmo` | ๐Ÿค– | **Cosmo the Bot** | Upbeat and energetic | LavenderPurple | "Cosmo here! Ready to zoom through your classroom at the speed of light? Let's go!" |
23
| `sage` | ๐ŸŒฟ | **Sage the Panda** | Calm and peaceful | FriendlyGreen | "Hello, friend. Sage here. Let's explore together, one gentle step at a time." |
24
| `ripple` | ๐Ÿฌ | **Ripple** | Playful and friendly | MintTeal | "Wheee! It's Ripple! I see SO many cool things around you. Want to hear all about them?" |
25
26
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?").
27
28
**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!").
29
30
## Voice Persona Machinery
31
32
| Component | Role |
33
|---|---|
34
| `ChildVoicePersonaManager` | Active Scene screen helper: Android TTS with legacy Kโ€“6 vocabulary replacement and pitch/rate controls |
35
| `StudentOnboardingWizard` | Unwired calibration screen using the same child-voice helper |
36
| Companion selection | Local `companion_id`/nickname presentation state; no verified TTS or backend mapping |
37
| `student_settings` fields | Client payload fields only; no committed DDL proves defaults or persistence |
38
| Speaking speed | Settings writes `tts_speed`; `BluetoothService.speak()` reads it. Scene screen uses its separate child-voice helper |
39
40
## TTS Pipeline (all spoken output)
41
42
```mermaid
43
flowchart LR
44
TXT[Screen/chat text] --> PATH{Call site}
45
PATH -->|Scene screen| ATTS[ChildVoicePersonaManager / Android TTS]
46
PATH -->|BluetoothService| LANG{settings language}
47
LANG -->|conditional| SAR[Sarvam client]
48
LANG -->|otherwise| BTTS[Android TTS]
49
```
50
51
> [!warning] Implementation mismatch
52
> 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.
53
54
---
55
56
> [!tip] Navigation
57
> โฌ…๏ธ [[04-User-Journeys|User Journeys]] ยท ๐Ÿ  [[Home]] ยท โžก๏ธ [[06-Feature-Matrix|Feature Matrix]]