| # VOICE_ROSTER.md — Kokoro Voice IDs | |
| Verified against `hexgrad/Kokoro-82M` on June 12, 2026 using: | |
| ```bash | |
| uv run python scripts/verify_kokoro_voices.py | |
| ``` | |
| ## Selected Runtime Roster | |
| | Enum | Kokoro voice ID | Intended use | | |
| |---|---|---| | |
| | `ANNOUNCER` | `am_michael` | station announcer / narrator | | |
| | `DETECTIVE` | `am_onyx` | noir lead / grounded male | | |
| | `INGENUE` | `af_bella` | dramatic lead / caller | | |
| | `COMIC` | `am_puck` | comedy and oddball characters | | |
| | `VILLAIN` | `am_fenrir` | menace / heavy | | |
| | `ELDER` | `bm_george` | older British character voice | | |
| | `HINDI_FEMALE` | `hf_alpha` | Hindi melodrama female | | |
| | `HINDI_MALE` | `hm_omega` | Hindi melodrama male | | |
| These exact IDs are locked in `midnight_static.schema.VoiceID`. Do not generate | |
| fine-tuning data against aliases or placeholder names. | |
| ## Available Voice IDs | |
| ```text | |
| af_alloy | |
| af_aoede | |
| af_bella | |
| af_heart | |
| af_jessica | |
| af_kore | |
| af_nicole | |
| af_nova | |
| af_river | |
| af_sarah | |
| af_sky | |
| am_adam | |
| am_echo | |
| am_eric | |
| am_fenrir | |
| am_liam | |
| am_michael | |
| am_onyx | |
| am_puck | |
| am_santa | |
| bf_alice | |
| bf_emma | |
| bf_isabella | |
| bf_lily | |
| bm_daniel | |
| bm_fable | |
| bm_george | |
| bm_lewis | |
| ef_dora | |
| em_alex | |
| em_santa | |
| ff_siwis | |
| hf_alpha | |
| hf_beta | |
| hm_omega | |
| hm_psi | |
| if_sara | |
| im_nicola | |
| jf_alpha | |
| jf_gongitsune | |
| jf_nezumi | |
| jf_tebukuro | |
| jm_kumo | |
| pf_dora | |
| pm_alex | |
| pm_santa | |
| zf_xiaobei | |
| zf_xiaoni | |
| zf_xiaoxiao | |
| zf_xiaoyi | |
| zm_yunjian | |
| zm_yunxi | |
| zm_yunxia | |
| zm_yunyang | |
| ``` | |