Skip to content

feat: add comprehensive voice reference with 50+ voice catalog#8

Open
SecurityQQ wants to merge 1 commit intomainfrom
feature/voice-reference
Open

feat: add comprehensive voice reference with 50+ voice catalog#8
SecurityQQ wants to merge 1 commit intomainfrom
feature/voice-reference

Conversation

@SecurityQQ
Copy link
Copy Markdown
Contributor

Summary

Adds a dedicated voices.md reference and updates all existing skill files to document the new voice registry with voice_id passthrough support.

New: references/voices.md

A complete voice reference covering:

  • Full voice catalog — 22 premade + 25 professional voices with voice_id, gender, age, accent, and use-case recommendations in searchable tables
  • voice_id passthrough — documentation that any valid ElevenLabs voice_id (1000+ public voices) works directly
  • Classic voice aliases — mapping of friendly names (rachel, adam, etc.) to voice_ids with backward compat notes
  • Voice selection guide — quick recommendations by use case (narration, social media, characters, meditation, etc.)
  • API referenceGET /v1/voices with search, filter, pagination params and response format; POST /v1/voices/sync
  • VOICES global — documents the cloud render VOICES data object

Updated Files

File Change
SKILL.md Add voices.md to the load-on-demand references table
models.md Replace hardcoded 22-voice list with catalog link + voice_id example
components.md Update voice prop descriptions on Speech() and TalkingHead
gateway-api.md Expand POST /v1/speech with voice_id example, expand GET /v1/voices into full section
recipes.md Add voice_id comment in Speech + Music example
templates.md Add voice_id comment in Talking Head template

Related PRs

- Add references/voices.md: full voice catalog (22 premade + 25 professional),
  voice_id passthrough docs, selection guide by use case, GET /v1/voices API
  with search/filter/pagination, POST /v1/voices/sync, VOICES global docs
- Update models.md: replace hardcoded voice list with catalog link, add
  voice_id example in Speech usage
- Update components.md: voice prop now documents voice_id support
- Update gateway-api.md: expand POST /v1/speech with voice_id example,
  expand GET /v1/voices into full endpoint section with query params
- Update SKILL.md: add voices.md to references table
- Update recipes.md, templates.md: add voice_id comments in examples
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Mar 16, 2026

📝 Walkthrough

walkthrough

documentation updates across reference files to introduce elevenLabs voice_id support and voice catalog functionality. new comprehensive voices.md file documents voice selection methods, catalog details, and api endpoints. existing docs updated with voice_id examples and cross-references.

changes

cohort / file(s) summary
reference index
varg-ai/SKILL.md
added three new on-demand reference entries: voice selection (voices.md), debugging (common-errors.md), and full examples (templates.md).
component documentation
varg-ai/references/components.md
updated voice prop descriptions for speech and talkinghead components to clarify support for voice names or elevenLabs voice_id, with reference to voices.md catalog.
gateway api documentation
varg-ai/references/gateway-api.md
expanded voice-related documentation with example showing both voice name and voice_id usage. added new Voice Catalog section detailing get/post endpoints with filters (search, gender, accent, sort options). updated VOICES mapping description.
model usage documentation
varg-ai/references/models.md
added separate "by name" and "by voice_id" usage examples for speech model with inline comments. expanded voices intro to reference 50+ curated voices and voices.md catalog.
examples & templates
varg-ai/references/recipes.md, varg-ai/references/templates.md
minor inline comments clarifying that elevenLabs voice_id values can be used as alternatives.
voice catalog reference
varg-ai/references/voices.md
new comprehensive documentation covering quick start examples, full voice catalog with premade and professional voices, classic voice aliases, voice_id usage, selection guide, browse/search api, and cloud render mapping.

estimated code review effort

🎯 2 (simple) | ⏱️ ~10 minutes

possibly related prs

poem

