--- 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`. |