Install this skill

Paste this into Claude Code (VS Code panel, Adom editor, or terminal) to install:

Search the Adom Wiki for the skill "TTS Pronunciation — Canonical Table" (slug: tts-pronunciation) at https://wiki-ufypy5dpx93o.adom.cloud/wiki/skills/tts-pronunciation and install it into my local ~/.claude/skills/tts-pronunciation/ directory. Fetch the skill_source content from the wiki page and save it as SKILL.md. Then confirm it's installed by showing the first 5 lines.
?
What is a skill? Skills are instructions that teach AI assistants like Claude Code how to perform specific tasks. The description below is loaded into the AI as context when you invoke this skill. Well-written skills make the AI significantly more effective. Like Wikipedia, anyone can improve a skill by clicking Edit AI Skill — or have your AI submit an edit on your behalf.

Description

Edit AI Skill

name: tts-pronunciation description: Canonical table of TTS pronunciation overrides for Adom tool names, acronyms, and product terms that neural TTS engines (edge-tts, piper, azure, eleven-labs) mispronounce. Use when writing narration for any demo / walkthrough / tour / voiceover — look up each Adom-ish term in the table and spell it phonetically in the narration column. Use BEFORE rendering any TTS audio, not after. Trigger words: tts pronunciation, tts pronounce, mispronounce, how do I make TTS say, edge-tts pronounce, narration pronunciation, speak adom-tsci, demo narration phonetics. Also fires automatically whenever another skill (demo-recording, video-post, voiceover-over-a-recording) is drafting narration text.

TTS pronunciation — canonical table

Single source of truth for how to write Adom tool names, acronyms, and product terms in narration so neural TTS engines voice them correctly. Every demo-recording / video-post / voiceover flow should consult this file at script-write time (not at render time — fixing mistakes after mux means re-rendering N clips).

🛑 The one rule

If the TTS engine would read a word as something other than what a listener expects, rewrite it in the narration. The most common fix is spelling an acronym out as individual letters separated by spaces — adom-tsciadom t s c i. Edge-TTS and Piper both read letter-space-letter as individual letter names. No-space gets parsed as a single word and butchered.

Captions and on-screen text always use the real name (adom-tsci). Only the narration column gets phoneticized.

The table

Source-of-truth data file: pronunciations.json (same dir). This table is rendered from that file; update the JSON and this section regenerates on skill install.

Written in product / captionNarration spelling (what the TTS sees)Engines confirmedReason
adom-tsciadom t s c iedge-tts, piperTTS reads tsci as "sci" / "ski"; letter-by-letter is the intended reading
tscircuitt s circuitedge-tts"tscircuit" sometimes OK but inconsistent across voices; forcing letters is safe
JLCPCBJ L C P C Bedge-tts, azureAcronym, always spell out
PCBP C BallAcronym
SMT / SMDS M T / S M DallAcronym
KiCadkai cadedge-ttsSome voices say "kee cad"; kai cad is the community pronunciation
MPNM P NallAcronym
BOMB O M or bill of materialsall"bom" gets read as the word "bomb" by some voices; spelling out is safer
FPGAF P G AallAcronym
I²C / I2CI squared C or I two CallSuperscript/digit both mangled
SPIS P IallAcronym
UARTyou artallEngines try to read as word (rhymes with "heart") which is wrong
MCUM C UallAcronym
GPIOG P I OallAcronym
Version numbers like 1.3.7one point three point sevenall1.3.7 gets read as "one three seven" or mangled decimals; always spell
Dates like 2026-04-23April twenty third (or "April twenty third twenty twenty six")allHyphenated date gets mangled
Slugs / UUIDsdon't narrate them; reference as "the container" / "the workspace"Never put a slug/UUID in a TTS stream

How to add an entry

Anyone can propose a new entry — the table lives in gallia and deploys via gallia/install.mjs. Contribution flow:

  1. Verify the problem. Render the current pronunciation to confirm it's actually wrong:

    edge-tts --voice en-US-AndrewMultilingualNeural \
      --text "this is <your term> version one" \
      --write-media /tmp/_tts-before.mp3
    # Listen: does the TTS say the term the way a human would?
    
  2. Find a spelling that fixes it. Common patterns:

    • Acronym → individual letters with spaces: JLCPCBJ L C P C B
    • Word with silent/weird letters → phonetic: KiCadkai cad
    • Number pattern → words: 1.3.7one point three point seven
    • Hyphenated brand name → space-or-phonetic: adom-tsciadom t s c i
  3. Verify the fix. Render with the new spelling:

    edge-tts --voice en-US-AndrewMultilingualNeural \
      --text "this is <your phonetic spelling> version one" \
      --write-media /tmp/_tts-after.mp3
    # Confirm it now reads correctly.
    
  4. Add to pronunciations.json. One entry per term:

    {
      "written": "JLCPCB",
      "narration": "J L C P C B",
      "engines_confirmed": ["edge-tts", "azure"],
      "reason": "Acronym; reads as garbled single word",
      "added_by": "john",
      "added_date": "2026-04-23"
    }
    
  5. Commit + publish. git commit the change; if you want wiki users to pick up the new entry, re-run adom-wiki publish on this skill's page (see ## Publishing below).