🎤 voices now sing with clarity true,
aliases, ids, a hundred hues—
catalogs mapped and docs so bright,
choosing your sound just feels so right. ✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed the title directly summarizes the main change: a new comprehensive voice reference documentation with 50+ voice catalog support.
Description check ✅ Passed the description is well-related to the changeset, detailing the new voices.md file and updates to existing documentation files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feature/voice-reference
📝 Coding Plan
  • Generate coding plan for human review comments

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@varg-ai/references/voices.md`:
- Around line 31-87: The docs currently list 47 voices across the two tables
(the header rows "Name | voice_id | Gender | Age | Accent | Best for" and the
"Professional Voices" section), but elsewhere the PR claims "50+ curated
voices"; either update the promotional text to match the actual count (change
any "50+ curated voices" strings to "47 curated voices") or add the missing
voice entries to these tables so they total 50+ and ensure the tables and any
summary text (search for the literal "50+ curated voices") are consistent;
modify the entries in the two tables (including the Professional Voices block
and the main voices table) so the voice_ids and names align with the updated
count.
- Line 20: Update the documentation line that defines "An ElevenLabs voice_id"
to remove the hard-coded "20-char alphanumeric" constraint and instead state it
accepts any valid ElevenLabs voice_id (i.e., make the description for the
voice_id opaque and not length/format-specific); locate the phrase "**An
ElevenLabs voice_id**" / `voice_id` in voices.md and replace the restrictive
format text with wording like "any valid ElevenLabs voice_id" to avoid implying
an exact length or character set.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: a6647736-e84d-48ec-aaa5-12552c273959

📥 Commits

Reviewing files that changed from the base of the PR and between 32837ae and 5cbb77e.

📒 Files selected for processing (7)
  • varg-ai/SKILL.md
  • varg-ai/references/components.md
  • varg-ai/references/gateway-api.md
  • varg-ai/references/models.md
  • varg-ai/references/recipes.md
  • varg-ai/references/templates.md
  • varg-ai/references/voices.md


The `voice` parameter accepts:
- **A friendly name** — `"adam"`, `"rachel"`, `"sarah"` etc. Resolved to a voice_id automatically.
- **An ElevenLabs voice_id** — any 20-char alphanumeric string like `"pNInz6obpgDQGcFmaJgB"`. Passed through directly.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🌐 Web query:

what is the current official format/length guarantee (if any) for elevenlabs voice_id values in the voices api?

💡 Result:

ElevenLabs does not publish an official format or length guarantee for voice_id values. In the current Voices API reference, voice_id is specified only as a required string path parameter (“ID of the voice to be used”) and as a string field in responses—without regex/UUID constraints or min/max length. [1], [2]

In practice, the docs’ examples show IDs like 21m00Tcm4TlvDq8ikWAM (20 characters, mixed-case alphanumeric), but that appears to be an example rather than a contractual guarantee—so you should treat voice_id as an opaque string identifier. [1]

Sources: [1], [2]


voice_id format is too strictly defined

elevenlabs doesn't publish official format or length guarantees for voice_id values—they're opaque string identifiers. the doc's "20-char alphanumeric" claim is misleading since that's just what the examples happen to be. change to "any valid elevenlabs voice_id" without hard constraints. meow. 🐱

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@varg-ai/references/voices.md` at line 20, Update the documentation line that
defines "An ElevenLabs voice_id" to remove the hard-coded "20-char alphanumeric"
constraint and instead state it accepts any valid ElevenLabs voice_id (i.e.,
make the description for the voice_id opaque and not length/format-specific);
locate the phrase "**An ElevenLabs voice_id**" / `voice_id` in voices.md and
replace the restrictive format text with wording like "any valid ElevenLabs
voice_id" to avoid implying an exact length or character set.

Comment on lines +31 to +87
| Name | voice_id | Gender | Age | Accent | Best for |
|------|----------|--------|-----|--------|----------|
| Adam | `pNInz6obpgDQGcFmaJgB` | male | middle_aged | american | social media, narration |
| Alice | `Xb7hH8MSUJpSbSDYk0k2` | female | middle_aged | british | educational, explainers |
| Bella | `hpp4J3VqNfWAUOO0d1Us` | female | middle_aged | american | educational, professional |
| Bill | `pqHfZKP75CvOlQylNhV4` | male | old | american | ads, authoritative |
| Brian | `nPczCjzI2devNBz1zQrb` | male | middle_aged | american | social media, comforting |
| Callum | `N2lVS1w4EtoT3dr4eOWO` | male | middle_aged | american | characters, animation |
| Charlie | `IKne3meq5aSn9XLyUdCD` | male | young | australian | conversational, energetic |
| Chris | `iP95p4xoKVk53GoZ742B` | male | middle_aged | american | conversational |
| Daniel | `onwK4e9ZLuTAKqWW03F9` | male | middle_aged | british | news, educational |
| Eric | `cjVigY5qzO86Huf0OWal` | male | middle_aged | american | conversational, trustworthy |
| George | `JBFqnCBsd6RMkjVDRZzb` | male | middle_aged | british | storytelling, narration |
| Harry | `SOYHLrjzK2X1ezoPC6cr` | male | young | american | characters, animation |
| Jessica | `cgSgspJ2msm6clMCkdW9` | female | young | american | conversational, bright |
| Laura | `FGY2WhTYpPnrIDTdsKH5` | female | young | american | social media, quirky |
| Liam | `TX3LPaxmHKxFdv7VOQHJ` | male | young | american | social media, energetic |
| Lily | `pFZP5JQG7iQjIQuC4Bku` | female | middle_aged | british | educational, velvety |
| Matilda | `XrExE9yKIg1WjnnlVkGX` | female | middle_aged | american | educational, professional |
| Rachel | `21m00Tcm4TlvDq8ikWAM` | female | young | american | default, general purpose |
| River | `SAz9YHcvj6GT2YYXdXww` | neutral | middle_aged | american | conversational, relaxed |
| Roger | `CwhRBWXzGAHq8TQ4Fs17` | male | middle_aged | american | conversational, casual |
| Sarah | `EXAVITQu4vr4xnSDxMaL` | female | young | american | entertainment, confident |
| Will | `bIHbv24MWmeRgasZH58o` | male | young | american | conversational, optimistic |

