A portable speech studio for Windows, powered by its own WSL2 Linux distro. Generate speech, manage engines and voices, create subtitles, and edit audio in a desktop window. The same features are available through a Windows CLI and authenticated HTTP API.
This TTS distro originated as a child of Portable Linux in a Box, also by aivrar. That project is the source of its portable Linux app foundation. The public V2 runtime is rebuilt from a clean Ubuntu base with the TTS dependencies bundled.
GitHub wiki · Illustrated quickstart · Local manual · Portable releases
19 speech engines plus Whisper: Kokoro, XTTS v2, F5-TTS, Chatterbox, Fish Speech, Bark, Dia, Higgs Audio, Qwen Omni, VibeVoice, SpeechT5, Parler-TTS, OuteTTS, VITS, Edge TTS, Voxtral, VoxCPM2, Sesame CSM, and Orpheus; Whisper provides transcription and subtitle alignment.
Use built-in voices, reference-based voice cloning where supported, multilingual speech, SRT captions, saved projects, waveform editing, and audio effects. The engine catalog explains each engine's features and requirements. Kokoro ships installed for offline use; the other engines install when selected. Availability in the catalog does not mean every engine has been inference-tested in this release.
- Enable current WSL2 on Windows 10/11 x64. Run
wsl --statusto check it. If needed, install WSL withwsl --install --no-distributionin an administrator terminal and restart when requested. Existing older installations may needwsl --updatefor in-place VHD registration. - Download Download-TTSServer.exe and open it. Choose a writable local folder with at least 35 GiB free. It downloads the complete release, checks SHA256 hashes, extracts the app, and launches it. The download is about 6.3 GiB; allow time for downloading and first setup.
- Your app is in Portable-TTS-Server-V2 inside the chosen folder. Keep this entire folder together. Spaces in paths are supported; network shares are not. Download files stay in
.tts-download; remove that cache after verifying the app works to reclaim space. - For later starts, double-click TTSServer.exe in the app folder. A progress window explains startup. First launch imports the included Linux image into
wsl/ext4.vhdx; later starts reuse that disk.Start-TTSServer.cmdremains available for terminal use. - In Server, select Kokoro 82M, choose CPU or an available GPU, and spawn a worker. In Testing, choose a built-in voice, enter text, and generate.
For a manual/offline transfer, download all ZIP parts, portable-manifest.json, and both extraction helpers into one folder, then run Extract-Portable-TTS.cmd. Or run Extract-Portable-TTS.cmd -Download to fetch missing parts. Existing app folders are never overwritten; select another destination for a fresh copy. The EXEs are unsigned, so Windows may display an unknown-publisher prompt. WSL installation can require administrator approval and a restart; the downloader does not change Windows features.
Kokoro is included and ready offline. Its weights, English pronunciation model, Japanese dictionary, and Chinese pronunciation dependencies are bundled. Other engines install from Setup into this portable copy when chosen. Those installations need internet access; gated models require your Hugging Face access. Edge always needs internet. Whisper transcription/subtitle weights are optional downloads.
The release includes Windows Python for tts.cmd, a self-contained native launcher, WebView2 Fixed Version, Linux Python, PyTorch/CUDA user-space libraries, FFmpeg, audio tools, and Kokoro. No separate Python, .NET, browser runtime, or CUDA toolkit installation is needed. Windows, WSL2, virtualization support, and an optional NVIDIA GPU driver are host requirements. CPU Kokoro works without an NVIDIA GPU.
Run Stop-TTSServer.cmd before moving, copying, or backing up the app. Once it confirms the disk is released, copy the entire folder, including wsl/ext4.vhdx, voices, projects, and settings. If WSL keeps the disk locked, use .\Copy-TTSServer.ps1 -Destination 'D:\Portable-TTS-Server-V2' to transfer this copy without stopping other WSL apps. Start at the new local path; the wrapper imports or registers that folder's disk and refreshes paths.
WSL keeps a registration in the current Windows account. Moving the stopped folder may leave an unused registration for the previous path. The launcher never unregisters another distro or overwrites another copy. See portability for details and space requirements.
The repository contains application source, the C bootstrap and C# desktop host projects, icons, tests, and the illustrated manual. Large runtimes and personal data are excluded from Git. GitHub's automatic “Source code” ZIP is not the runnable portable release.
Maintainers build from a clean Ubuntu image using the build instructions. The public image is built separately from the private development distro. Runtime downloads and Kokoro weights are pinned in runtime-sources.json; inventories and third-party notices accompany the release.
Backend tests run inside a configured TTS distro using its Linux dependencies:
PYTHONPATH=server:. /opt/tts_server/venv/bin/python3 -m pytest server -qInstall pytest into a separate test dependency directory if unavailable. Browser logic tests run from the repository root:
node --test server/test_browser_regressions.cjsThe portable build also performs real CPU synthesis with network connections blocked for all nine Kokoro language groups. See the repair ledger and repository audit for test evidence and limitations.
- CLI and HTTP API
- Architecture and storage
- MIT license for this application; third-party notices for bundled components
The older aivrar/portable-tts-server repository remains separate from this V2 Windows/WSL package.
