In this article
tts-voiceover
| Field | Value |
|---|---|
| Kind | skill |
| Source | .github/skills/experimental/tts-voiceover |
| Invocation | Invoked directly as /tts-voiceover, or loaded on demand by referencing agents |
| Interactive | No |
What it does
Text-to-speech voice-over generation from YAML speaker notes using Azure AI Speech neural voices with SSML pronunciation control
When to use it
Use this skill to produce per-slide WAV narration from slide content YAML's
speaker_notes, with SSML aliases for technical terms. Choose dry-run to inspect
SSML without Azure credentials or audio generation. Live synthesis requires
Python 3.11+, uv, an Azure Speech resource, authentication, and an approved region.
Speaker notes are transmitted to the configured SPEECH_REGION. Do not send
confidential or regulated narration, and keep authentication values out of chat.
Use demo-video to assemble audio with visuals after narration is ready.
Example usage
Ask: /tts-voiceover Dry-run the synthetic speaker notes in content/ using content/acronyms.yaml. Inspect SSML only; do not synthesize audio. Provide slide
directories such as slide-001/content.yaml with nonempty speaker_notes and a
lexicon mapping CI/CD to a spoken alias. Expect SSML with the intended voice,
rate, and substitutions. Success at this stage is correct template output, not
a generated WAV or verified pronunciation.
After region and authentication are configured separately, an authorized synthesis
request can produce matching slide-NNN.wav files. Listen for pronunciation and
pauses; --collapse-newlines is useful when block-scalar wrapping should not become
spoken pauses. Use demo-video for synchronized visuals and audio, or
hve-demo-material for the HTML/frame/MP4/caption workflow. Presentation-file
embedding is retired; existing user presentations are not modified or converted.