Instructions to use ThowiLabs/OVLC with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use ThowiLabs/OVLC with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf ThowiLabs/OVLC:Q8_0 # Run inference directly in the terminal: llama cli -hf ThowiLabs/OVLC:Q8_0
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf ThowiLabs/OVLC:Q8_0 # Run inference directly in the terminal: llama cli -hf ThowiLabs/OVLC:Q8_0
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf ThowiLabs/OVLC:Q8_0 # Run inference directly in the terminal: ./llama-cli -hf ThowiLabs/OVLC:Q8_0
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf ThowiLabs/OVLC:Q8_0 # Run inference directly in the terminal: ./build/bin/llama-cli -hf ThowiLabs/OVLC:Q8_0
Use Docker
docker model run hf.co/ThowiLabs/OVLC:Q8_0
- LM Studio
- Jan
- Ollama
How to use ThowiLabs/OVLC with Ollama:
ollama run hf.co/ThowiLabs/OVLC:Q8_0
- Unsloth Desktop
- Docker Model Runner
How to use ThowiLabs/OVLC with Docker Model Runner:
docker model run hf.co/ThowiLabs/OVLC:Q8_0
- Lemonade
How to use ThowiLabs/OVLC with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull ThowiLabs/OVLC:Q8_0
Run and chat with the model
lemonade run user.OVLC-Q8_0
List all available models
lemonade list
- Atomic Chat
OVLC — OmniVoice Lab CUDA · Q8 / Q4 + Whisper Large V3
Complete native CUDA GGUF inference bundle: OmniVoice.cpp plus the paired Q8_0 and Q4_K_M model/codec weights, Whisper.cpp CUDA runtime and two quantized Whisper models.
Use the interactive Kaggle/Colab HF_Quickstart.ipynb to download and run. The notebook uses /kaggle/working/OVLC in Kaggle and /content/OVLC in Colab, and never mounts Google Drive. The models are downloaded together with the C++ binaries, so no model conversion or C++ build is required on supported Linux CUDA instances.
pip install -r requirements.txt
python launch.py
In Gradio, select Q8 or Q4, or choose Compare both to hear the difference with identical reference audio, text, seed and inference steps. Automatic transcript uses Whisper (Turbo Q8 or Large V3 Q5).
For Colab, prefer NVIDIA GPU runtimes with compatible CUDA 12 runtime libraries and driver. The shipped CUDA kernels are built targeting Turing SM 7.5 (Tesla T4); other GPU architectures require compatibility validation and may need a separate binary.
Important: the OmniVoice weights have an Attribution–NonCommercial license. Retain attribution and use them non-commercially. See NOTICES.md for attributions.
Reuse uploaded voices with curl
In Gradio, upload your reference, enter or automatically transcribe its speech,
then click Guardar referencia para API to receive a persistent voice_id
and voice-specific secret key. The key permits curl synthesis with only that
voice; save it in a private place.
The saved WAV and transcript remain in the local runtime's private data directory,
outside this Hugging Face repository. They survive server restarts on persistent
runtime disks but are not retained when a Kaggle/Colab VM is reset.
REST endpoints on the same Gradio hostname require an API token:
GET /api/voices: list saved voice IDs and names.POST /api/voices: multipartaudio=@sample.wavand optionaltranscript,name,language.POST /api/tts: JSON{"voice_id":"v_...","text":"Hello","model":"Q8_0","steps":32,"seed":42}. Returnsaudio/wav, withX-RVQ-Cache: HIT|MISS.
Set API_BASE to the Gradio tunnel and VOICE_KEY to the secret
shown when you save a reference from Gradio. Use the per-voice key for
POST /api/tts, and the separate runtime-admin api_token only for listing
or uploading references via REST. Never publish either token.
curl -f -X POST "$API_BASE/api/tts" \
-H "Authorization: Bearer $VOICE_KEY" \
-H "Content-Type: application/json" \
-d '{"voice_id":"v_YOUR_ID","text":"Hola","model":"Q8_0","steps":32,"seed":42}' \
-o resultado.wav
OmniVoice C++ accepts --ref-cache-dir <dir> and writes reusable RVQ files,
validated with SHA-256. The cache key includes the complete source audio and
the codec identity; Gradio keeps it outside the downloadable model files.
Full C++ source code included
- source/omnivoice.cpp-source.tar.gz: complete modified OmniVoice.cpp checkout, with GGML submodule, original MIT license and native persistent RVQ caching.
- source/whisper.cpp-source.tar.gz: complete whisper.cpp checkout, including GGML, source, examples, tests and MIT license.
- omnivoice-ref-cache.patch: patch for the original OmniVoice.cpp baseline adding persistent SHA-256 checked RVQ caching.
Precompiled Linux x86-64 CUDA executables and their shared libraries are under runtime/. This means supported Kaggle/Colab NVIDIA GPUs do not need to compile the engines. Source archives are for audit, rebuilding and extending the implementation.
To extract:
tar -xzf source/omnivoice.cpp-source.tar.gz
tar -xzf source/whisper.cpp-source.tar.gz
Models include OmniVoice Q8_0/Q4_K_M plus both codec quantizations; Whisper large-v3-turbo Q8_0 and large-v3 Q5_0. Total compressed source download overhead is around 15 MB.
Original source revisions: OmniVoice.cpp 1a468d8b9d65b3544ca1004d2d7c05dfc65d1f3e (plus native cache patch); whisper.cpp 231638a0717b7822784297e5980965ffcec05810.
The quickstart notebook defaults to public repository ThowiLabs/OVLC, uses /kaggle/working/OVLC or /content/OVLC, and never mounts Google Drive. The launcher attempts to create a temporary Gradio share link and prints it in the notebook.
Execution: CUDA 12-compatible NVIDIA drivers/libraries, ffmpeg and Linux x86-64 are required. The native binaries were tested on Tesla T4 GPUs (compute capability 7.5); other GPUs should be validated before assuming compatibility.
Security: this is a public model/source repository; user reference audio, transcripts, API access tokens and runtime RVQ caches are NOT distributed here. Saving a reference for REST API requires its separately issued voice key. Voice cloning must be authorized.
Generar datasets desde Gradio
La pestaña Generar dataset admite un archivo CSV UTF-8 con líneas
1.wav|Texto que pronunciará la voz clonada (separador |, sin encabezado).
Sube un WAV de referencia y su transcripción (o deja el cuadro vacío para que
Whisper la realice una sola vez), elige Q8_0 o Q4_K_M, los pasos, la semilla
y el número de GPU. En Kaggle con dos Tesla T4 se ejecutan hasta dos
inferencias simultáneas, una por GPU, reutilizando los códigos de referencia
RVQ de OmniVoice.cpp. Las inferencias normales de Gradio comparten los bloqueos
de GPU para evitar sobrecargar la misma tarjeta.
El trabajo tiene un ID persistente ds_...: lo puedes pausar después del WAV
activo, reanudar y recuperar tras recargar o reiniciar Gradio. Se verifican
todos los WAV mediante cabecera RIFF, formato PCM, longitud real y SHA-256,
incluido el último segmento. Si un archivo está dañado se elimina y
regenera únicamente ese segmento. El ZIP incluye metadata.csv,
dataset_info.json y la carpeta wavs/ con todos los archivos válidos.
Al finalizar puedes descargar un ZIP verificado o introducir temporalmente
un token HF con permisos de escritura para crear/subir el ZIP a un
repositorio HF de tipo dataset, privado por defecto. El token no se guarda
en el disco ni se incluye en los paquetes OVLC. Las salidas de cada trabajo
se almacenan fuera del repositorio de modelos, en OMNIVOICE_DATA_DIR/datasets;
en sesiones de Kaggle/Colab estos datos sobreviven al reinicio del servicio,
pero pueden perderse cuando se elimine la máquina virtual. No montamos Drive.
Semilla y finales incompletos
Los nuevos datasets utilizan semilla fija por defecto, para igualar el
comportamiento de la pestaña Generar voz. Se puede desactivar para usar
semillas incrementales por fila (modo histórico). Los jobs ya existentes sin
seed_mode siguen utilizando semillas incrementales al reanudarse, lo que
conserva su reproducibilidad.
El motor OmniVoice estima una duración para las frases cortas y usa chunking solo para textos largos (umbral predeterminado 30 s). Aunque el archivo WAV supere RIFF/PCM+SHA-256, eso no garantiza la pronunciación completa. Si detectas una palabra final cortada, regenera la fila tras comprobar la transcripción de referencia y el margen de duración; no equipares validez estructural con control de calidad lingüístico.
Duración inteligente (experimental)
Las pestañas Generar voz y Generar dataset admiten el modo adaptativo: se genera el WAV original, se analiza la energía de la cola acústica y, opcionalmente, Whisper verifica las palabras finales. En resultados sospechosos se repite únicamente esa frase con una duración extendida y limitada, hasta 2 o 3 intentos. Los trabajos antiguos sin configuración conservan el comportamiento original al reanudarse. La comprobación no garantiza la pronunciación fonética completa; si se detectan problemas conviene revisar auditivamente los WAV.
Motor alternativo bluryar · Q8 CUDA
Nueva implementación independiente de OmniVoice.cpp, probada en Tesla T4:
- Fork C++ de ThowiLabs con build reproducible CUDA sm75.
- Carpeta bluryar de este repositorio: compilado nativo, código fuente, Gradio editable, instalador y modelo GGUF único Q8.
- Instrucciones de instalación en una copia aislada, sin sobrescribir este motor.
Requiere el modelo bluryar/models/omnivoice-q8_0.gguf y no utiliza los dos GGUF de OVLC original. Los pesos conservan sus propias condiciones de licencia.
- Downloads last month
- 21
4-bit
8-bit