Skip to content

About

OmniVoice zero-shot multilingual TTS (600+ languages) with voice cloning and voice design. Launcher scripts live in the repo root; application code is under app/.

Resources

Stars

6 stars

Watchers

0 watching

Forks

Latest commit

 

History

34 Commits

Folders and files

Repository files navigation

OmniVoice (Pinokio)

OmniVoice zero-shot multilingual TTS (600+ languages) with voice cloning and voice design. Launcher scripts live in the repo root; application code is under app/.

What it does

  • Installs PyTorch via torch.js (per platform), then Python deps from app/requirements.txt (including omnivoice).
  • Validated against omnivoice>=0.1.3,<0.2, gradio>=5.0,<7 and transformers>=5.3,<6. These pins live in app/requirements.txt — bump them there and re-run Install or Update when upgrading.
  • Starts the Gradio UI from app/app.py (same flow as the Hugging Face Space).
  • Uses one Pinokio virtual environment: env/ at the project root (not under app/). If you see both env/ and app/env/, remove app/env/ and rely on Install so PyTorch and packages live in the root env/ only.

Using in Pinokio

  1. Install — creates env/, runs torch.js (platform-specific PyTorch), then uv pip install -r app/requirements.txt.
  2. Start — from the project root runs python app/app.py with OMNIVOICE_PORT={{port}} (next free port). Gradio binds to 127.0.0.1 by default; see environment variables below.
  3. Update — git pull (if this folder is a git repo), then uv pip install -U -r app/requirements.txt.
  4. Reset — removes env/ for a clean reinstall.
  5. Save Disk Space — link.js deduplicates venv library files.

Environment variables (app/app.py)

Variable Purpose
OMNIVOICE_MODEL Hugging Face repo or checkpoint (default k2-fsa/OmniVoice).
OMNIVOICE_DEVICE Force cuda, mps, directml, or cpu (default: auto cuda → mps → directml → cpu). Unknown or unavailable values fall back to auto-detection with a warning.
OMNIVOICE_LOAD_ASR 0 / false to skip Whisper ASR (less VRAM; supply reference text for clone).
OMNIVOICE_HOST Gradio server_name (default 127.0.0.1). Use 0.0.0.0 to listen on all interfaces.
OMNIVOICE_PORT, PORT, GRADIO_SERVER_PORT Gradio port, 1-65535 (Pinokio sets OMNIVOICE_PORT). Unparseable or out-of-range values are ignored with a warning and Gradio picks the port.

Hugging Face downloads (first run)

The first Start downloads checkpoints from the Hub (several GB). You may see:

  • Warning: You are sending unauthenticated requests — set a Hugging Face token as HF_TOKEN in Pinokio (environment / secrets) or in your user environment so Hub rate limits are higher and downloads are faster.
  • Slow transfer — this launcher sets HF_XET_HIGH_PERFORMANCE=1 in start.js (Xet high-performance mode; hf_transfer / HF_HUB_ENABLE_HF_TRANSFER are no longer used by huggingface_hub 1.x).
  • Mirror (e.g. region / connectivity) — optional: HF_ENDPOINT (see OmniVoice README for hf-mirror and similar).

Device (CPU vs GPU)

Logs like Loading model ... to cpu mean PyTorch selected CPU (no usable CUDA/MPS/DirectML, or CPU-only PyTorch). For NVIDIA acceleration, install with Install so torch.js installs the CUDA build, and ensure a recent GPU driver. Forcing OMNIVOICE_DEVICE=cuda (or mps) only takes effect when that backend is actually available; otherwise the app warns and falls back to auto-detection rather than failing to load. On Windows + AMD, torch.js installs torch-directml and the app auto-detects it (or force OMNIVOICE_DEVICE=directml).

Programmatic access

After Start, open the URL from Pinokio (“Open Web UI”) or the logs. The server is http://127.0.0.1:<port> by default.

cURL

curl -sS "http://127.0.0.1:PORT/"

Replace PORT with the port shown in Pinokio.

Python (Gradio client)

Use the Gradio Python client against http://127.0.0.1:PORT (same port as in the launcher).

JavaScript

Use the Gradio JavaScript client (@gradio/client) with the same base URL.

Project layout

project-root/
├── app/
│   ├── app.py
│   └── requirements.txt
├── install.js, start.js, update.js, reset.js, link.js, torch.js
├── pinokio.js, pinokio.json
└── README.md

Citation

OmniVoice: arXiv:2604.00688, GitHub.

About

OmniVoice zero-shot multilingual TTS (600+ languages) with voice cloning and voice design. Launcher scripts live in the repo root; application code is under app/.

Resources

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages