A comprehensive and optimized WebUI for working with OmniVoice on Windows. This application provides a seamless pipeline for dataset preparation, model training (LoRA), and high-quality voice synthesis.
This update improves LoRA training workflows, safer checkpoint resume, and inference controls based on real-world issue triage:
prompt_ratio_range to [0.0, 0.0], training the dataset voice as the default LoRA voice for inference without reference audio.eval_text only, without requiring eval_ref_audio or eval_ref_text.exp/ project reloads saved training settings from train_config.json and data_config.json into the GUI.audio_tokenizer before saving.audio_tokenizer.* keys, keeping a .bak copy of the original file.., ,, !, ?, etc., because it could make some models pronounce punctuation literally.Split by Paragraphs in instruct/auto voice mode without a reference sample, the first generated clip is reused internally as the reference for later paragraphs to improve voice consistency.This massive update focuses on making OmniVoice stable for long training sessions and accessible to a wider range of NVIDIA GPUs:
expandable_segments memory allocator and deep VRAM purging (CPU offloading before deletion) in both inference and training.CUDA illegal memory access errors that occur when PyTorch attempts to use default 128x128 blocks.PicklingError in Windows DataLoaders.CompiledKernel hooks for stable Windows execution.windows_patch.py SystemTo enable high-performance features like Flex Attention and Triton compilation on Windows, we implement a series of low-level monkey-patches in omnivoice/utils/windows_patch.py. Here is a breakdown of every fix applied:
apply_triton_windows_patch(): Bridging the OS GapTriton is natively built for Linux. Windows wheels (like triton-windows) often lack specific metadata or hooks that PyTorch Inductor expects.
make_launcher): We patch TritonCompileResult.make_launcher to intercept the kernel binary. It manually injects cluster_dims and num_ctas into the binary.metadata if they are missing. Without this, the compiler throws an AttributeError because it expects these fields for hardware synchronization.launch_enter_hook and launch_exit_hook on the CompiledKernel class. Since these are often absent in Windows Triton builds, we inject dummy lambda functions to prevent a crash during the kernel launch phase.apply_flex_attention_patch(): Overcoming Hardware LimitsStandard Flex Attention kernels are optimized for A100/H100 GPUs with large shared memory. Consumer cards have a 99KB shared memory limit per block.
torch.cuda.get_device_capability() to target Ampere (8.6) and Ada (8.9) GPUs specifically.compile_friendly_flex_attention to force BLOCK_M=32 and BLOCK_N=32.CUDA Error: illegal memory access.patch_triton_key(): Cache & Hash Stabilitynum_ctas is always present in the signature, preventing cache misses and "KeyError" crashes when the compiler tries to retrieve a compiled kernel from the local disk cache on Windows.We've introduced a Dialogue Builder sub-tab within the Voice Clone interface, designed for creating multi-speaker interactions easily:
➕), cloning (📋), or removing (🗑️) speaker segments.
The GUI is designed around a 4-step logical workflow:
Faster-Whisper.| Feature | Minimum VRAM | Recommended |
|---|---|---|
| Inference (Base) | 8 GB | 12 GB+ |
| Training (LoRA) | 8 GB | 12 GB+ |
| Whisper (ASR) | 1 GB (Tiny) | 10 GB (Large-v3) |
samples/ directory for quick access during inference.This project uses uv for high-performance dependency management.
git clone https://github.com/Mixomo/OmniVoice_Simple_GUI.git
install.bat.
uv via Winget (if not present).start.bat.http://127.0.0.1:7860 in your web browser.Inspired by FranckyB Voice Clone Studio
9 commits
Python
99.6%
A comprehensive and optimized WebUI for working with OmniVoice on Windows. This application provides a seamless pipeline for dataset preparation, model training (LoRA), and high-quality voice synthesis.
This update improves LoRA training workflows, safer checkpoint resume, and inference controls based on real-world issue triage:
prompt_ratio_range to [0.0, 0.0], training the dataset voice as the default LoRA voice for inference without reference audio.eval_text only, without requiring eval_ref_audio or eval_ref_text.exp/ project reloads saved training settings from train_config.json and data_config.json into the GUI.audio_tokenizer before saving.audio_tokenizer.* keys, keeping a .bak copy of the original file.., ,, !, ?, etc., because it could make some models pronounce punctuation literally.Split by Paragraphs in instruct/auto voice mode without a reference sample, the first generated clip is reused internally as the reference for later paragraphs to improve voice consistency.This massive update focuses on making OmniVoice stable for long training sessions and accessible to a wider range of NVIDIA GPUs:
expandable_segments memory allocator and deep VRAM purging (CPU offloading before deletion) in both inference and training.CUDA illegal memory access errors that occur when PyTorch attempts to use default 128x128 blocks.PicklingError in Windows DataLoaders.CompiledKernel hooks for stable Windows execution.windows_patch.py SystemTo enable high-performance features like Flex Attention and Triton compilation on Windows, we implement a series of low-level monkey-patches in omnivoice/utils/windows_patch.py. Here is a breakdown of every fix applied:
apply_triton_windows_patch(): Bridging the OS GapTriton is natively built for Linux. Windows wheels (like triton-windows) often lack specific metadata or hooks that PyTorch Inductor expects.
make_launcher): We patch TritonCompileResult.make_launcher to intercept the kernel binary. It manually injects cluster_dims and num_ctas into the binary.metadata if they are missing. Without this, the compiler throws an AttributeError because it expects these fields for hardware synchronization.launch_enter_hook and launch_exit_hook on the CompiledKernel class. Since these are often absent in Windows Triton builds, we inject dummy lambda functions to prevent a crash during the kernel launch phase.apply_flex_attention_patch(): Overcoming Hardware LimitsStandard Flex Attention kernels are optimized for A100/H100 GPUs with large shared memory. Consumer cards have a 99KB shared memory limit per block.
torch.cuda.get_device_capability() to target Ampere (8.6) and Ada (8.9) GPUs specifically.compile_friendly_flex_attention to force BLOCK_M=32 and BLOCK_N=32.CUDA Error: illegal memory access.patch_triton_key(): Cache & Hash Stabilitynum_ctas is always present in the signature, preventing cache misses and "KeyError" crashes when the compiler tries to retrieve a compiled kernel from the local disk cache on Windows.We've introduced a Dialogue Builder sub-tab within the Voice Clone interface, designed for creating multi-speaker interactions easily:
➕), cloning (📋), or removing (🗑️) speaker segments.
The GUI is designed around a 4-step logical workflow:
Faster-Whisper.| Feature | Minimum VRAM | Recommended |
|---|---|---|
| Inference (Base) | 8 GB | 12 GB+ |
| Training (LoRA) | 8 GB | 12 GB+ |
| Whisper (ASR) | 1 GB (Tiny) | 10 GB (Large-v3) |
samples/ directory for quick access during inference.This project uses uv for high-performance dependency management.
git clone https://github.com/Mixomo/OmniVoice_Simple_GUI.git
install.bat.
uv via Winget (if not present).start.bat.http://127.0.0.1:7860 in your web browser.Inspired by FranckyB Voice Clone Studio
9 commits
Python
99.6%