### Professional Voices

Curated professional voices with distinctive characters.

| Name | voice_id | Gender | Age | Accent | Best for |
|------|----------|--------|-----|--------|----------|
| Adam (Brooding) | `IRHApOXLvnW57QJPQH2P` | male | middle_aged | american | characters, animation |
| Adeline | `5l5f8iK3YPeGga21rQIX` | female | middle_aged | american | narration, storytelling |
| Aja | `eVItLK1UvXctxuaRV2Oq` | female | young | american | villains, characters |
| Arabella | `aEO01A4wXwd1O8GPgGlF` | female | young | australian | conversational |
| Brittney (Meditation) | `pjcYQlDFKMbcOUp6F5GD` | female | young | american | meditation, ASMR |
| Brittney (Social) | `kPzsL2i3teMYv0FxEYQ6` | female | young | american | social media, fun |
| David (ASMR) | `UvFmc37lQcxsSts1KwSb` | male | middle_aged | american | ASMR, whisper |
| Declan Sage | `kqVT88a5QfII1HNAEPTJ` | male | middle_aged | american | narration, captivating |
| Edward | `goT3UYdM9bhm0n2lmKQx` | male | middle_aged | british | dark characters, sexy |
| El Abuelo Charlie | `Yb8JGzcZyW5YYzenhRCm` | male | old | latin american | Spanish narration |
| Ellen | `BIvP0GN1cAtSRTxNHnWS` | female | young | german | conversational (German) |
| Empress J | `MHPwHxLx0nmGIb5Jnbly` | female | old | american | narration, powerful |
| Hope | `tnSpp4vdxKPjI9w0GnoV` | female | young | american | social media, upbeat |
| Ivanna | `tQ4MEZFJOzsahSEEZtHK` | female | young | american | sensual, intimate |
| Jeanette | `RILOU7YmBhvwJGDGjNmP` | female | old | british | audiobooks, narration |
| Jerry B. | `NxGA8X3YhTrnf3TRQf6Q` | male | middle_aged | british | horror, thriller, villain |
| Juniper | `aMSt68OGf4xUZAnLpTU8` | female | middle_aged | american | conversational |
| Linda | `0mLOQqwA3kovxF1ID7z6` | female | old | canadian | gentle, storytime |
| Lindsey | `JAATlCsz6GCH2vUjFcLg` | female | middle_aged | american | professional, warm |
| Lulu Lollipop | `ocZQ262SsZb9RIxcQBOj` | female | young | american | kids content, bubbly |
| Natasha | `Atp5cNFg1Wj5gyKD7HWV` | female | middle_aged | american | meditation |
| Oxley | `2gPFXx8pN3Avh27Dw5Ma` | male | middle_aged | american | evil character |
| Sameno | `hMK7c1GPJmptCzI4bQIu` | female | young | standard | anime, soft voice |
| Serafina | `4tRn1lSkEn13EVTuqb0g` | female | young | american | flirty, characters |
| Torsten | `iCEMyUhOwgAy0egMANye` | male | young | - | narration, raspy |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

catalog size messaging is inconsistent

these two tables currently list 47 curated voices, but other docs in this pr say “50+ curated voices”. please align the count claim or add the missing entries so users don’t get conflicting guidance.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@varg-ai/references/voices.md` around lines 31 - 87, The docs currently list
47 voices across the two tables (the header rows "Name | voice_id | Gender | Age
| Accent | Best for" and the "Professional Voices" section), but elsewhere the
PR claims "50+ curated voices"; either update the promotional text to match the
actual count (change any "50+ curated voices" strings to "47 curated voices") or
add the missing voice entries to these tables so they total 50+ and ensure the
tables and any summary text (search for the literal "50+ curated voices") are
consistent; modify the entries in the two tables (including the Professional
Voices block and the main voices table) so the voice_ids and names align with
the updated count.

SecurityQQ added a commit that referenced this pull request Mar 26, 2026
- Add 'API key hygiene' as Critical Rule #8: never write raw key values
  into bash commands, always use $VARG_API_KEY env var reference
- Option A (existing key): instruct user to run export themselves
  instead of pasting key to the agent
- Option B (OTP): capture verify-otp response into $VARG_AUTH variable,
  immediately export VARG_API_KEY from it via grep/cut
- Save credentials: use $VARG_API_KEY variable reference instead of
  THE_KEY placeholder that agents substitute with the raw value
- Stripe checkout: extract access_token into $VARG_ACCESS_TOKEN from
  the captured $VARG_AUTH response
- Bump version to 2.0.4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant