Repository structure
Directoryvt/ the server: one module per responsibility (details in Architecture)
- app.py entry point: arguments, model loading and HTTP routes
- httpws.py own HTTP and WebSocket server on asyncio
- session.py one session per tab: WebSocket protocol and permissions
- processor.py processing queue and downloads
- vad.py energy-based voice detector
- asr.py Whisper on CTranslate2
- streaming.py streaming recognition with local agreement
- translate.py translators on CTranslate2
- textproc.py text before and after translating
- glossary.py each library’s glossary
- speakers.py diarization and voice references
- dub.py per-sentence dubbing
- audiofx.py own audio code in numpy (WSOLA, resampling, loudness)
- tts.py voice process client
- tts_worker.py the voice process
- ipc.py frames over pipes between processes
- enhance_df.py reference cleanup with DeepFilterNet
- resources.py idle mode and GPU turns (and recent timings of each computation)
- hardware.py what machine this is: GPU, VRAM, RAM, CPU (and a lab’s machine with TRANSLAY_EMULATE)
- profiles.py performance profiles with the speeds measured in the labs
- perf.py Preferences › Rendimiento: profile, limits, warnings and restart
- limits.py RAM and CPU limits with a Windows Job Object
- trash.py 30-day trash (deleted videos and libraries)
- jsonio.py JSON that never ends up half-written (temp file + replace, .bak copy)
- gpu.py CUDA DLLs on Windows and the CTranslate2 cache
- store.py each video’s transcript
- library.py videos and collections
- vaults.py several libraries, each in its own folder
- prefs.py preferences schema
- youtube.py downloads with yt-dlp
- cookies.py YouTube session
- exporter.py exports with ffmpeg
- auth.py access and API keys
- api.py HTTP API v1 and file guard
- events.py event catalog
- webhooks.py sending events to other apps
- repair_refs.py repair of old voice references
- __init__.py version (
__version__)
Directorydesktop/ the desktop app for Windows (Tauri 2; see Desktop app)
Directorysrc-tauri/ the Rust part: window, environment installation (
runtime.rs), hidden server (server.rs), tray- …
Directoryui/ start screens: preparing, opening and error (uses the font, colors and buttons from
web/)- …
Directorylocks/ pinned packages with their hashes:
server.txt(server) andvoice.txt(voice engine)- …
- tools.json tools bundled in the installer (uv, Python, ffmpeg, Node.js) with their SHA-256
- scripts/prepare.mjs copies what is shared from
web/and downloads and verifies the tools before building
Directoryweb/ the interface, no framework and no build step (details in Interface)
- index.html the single page
- api.html API reference served by the app
Directorycss/ tokens, base, components, shell, views and patterns
- …
Directoryjs/ components, connection, views, menus and routes (
desktop.js: the title bar in the desktop app)- …
Directoryfonts/ Plus Jakarta Sans (OFL), served by Translay itself
- …
Directorytools/ measurement and testing tools, no browser (see Testing and evaluation)
Directorylab/ hardware labs: VRAM ballast, benchmark and per-machine runs
- …
- dub_file.py dubs a whole video and exports
<name>.es.mp4 - eval_tts.py compares voice engines
- eval_pipeline.py measures recognition and diarization
- eval_translation.py compares translators
- transcribe_file.py simulates live playback
- make_dialogue.py generates test dialogues with Kokoro and noise
- make_sample.ps1 generates a test video with the Windows voices
Directorysamples/ scripts of the test videos
- …
Directorytests/
- test_core.py tests without a GPU
Directorydocs/ this documentation (Astro + Starlight; see Documentation)
- astro.config.mjs site and sidebar configuration
Directoryscripts/
- gen_reference.py reads
vt/and generates the reference tables - sync.mjs runs
gen_reference.pyand builds the changelog pages before building - check-links.mjs after building, checks every relative link and anchor in both languages
- gen_reference.py reads
Directorysrc/
Directorycontent/docs/ the pages in English;
es/the same in Spanish- …
- components/Diagram.astro draw.io-style diagrams (data in
src/diagrams.ts, shared by both languages) Directorydata/ JSON generated by
gen_reference.py- …
Directorydata/ everything the app stores; not in git (see Data on disk)
- …
Directorysamples/ test videos and their ground truth; not in git
- …
Directory.venvs/ one environment per voice engine (
omnivoice,chatterbox,voxcpm,kokoro); not in git- …
- run.py starts the server (
python run.py) - iniciar.bat the same with a double click on Windows; passes arguments to
run.py - requirements.txt server dependencies
- Dockerfile image with CUDA, the server and the voice engine (see Docker)
- docker-compose.yml service with GPU,
data/and the models volume - .env.example
.envtemplate with the owner password for Docker - .dockerignore what does not go into the image
- .gitignore what does not go into the repository
- README.md project overview in English (README.es.md in Spanish)
- CHANGELOG.md changes of each version in English (CHANGELOG.es.md in Spanish)