feat: add comprehensive voice reference with 50+ voice catalog#8
feat: add comprehensive voice reference with 50+ voice catalog#8SecurityQQ wants to merge 1 commit intomainfrom
Conversation
- 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
📝 Walkthroughwalkthroughdocumentation 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
estimated code review effort🎯 2 (simple) | ⏱️ ~10 minutes possibly related prs
poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
📝 Coding Plan
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. Comment |
There was a problem hiding this comment.
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
📒 Files selected for processing (7)
varg-ai/SKILL.mdvarg-ai/references/components.mdvarg-ai/references/gateway-api.mdvarg-ai/references/models.mdvarg-ai/references/recipes.mdvarg-ai/references/templates.mdvarg-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. |
There was a problem hiding this comment.
🧩 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.
| | 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 | | ||
|
|
There was a problem hiding this comment.
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.
- 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
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.mdA complete voice reference covering:
GET /v1/voiceswith search, filter, pagination params and response format;POST /v1/voices/syncVOICESdata objectUpdated Files
SKILL.mdmodels.mdcomponents.mdvoiceprop descriptions on Speech() and TalkingHeadgateway-api.mdrecipes.mdtemplates.mdRelated PRs