vault-sync: 2026-09-16 12:01 (jimmy)

This commit is contained in:
jimmy
2026-09-16 12:01:21 -07:00
parent 00719428b2
commit 8a5b38c9ce
86 changed files with 12918 additions and 90 deletions
@@ -0,0 +1,51 @@
---
title: "American English Accents — VoiceStudio (use) + OpenMAIC (how-to)"
date: 2026-09-16
type: reference
status: active
author: Jimmy
tags: [voicestudio, open-maic, accents, tts, american-english, reference]
related:
- "[[04_projects/veripath/Call-2026-08-15-Tony]]"
- "[[04_projects/veripath/tools-inventory]]"
---
# American English Accents
> 2026-09-16, by Jimmy. Two repos, two mechanisms. **VoiceStudio**: American accents are *dialect-driven* (`en-US`) and are **already supported — no code edit required**. **OpenMAIC**: accents are `en-US` TTS voices picked in the config UI. See the open question at the foot.
## VoiceStudio — American English is already supported (no modification needed)
Repo: `debpalash/VoiceStudio`, adopted 2026-09-16. Cloned locally to `C:\Users\fight\Projects\VoiceStudio` (commit `8a1e6eb`, branch `main`, 3009 files, no LFS).
Accent in VoiceStudio is a **dialect/locale** applied on the dub/refine path — not a voice picker:
- `frontend/src/api/dialects.ts:11-20` → `DIALECTS.en = ['en-US','en-GB','en-AU','en-IN']`; `dialectOptionsFor('en')` surfaces `en-US` in the UI dropdown.
- `backend/api/routers/dub_translate.py:94-124` → `DIALECT_HINTS["en-US"] = "American English: use US spelling and vocabulary."`; `dialect_clause()` (line 127) injects this hint into the LLM translation prompt, so `en-US` actually yields US spelling & vocabulary.
- `backend/services/pronunciation.py` → Settings → Pronunciation dictionary: respelling rules scoped by language prefix (`en-US` → prefix `en`), e.g. `Nevada → "Nuh-VAD-uh"` (see `tests/test_pronunciation.py:170`).
**How to use American accents:** open the dub/translate UI → select dialect **`en-US`** → (optional) add custom respellings in **Settings → Pronunciation** for words you want spoken a specific way. No repository change needed to get American English output.
> Note: VoiceStudio does **not** share OpenMAIC's `settings.ts` / `voice-resolver.ts` architecture (searching VoiceStudio for `browser-native-tts`/`ttsVoice` returns zero matches). Treating them as the same accent system was the original error — corrected.
## OpenMAIC — how to select an American voice
Repo: `THU-MAIC/OpenMAIC`, cloned to `C:\Users/fight\Projects/OpenMAIC` (commit `2cbd011`, branch `main`). Accents here = `en-US` TTS voices.
1. Open the **TTS config popover** (toolbar speaker button) → choose a provider → choose its `en-US` voice. The selection persists in the settings store (`ttsVoice` + `ttsProviderId`) and `resolveAgentVoice()` (`lib/audio/voice-resolver.ts`) applies it to the teacher narrator and discussion agents.
2. American voices in the catalog (`lib/audio/constants.ts`):
- **OpenAI** (`openai-tts`, needs `TTS_OPENAI_API_KEY`) — `alloy, ash, ballad, coral, echo, fable, marin, nova, onyx, sage, shimmer, verse`; all tagged `language: 'en'` (US English).
- **Azure** (`azure-tts`, needs `TTS_AZURE_API_KEY` + `TTS_AZURE_BASE_URL`) — `en-US-JennyNeural`, `en-US-GuyNeural` and other `en-US-…Neural` voices (explicit locale).
- **browser-native** (no key) — pick a voice whose locale is `en-US`.
3. **Trap:** shipped default is `browser-native-tts` + `'default'` (`lib/store/settings.ts:519-520`). `'default'` means "the browser's first voice" — **not** guaranteed American. Lock an accent by selecting a real `en-US` voice instead of `'default'`.
4. **Per-agent:** `resolveAgentVoice()` checks `overrides[agent_id]` first — set a per-agent override in the settings store to force a specific agent (e.g. the Phoenix salon teacher) to always speak American.
## VeriPath tooling (context)
This note pairs with `[[04_projects/veripath/tools-inventory]]`, which captures VeriPath's live local services, repo tools, templates, and current status (incl. FreeToken model currently `MiniCPM5-2B`).
## Open question (needs your call)
- VoiceStudio: make `en-US` the **default** dialect (American on without manual selection)? The current default is no dialect → neutral English (`dialect_clause` returns `""` when unset). If yes, I'll locate the default-dialect site and propose the exact line for your approval before any edit.
Author: Jimmy. Status: reference; revisit when the default-dialect decision is made.