LOCAL • PRIVATE • FREE

TTS BLENDER

VoiceBlend TUI

A cyberpunk terminal for blending multiple kokoro-onnx voices into one unique audio file. Text → Speech. Locally. Beautifully.

Python + Textual
ONNX • kokoro
Voice Blending
100% Local & Offline
tts-blender • main.py

> Loading kokoro-onnx models...

Voice 1: emma

Voice 2: jace

Blend ratio: 65/35

Generating unique voice...

> data/blended_narration.wav [saved]

Terminal-Powered Voice Alchemy

Load any text file. Choose 1 or 2 voices. Dial in the perfect blend ratio. Get a completely unique AI voice in seconds — all running locally in a gorgeous Textual TUI.

FEATURES

Text File Input

Load any .txt file. Full validation + status feedback directly in the TUI.

1 or 2 Voice Mode

Dynamic UI — select from multiple kokoro-onnx voices. Voice 2 panel appears only when needed.

Precision Blend Ratios

50/50, 60/40, 70/30, 80/20, 90/10 — create entirely new hybrid voices.

Live Message Log

Timestamped, color-coded log with info, success, warnings, and errors.

Smart Output Control

Custom filename, automatic overwrite warnings, saved to data/.

Fully Local & Private

No cloud. No API keys. Everything runs on your machine using ONNX Runtime.

What is ONNX?

ONNX (Open Neural Network Exchange) is an open standard for representing machine learning models.

It allows models trained in one framework (PyTorch, TensorFlow, etc.) to run efficiently in another — in this case, through ONNX Runtime.

TTS Blender uses kokoro-onnx, a blazing-fast 82M parameter TTS model optimized for local inference. This gives you near real-time, high-quality, multi-voice speech synthesis completely offline.

Result: You get production-grade voice blending in a terminal interface.

> ONNX model loaded: kokoro-v1.0.onnx
> Voices database: voices-v1.0.bin
> Inference engine ready — blending voices in real time
> Zero network calls • Full privacy • Maximum speed

QUICK START — TERMINAL FLOW

$ python3.12 -m venv venv
          $ source venv/bin/activate # Windows: venv\Scripts\activate
          $ pip install -r requirements.txt
          $ pip install -e .
          $ python main.py

          [TTS Blender launched]

          → Input File: ./data/script.txt
          → Voice Mode: 2 Voices
          → Voice 1: emma
          → Voice 2: jace
          → Blend Ratio: 65/35
          → Output: cyberpunk_narration.wav

          Generating blended audio...
          [SUCCESS] Saved to data/cyberpunk_narration.wav

One command to rule them all: ./run.sh

What the TUI Looks Like

Voice Selection Panel
1 Voice Mode • emma
2 Voices Mode • emma + jace
Blend 65/35

Voice + Blend Controls

Message Log + Progress
[22:41] File validated
[22:41] Starting