Engines we've tested against

  • edge-tts (Microsoft Edge neural) — default on the platform, invoked as edge-tts --voice <voice> --text <text> --write-media <file>. Voice table:
    • en-US-AndrewMultilingualNeural — default for Adom demos (clear, neutral-male)
    • en-US-AriaNeural — polished female
    • en-US-GuyNeural — warm neutral-male
  • piper — local offline TTS, fires on the platform when no network.
  • azure-tts — via Microsoft Azure Speech SDK.
  • eleven-labs — premium quality, used for hero demos.

Each engine has slightly different parsing rules. If a spelling works in one but not another, add a per-engine note in the pronunciations.json entry and pick the most permissive spelling (or provide per-engine overrides).

Integration — skills that consult this table

The following skills (should) look up terms here before drafting narration. If you spot drift between their embedded tables and this one, this file wins:

  • demo-recording — Step 2 (write the demo script with narration column)
  • video-post — storyboard review phase, narration validation
  • voiceover (when that flow ships) — pre-render check
  • Any custom narration script a user writes

One-liner verify in your own narration

Before rendering a whole 13-clip tour, pipe each scene's narration column through a verifier:

for narration in "$(jq -r '.scenes[].narration' demo/<name>-demo-script.json)"; do
  tmp=$(mktemp --suffix=.mp3)
  edge-tts --voice en-US-AndrewMultilingualNeural --text "$narration" --write-media "$tmp"
  echo "play: $tmp"
  # Listen or pipe to ffprobe for duration check
done

Cheap pre-flight; catches pronunciation and duration issues before you burn render time.

Publishing to wiki

This skill is published to the Adom Wiki so every container gets it on install. Publish with:

adom-wiki publish skills/tts-pronunciation \
  --file /home/adom/project/gallia/skills/tts-pronunciation/SKILL.md \
  --data-file /home/adom/project/gallia/skills/tts-pronunciation/pronunciations.json \
  --caption "Canonical TTS pronunciation table — add your term if the engine gets it wrong"

Users pick up the latest version via adom-cli skills install tts-pronunciation or gallia/install.mjs on next sync.

JSON
pronunciations.json 1 month ago
Canonical pronunciation data — JSON source of truth; consumer skills read this programmatically
5.5 KB

Skill Source

Edit AI Skill
---
name: tts-pronunciation
description: Canonical table of TTS pronunciation overrides for Adom tool names, acronyms, and product terms that neural TTS engines (edge-tts, piper, azure, eleven-labs) mispronounce. Use when writing narration for any demo / walkthrough / tour / voiceover — look up each Adom-ish term in the table and spell it phonetically in the narration column. Use BEFORE rendering any TTS audio, not after.
  Trigger words: tts pronunciation, tts pronounce, mispronounce, how do I make TTS say, edge-tts pronounce, narration pronunciation, speak adom-tsci, demo narration phonetics.
  Also fires automatically whenever another skill (demo-recording, video-post, voiceover-over-a-recording) is drafting narration text.
---

# TTS pronunciation — canonical table

Single source of truth for how to write Adom tool names, acronyms, and product terms in narration so neural TTS engines voice them correctly. Every demo-recording / video-post / voiceover flow should consult this file at script-write time (not at render time — fixing mistakes after mux means re-rendering N clips).

## 🛑 The one rule

**If the TTS engine would read a word as something other than what a listener expects, rewrite it in the narration.** The most common fix is spelling an acronym out as individual letters separated by spaces — `adom-tsci` → `adom t s c i`. Edge-TTS and Piper both read letter-space-letter as individual letter names. No-space gets parsed as a single word and butchered.

Captions and on-screen text always use the real name (`adom-tsci`). Only the narration column gets phoneticized.

## The table

Source-of-truth data file: [`pronunciations.json`](pronunciations.json) (same dir). This table is rendered from that file; update the JSON and this section regenerates on skill install.

| Written in product / caption | Narration spelling (what the TTS sees) | Engines confirmed | Reason |
|---|---|---|---|
| `adom-tsci` | `adom t s c i` | edge-tts, piper | TTS reads `tsci` as "sci" / "ski"; letter-by-letter is the intended reading |
| `tscircuit` | `t s circuit` | edge-tts | "tscircuit" sometimes OK but inconsistent across voices; forcing letters is safe |
| `JLCPCB` | `J L C P C B` | edge-tts, azure | Acronym, always spell out |
| `PCB` | `P C B` | all | Acronym |
| `SMT` / `SMD` | `S M T` / `S M D` | all | Acronym |
| `KiCad` | `kai cad` | edge-tts | Some voices say "kee cad"; `kai cad` is the community pronunciation |
| `MPN` | `M P N` | all | Acronym |
| `BOM` | `B O M` or `bill of materials` | all | "bom" gets read as the word "bomb" by some voices; spelling out is safer |
| `FPGA` | `F P G A` | all | Acronym |
| `I²C` / `I2C` | `I squared C` or `I two C` | all | Superscript/digit both mangled |
| `SPI` | `S P I` | all | Acronym |
| `UART` | `you art` | all | Engines try to read as word (rhymes with "heart") which is wrong |
| `MCU` | `M C U` | all | Acronym |
| `GPIO` | `G P I O` | all | Acronym |
| Version numbers like `1.3.7` | `one point three point seven` | all | `1.3.7` gets read as "one three seven" or mangled decimals; always spell |
| Dates like `2026-04-23` | `April twenty third` (or "April twenty third twenty twenty six") | all | Hyphenated date gets mangled |
| Slugs / UUIDs | don't narrate them; reference as "the container" / "the workspace" | — | Never put a slug/UUID in a TTS stream |

