ArchiveAI-TTS / README.md
billingsmoore's picture
Add advanced voice setting controls (stability, similarity boost, style)
794b80f
|
Raw
History Blame Contribute Delete
3.5 kB
---
title: ArchiveAI TTS
emoji: πŸ”Š
colorFrom: blue
colorTo: indigo
sdk: docker
python_version: "3.11"
app_port: 7860
pinned: false
---
# ArchiveAI TTS
A Gradio app for generating interpreter audio via ElevenLabs. Its main purpose
is **Turn Review**: the human-editor adjustments step in the July Launch
content pipeline, where AI-drafted interpreter turns are checked, tweaked, and
approved before they go into the final video. It also has a **Quick
Synthesize** mode for ad-hoc synthesis of a full subtitle file or block of
text.
## Turn Review (production workflow)
1. Upload the chunk's `turns.json` (speaker-turn plan) and its translated VTT
(`*_en_pe.vtt`), or paste public Google Drive links to each and click
**Load from Drive links**.
2. Each turn appears as its own card β€” timestamp range, the pipeline's
rationale for placing the turn there, and an editable text box seeded with
the translated captions in that window.
3. Adjust **Model**, **Speed**, **Comma Pause**, and **Period Pause** as
needed (these apply to every turn you generate). Comma Pause sets the
medium-phrase tier; short phrases get half that pause and long clauses get
1.5x, matching the pipeline's validated pause scaling. The **Advanced
voice settings** accordion also exposes ElevenLabs' **Stability**,
**Similarity Boost**, and **Style** directly β€” the defaults there are the
production-validated values, and changing them is **not recommended**
unless you're deliberately A/B testing voice quality.
4. Click **Generate** on a turn to synthesize it β€” this calls ElevenLabs'
with-timestamps endpoint and splices real room-tone pauses (sampled from
the clip's own quiet audio) after commas and periods, the same
pause-insertion approach used in production.
5. Listen and download the result. Turns flagged **mantra-only** are pure
recitation with no English content and don't need interpreter audio β€”
generation is skipped for those.
This tab does not write back into the pipeline's output folders; download the
approved MP3s and place them manually.
## Quick Synthesize
Upload a full SRT/VTT/TXT file or paste text directly, adjust prose/mantra
speed, and synthesize the whole thing in one pass. No turn windowing, no pause
insertion β€” useful for quick listening tests, not for production turns.
## Glossary
Use the **Glossary** tab to teach the engine how to pronounce words it gets
wrong (Tibetan names, Sanskrit terms, etc). Enter a word and a plain-English
respelling β€” no IPA needed.
Example: `Garchen` β†’ `gar-chen`, `Dharmakaya` β†’ `Darmakaya`
Entries are stored in the `tts-glossary` HuggingFace dataset (see
`GLOSSARY_DATASET_REPO` below), so they persist across Space rebuilds and are
shared across everyone using the Space β€” unlike a per-instance local file. The
glossary starts seeded with the aspirated-digraph fixes already validated in
the July Launch content pipeline (e.g. `Dharmakaya` β†’ `Darmakaya`, `Phagmo` β†’
`Pagmo`); anyone can add to it or remove entries from the tab.
## Configuration (Space secrets / variables)
| Name | Required | Purpose |
|---|---|---|
| `ELEVENLABS_API_KEY` | Yes | ElevenLabs synthesis calls. |
| `HF_TOKEN` | Yes, to save/remove glossary entries | Write access to the `tts-glossary` dataset repo. Reads fall back to a local cache (or built-in defaults) without it. |
| `GLOSSARY_DATASET_REPO` | No | Overrides the glossary dataset repo id. Defaults to `GarchenArchive/tts-glossary`. |