Spaces:
Sleeping
Sleeping
| 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`. | | |