VocalCore is a production-quality, open-source local Text-to-Speech (TTS) desktop studio. It is designed to run completely offline on your own hardware, featuring Nvidia/AMD/Intel hardware auto-detection, zero-shot voice cloning, real-time WebSocket audio streaming, training dataset compilers, and model fine-tuning dashboards.
To launch the application:
- Double-click
run.batat the root of the project folder. - The launcher automatically:
- Sets up a local virtual environment (
venv/). - Detects your graphics card controller type (NVIDIA, AMD, or Intel).
- Installs PyTorch optimized for your hardware (CUDA for NVIDIA, DirectML for AMD/Intel, or CPU fallback).
- Installs all dependencies and builds the React frontend.
- Starts the FastAPI server and launches the web interface at
http://127.0.0.1:7860.
- Sets up a local virtual environment (
VocalCore includes native configurations to maximize performance across multi-vendor graphics cards and processor profiles on Windows:
- GPU Autodetection & DirectML Support:
- AMD and Intel Arc graphics cards are supported via DirectML (
torch-directml). Model tensors are loaded on the DirectML device (privateuseone:0) for hardware-accelerated generation.
- AMD and Intel Arc graphics cards are supported via DirectML (
- VRAM Safety Switches:
- High-end models require substantial memory. The Model Manager automatically unloads the active model from GPU memory and executes PyTorch cache eviction (
torch.cuda.empty_cache()/ Python garbage collection) before loading a new model to prevent Out-of-Memory (OOM) failures. - Users with lower VRAM (e.g. 6GB laptop GPUs) can run lighter models like Qwen3-TTS or Pocket-TTS on the GPU, and toggle CPU Mode in Settings for large models.
- High-end models require substantial memory. The Model Manager automatically unloads the active model from GPU memory and executes PyTorch cache eviction (
- Half-Precision Acceleration (AMP):
- Supports BF16 or FP16 precision maps out of the box to cut memory footprint in half and speed up inference.
- Sub-second WebSocket Streaming:
- Audio chunks are processed in float buffers and transmitted immediately as binary PCM arrays over WebSockets, enabling playback latency of less than 150ms.
VocalCore scans local directories for model weights. To avoid automatic HuggingFace downloads and run completely offline, place your weights here:
| Model | HuggingFace Repository ID | Local Target Directory |
|---|---|---|
| Qwen3-TTS-12Hz (1.7B) | Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice |
models/qwen/ |
| Higgs-TTS (3.4B) | bosonai/higgs-tts-3-4b |
models/higgs/ |
| Pocket-TTS (100M) | kyutai/pocket-tts |
models/pocket/ |
| MOSS-TTS v1.5 (8B) | OpenMOSS-Team/MOSS-TTS-v1.5 |
models/moss/ |
Inside each folder (e.g. models/qwen/), place:
config.jsonandgeneration_config.jsonmodel.safetensorsorpytorch_model.bin/ weights files- Tokenizers (
tokenizer.json,vocab.txt, etc.)
Once the files are present, VocalCore flags them as "Ready" in the web dashboard for instant loading.
run.bat/install.bat/update.bat: Desktop environment loader and compiler scriptsrequirements.txt: Python libraries listbackend/: FastAPI routes, streaming hooks, and model adapter loadersfrontend/: Vite, React, Lucide Icons, and Canvas audio waveformsvoices/: Cloned speaker profiles (JSON metadata + Wav reference audios)datasets/: Compiled speech dataset corpora for fine-tuningoutputs/: Generated audio WAVs/MP3s historymodels/: Offline weights directories
- Zero-Shot Voice Cloning: Create voice profiles by uploading a short audio file (minimum 3 seconds, ideal 30-120 seconds).
- Dataset Manager: Slice long recordings on silence boundaries, filter clips based on noise floor SNRs, and transcribe/annotate clips inside the UI.
- Voice Training: Fine-tune custom voice models with play/pause execution loops, real-time loss tracking, ETA countdowns, and TensorBoard loss graphs.
- History Page: Replay, download, filter, or delete previous generations.
- Performance Dashboard: Real-time monitor of CPU, RAM, and VRAM utilization.