## How to add an entry

Anyone can propose a new entry — the table lives in gallia and deploys via `gallia/install.mjs`. Contribution flow:

1. **Verify the problem.** Render the current pronunciation to confirm it's actually wrong:

    ```bash
    edge-tts --voice en-US-AndrewMultilingualNeural \
      --text "this is <your term> version one" \
      --write-media /tmp/_tts-before.mp3
    # Listen: does the TTS say the term the way a human would?
    ```

2. **Find a spelling that fixes it.** Common patterns:
    - Acronym → individual letters with spaces: `JLCPCB` → `J L C P C B`
    - Word with silent/weird letters → phonetic: `KiCad` → `kai cad`
    - Number pattern → words: `1.3.7` → `one point three point seven`
    - Hyphenated brand name → space-or-phonetic: `adom-tsci` → `adom t s c i`

3. **Verify the fix.** Render with the new spelling:

    ```bash
    edge-tts --voice en-US-AndrewMultilingualNeural \
      --text "this is <your phonetic spelling> version one" \
      --write-media /tmp/_tts-after.mp3
    # Confirm it now reads correctly.
    ```

4. **Add to `pronunciations.json`.** One entry per term:

    ```json
    {
      "written": "JLCPCB",
      "narration": "J L C P C B",
      "engines_confirmed": ["edge-tts", "azure"],
      "reason": "Acronym; reads as garbled single word",
      "added_by": "john",
      "added_date": "2026-04-23"
    }
    ```

5. **Commit + publish.** `git commit` the change; if you want wiki users to pick up the new entry, re-run `adom-wiki publish` on this skill's page (see `## Publishing` below).

## Engines we've tested against

- `edge-tts` (Microsoft Edge neural) — default on the platform, invoked as `edge-tts --voice <voice> --text <text> --write-media <file>`. Voice table:
    - `en-US-AndrewMultilingualNeural` — default for Adom demos (clear, neutral-male)
    - `en-US-AriaNeural` — polished female
    - `en-US-GuyNeural` — warm neutral-male
- `piper` — local offline TTS, fires on the platform when no network.
- `azure-tts` — via Microsoft Azure Speech SDK.
- `eleven-labs` — premium quality, used for hero demos.

Each engine has slightly different parsing rules. If a spelling works in one but not another, add a per-engine note in the `pronunciations.json` entry and pick the most permissive spelling (or provide per-engine overrides).

## Integration — skills that consult this table

The following skills (should) look up terms here before drafting narration. If you spot drift between their embedded tables and this one, this file wins:

- `demo-recording` — Step 2 (write the demo script with narration column)
- `video-post` — storyboard review phase, narration validation
- `voiceover` (when that flow ships) — pre-render check
- Any custom narration script a user writes

## One-liner verify in your own narration

Before rendering a whole 13-clip tour, pipe each scene's narration column through a verifier:

```bash
for narration in "$(jq -r '.scenes[].narration' demo/<name>-demo-script.json)"; do
  tmp=$(mktemp --suffix=.mp3)
  edge-tts --voice en-US-AndrewMultilingualNeural --text "$narration" --write-media "$tmp"
  echo "play: $tmp"
  # Listen or pipe to ffprobe for duration check
done
```

Cheap pre-flight; catches pronunciation and duration issues before you burn render time.

## Publishing to wiki

This skill is published to the Adom Wiki so every container gets it on install. Publish with:

```bash
adom-wiki publish skills/tts-pronunciation \
  --file /home/adom/project/gallia/skills/tts-pronunciation/SKILL.md \
  --data-file /home/adom/project/gallia/skills/tts-pronunciation/pronunciations.json \
  --caption "Canonical TTS pronunciation table — add your term if the engine gets it wrong"
```

Users pick up the latest version via `adom-cli skills install tts-pronunciation` or `gallia/install.mjs` on next sync.

Sub-Skills
?
What are Sub-Skills?

Sub-skills are community-contributed AI skill extensions for this component. They teach AI assistants about specific tools, configurators, or workflows.

Examples:

  • A manufacturer’s configuration tool for a motor controller
  • A community-written design guide for an amplifier circuit
  • An automated test/validation script for a sensor module

How to add one: Click Add Sub-Skill, provide the URL to your skill and a brief description. Submissions are reviewed by the Adom team before going live.

No sub-skills yet. Be the first to contribute one!

0 revisions · Updated 2026-04-23 13:18:24