VoxLocal is a native OBS Studio plugin that turns live Kick chat commands into local, multilingual, voice-cloned speech. The interface lives inside OBS and inference stays on the streamer's computer. There is no Python runtime, local web server, cloud TTS account, or separate desktop application.
VoxLocal uses Kick's public chat transport and channel lookup endpoints. These interfaces are undocumented and may change without notice.
- Local Chatterbox Multilingual ONNX inference with Turkish and 22 other languages, including safe handling for tokenizer characters that are absent from the exported embedding table.
- Non-blocking model initialization after OBS is ready, with
Ask at startup,Load automatically, andDo not loadmemory policies. - Automatic hardware backend selection with DirectML GPU/CPU fallback on Windows, CoreML detection on macOS, and CUDA detection when a CUDA-enabled Linux runtime is supplied.
- Checksum-verified model download with pause/resume support and detailed byte progress.
- Zero-shot voice cloning from audio or video. FFmpeg extracts the first audio track and stores a validated 24 kHz mono WAV locally.
- Multiple personas, each with its own chat command, language mode, voice sample, and viewer role policy.
- Live Kick chat over its public Pusher transport with duplicate filtering and automatic reconnection.
- Global TTS enable switch, maximum message length, and playback-based global cooldown.
- Moderator and broadcaster commands:
!ttsonand!ttsoff. - Two OBS overlay presets:
- Minimal: a readable KickBot-inspired translucent black message card with large text that remains clear when scaled in OBS.
- Subtitle: a centered
username: messagecaption using the viewer's Kick chat color.
- Fade, left, right, top, bottom, and instant entrance animations.
- Native font picker, color pickers, and sender-name visibility control.
- English and Turkish interfaces without mixed-language labels.
- TTS audio is sent to the OBS mix and automatically enabled for local monitoring.
VoxLocal accepts only one viewer TTS request at a time. While that request is being generated, later TTS commands are skipped rather than queued. The global cooldown begins when the generated audio reaches OBS and starts playing. Commands received during the cooldown are also skipped.
Preview requests from the VoxLocal dock are independent from the enabled switch, so a streamer can test a persona while viewer TTS is disabled.
- OBS Studio 32.2.1 or newer with the official Browser Source component.
- Windows 10/11 x64, macOS 13.4+ (Apple Silicon or Intel), or x86-64 Linux with the Qt WebSockets package matching the Qt version used by OBS.
- FFmpeg available on
PATH, beside OBS, or throughVOXLOCAL_FFMPEG. - Enough memory for the quantized Chatterbox model.
- A short, clean recording containing one clearly audible speaker.
VoxLocal attempts DirectML on Windows, CoreML on macOS, and CUDA on Linux when the linked ONNX Runtime exposes the provider. It falls back to CPU inference. CPU generation can be slow; GPU acceleration is recommended for live use.
Close OBS, download the one setup matching your platform from Releases, and run it:
VoxLocal-Setup-1.1.2-Windows-x64.exeVoxLocal-Setup-1.1.2-macOS-universal.dmgfor Apple Silicon and Intel MacsVoxLocal-Setup-1.1.2-Linux-x86_64.run
On Linux, make the downloaded setup executable first if your browser removed its executable bit:
chmod +x VoxLocal-Setup-1.1.2-Linux-x86_64.run
./VoxLocal-Setup-1.1.2-Linux-x86_64.runThe setup detects and selects the plugin folder scanned by OBS Studio 32.2.1 automatically:
- Windows:
%ProgramData%\obs-studio\plugins - macOS:
~/Library/Application Support/obs-studio/plugins - Linux:
${XDG_CONFIG_HOME:-~/.config}/obs-studio/plugins
The location remains editable in the setup. On Windows, do not select %APPDATA%: OBS 32.2.1 does not scan that location for this plugin bundle. Windows asks for administrator approval so the setup can write to %ProgramData%. The setup copies the complete plugin bundle, including its data and runtime libraries, and provides VoxLocalMaintenanceTool for removal. Restart OBS after installation and complete the VoxLocal first-run wizard.
Windows and macOS setups are currently unsigned. Windows SmartScreen or macOS Gatekeeper may therefore ask for confirmation. On macOS, open the installer with Finder's Open context-menu action if it is quarantined. The Linux setup targets native OBS packages and uses the distribution's matching Qt runtime instead of bundling another Qt version; install your distribution's Qt WebSockets package if it is not already present. Flatpak OBS plugins should be installed through Flatpak's plugin mechanism.
- Select English or Turkish.
- Download and verify the local model, or use Skip to do it later.
- Choose whether the model should ask, load automatically, or remain unloaded when OBS starts.
- Enter the public Kick channel slug or skip it.
- Create a persona with a name, command, language, access policy, and audio or video sample, or skip it.
- VoxLocal adds VoxLocal Overlay to the current scene.
The VoxLocal dock remains hidden until Welcome finishes. Welcome cannot be accidentally dismissed, but each page has a Skip button and all sections can be completed later from the dock. Model weights are loaded into memory on a background worker only after OBS has finished opening. The dock also provides Load model now and shows the selected CPU/GPU backend.
The settings dock opens automatically. Reopen it from Tools → VoxLocal Settings or press Ctrl+Shift+V.
Example viewer command:
!voice Hello from chat
Moderator and broadcaster controls:
!ttsoff
!ttson
The overlay displays a short enabled or disabled notice when either command is accepted.
VoxLocal uses C++20, Qt 6, CMake, ONNX Runtime, FFmpeg, and the OBS plugin API.
cmake --preset linux
cmake --build --preset linux
ctest --preset linux
cmake --install build/linux --prefix release/payload --component RuntimeRequired development components are Qt 6 Core, Concurrent, Network, WebSockets, Gui and Widgets; nlohmann-json; OBS headers; libobs; and obs-frontend-api.
If ONNXRUNTIME_ROOT is not set, CMake downloads a pinned ONNX Runtime package. Linux defaults to the CPU package. Point ONNXRUNTIME_ROOT at a compatible CUDA build for CUDA inference.
Useful options:
VOXLOCAL_BUILD_PLUGIN=ON|OFF
VOXLOCAL_BUILD_TESTS=ON|OFF
VOXLOCAL_ENABLE_ONNX=ON|OFF
VOXLOCAL_FETCH_ONNXRUNTIME=ON|OFF
VOXLOCAL_FETCH_OBS_SDK=ON|OFF
Release setups are built with Qt Installer Framework. After staging the Runtime component, invoke cmake/package-installer.cmake with VOXLOCAL_PLATFORM, VOXLOCAL_PAYLOAD_DIR, VOXLOCAL_OUTPUT, and VOXLOCAL_WORK_DIR; binarycreator must be on PATH.
Settings, prepared voices, and model files are stored under the OBS plugin configuration directory. Voice samples are never uploaded by VoxLocal. Kick connectivity and the first model download are its only expected network operations.
Only clone voices you have the right to use. VoxLocal does not enforce a consent checkbox, but removing that checkbox does not remove your legal or ethical responsibility.
The overlay is bundled local HTML, CSS, and JavaScript with a Content Security Policy that blocks network connections and remote media.
The plugin is built and tested by GitHub Actions on Linux x86-64, Windows x64, macOS Apple Silicon, and macOS Intel. Windows and macOS use OBS Studio 32.2.1's exact Qt 6.11.1 runtime; a different Qt minor version must not be loaded into the OBS process. The Windows build is loaded against the official OBS 32.2.1 portable runtime and its packaged Schannel HTTPS backend is exercised before its setup is produced. The Linux build is checked for unresolved runtime dependencies. Release tags publish exactly three guided setups; the macOS setup contains binaries verified for both Apple Silicon and Intel. The ONNX inference path has both tokenizer-bound regression coverage and a real local Linux smoke test using Turkish diacritics. See Architecture, third-party notices, and the security policy.
VoxLocal is licensed under GPL-2.0-or-later because it links with OBS Studio. Model and dependency licenses are documented separately in THIRD_PARTY_NOTICES.md.
