OBS plugin for local speech recognition and captioning using AI
C++
1,635
304 commits
updated Sep 9, 2026
If you’re looking for a hosted desktop recording API, consider checking out Recall.ai, an API that records Zoom, Google Meet, Microsoft Teams, in-person meetings, and more.
| MacOS | Intel x86_64 | ARM64 (Apple silicon - M1/M2/M3/M4) |
|---|---|---|
| Generic* | ||
| 12 (Monterey) | ||
| 13 (Ventura) | ||
| 14 (Sonoma) | ||
| 15 (Sequoia) |
*While variants for specific versions of MacOS may work better on that version of MacOS, the Generic variant is likely the best option. See MacOS Variants below for more details
Check out the latest releases for downloads and install instructions.
LocalVocal lets you transcribe, locally on your machine, speech into text and simultaneously translate to any language. ✅ No GPU required, ✅ no cloud costs, ✅ no network and ✅ no downtime! Privacy first - all data stays on your machine.
The plugin runs OpenAI's Whisper to process real-time speech and predict a transcription, utilizing Whisper.cpp from ggerganov to run the model efficiently on CPUs and GPUs. Translation is done with CTranslate2.
https://youtu.be/ns4cP9HFTxQ
https://youtu.be/4llyfNi9FGs
https://youtu.be/R04w02qG26o
Do more with LocalVocal:
Current Features:
LocalVocal is available in multiple versions to cater to different hardware configurations and operating systems. Below is a brief explanation of the different versions you can download:
Make sure to download the version that matches your system's hardware and operating system for the best performance.
Whisper backends are now loaded dynamically when the plugin starts, which has 2 major benefits:
To ensure the plugin works "out-of-the-box", it is configured by default to use the CPU only (this is also the case for users upgrading from versions older than v0.5.0). This is to avoid immediate crashes on startup if for any reason your GPU cannot be used by one of the Whisper backends (e.g. the Metal backend on Apple just crashes if it is unable to allocate a buffer to load a model into)
If you want to use GPU acceleration, please ensure you go into the plugin settings and select your desired GPU acceleration backend
These variants should run well on any system regardless of hardware configuration. They contain the following Whispercpp backends:
These variants contain all the backends from the generic variant, plus a CUDA backend that provides accelerated performance on supported NVidia GPUS. If the OpenCL backend is available on your platform, it also uses the CUDA OpenCL library instead of the generic one.
Make sure you have the latest NVidia GPU drivers installed and you will likely also need the CUDA toolkit v12.8.0 or newer.
If installing on Linux, to avoid installing the entire CUDA toolkit if you don't need it you can just install either the cuda-runtime-12.8 package to get all the runtime libs and drivers, or the cuda-libaries-12-8 package to just get the runtime libraries.
These variants contain all the backends from the generic variant, plus a hipblas backend using AMD's ROCm framework that accelerates computation on supported AMD GPUs
Please ensure you have a compatible AMD GPU driver installed
These variants come with the following backends available:
The Generic MacOS version embeds the Metal shaders into whisper.cpp as intermediate bytecode, which is compiled at runtime for the computer and GPU being used. This is probably the best version to use unless you have a reason to use the others, and may be able to take advantage of newer features in Metal 4 in MacOS Tahoe
Variants with Metal shaders pre-compiled for specific Metal API versions which may or may not work slightly better on the appropriate version of MacOS:
The plugin ships with the Tiny.en model, and will autonomously download other Whisper models through a dropdown. There's also an option to select an external GGML Whisper model file if you have it on disk.
If using CoreML on Apple, it will also automatically download the appropriate CoreML encoder model for your selected model.
Get more models from https://ggml.ggerganov.com/ and HuggingFace, follow the instructions on whisper.cpp to create your own models or download others such as distilled models.
The plugin was built and tested on Mac OSX (Intel & Apple silicon), Windows (with and without Nvidia CUDA) and Linux.
Start by cloning this repo to a directory of your choice.
Using the CI pipeline scripts, locally you would just call the zsh script, which builds for the architecture specified in $MACOS_ARCH (either x86_64 or arm64).
$ MACOS_ARCH="x86_64" ./.github/scripts/build-macos -c Release
The above script should succeed and the plugin files (e.g. obs-localvocal.plugin) will reside in the ./release/Release folder off of the root. Copy the .plugin file to the OBS directory e.g. ~/Library/Application Support/obs-studio/plugins.
To get .pkg installer file, run for example
$ ./.github/scripts/package-macos -c Release
(Note that maybe the outputs will be in the Release folder and not the install folder like pakage-macos expects, so you will need to rename the folder from build_x86_64/Release to build_x86_64/install)
Clone the repository and if not using Ubuntu install the development versions of these dependencies using your distribution's package manager:
Installing ccache is also recommended if you are likely to be building the plugin multiple times
Install rust via rustup (recommended), or your distribution's package manager
Set the ACCELERATION environment variable to one of generic, nvidia, or amd (defaults to generic if unset)
export ACCELERATION="nvidia"
Then from the repo directory build the plugin by running:
./.github/scripts/build-linux
If you can't use the CI build script for some reason, you can build the plugin as follows
cmake -B build_x86_64 --preset linux-x86_64 -DCMAKE_INSTALL_PREFIX=./release
cmake --build build_x86_64 --target install
Installing
If using Ubuntu and the plugin was previously installed using a .deb package, copy the results to the standard OBS folders on Ubuntu
sudo cp -R release/RelWithDebInfo/lib/* /usr/lib/
sudo cp -R release/RelWithDebInfo/share/* /usr/share/
Otherwise, follow the official OBS plugins guide and copy the results to your user plugins folder
mkdir -p ~/.config/obs-studio/plugins/obs-localvocal/bin/64bit
cp -R release/RelWithDebInfo/lib/x86_64-linux-gnu/obs-plugins/* ~/.config/obs-studio/plugins/obs-localvocal/bin/64bit/
mkdir -p ~/.config/obs-studio/plugins/obs-localvocal/data
cp -R release/RelWithDebInfo/share/obs/obs-plugins/obs-localvocal/* ~/.config/obs-studio/plugins/obs-localvocal/data/
Note: The lib path in the release folder varies depending on your Linux distribution (e.g. on Gentoo the plugin libraries are found in release/RelWithDebInfo/lib64/obs-plugins) but the destination directory to copy them into will always be the same.
If you can't use the CI build script for some reason, or simply prefer to build the Whispercpp dependency from source along with the plugin, follow the steps above but build the plugin using the following commands:
cmake -B build_x86_64 --preset linux-x86_64 -DLINUX_SOURCE_BUILD=ON -DCMAKE_INSTALL_PREFIX=./release
cmake --build build_x86_64 --target install
When building from source, the Vulkan and OpenCL development libraries are optional and will only be used in the build if they are installed. Similarly if the CUDA or ROCm toolkits are found, they will also be used and the relevant Whisper backends will be enabled.
The default for a full source build is to build both Whisper and the plugin optimized for the host system. To change this behaviour add one or both of the following options to the CMake configure command (the first of the two):
-DWHISPER_DYNAMIC_BACKENDS=ON-DWHISPER_BUILD_ALL_CUDA_ARCHITECTURES=ONBuilding the plugin as a Flatpak extension for OBS Studio allows for easy distribution and installation on Linux systems.
Install Flatpak and flatpak-builder:
# On Ubuntu/Debian
sudo apt install flatpak flatpak-builder
# On Fedora
sudo dnf install flatpak flatpak-builder
# On Arch Linux
sudo pacman -S flatpak flatpak-builder
Add the Flathub repository:
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Install the OBS Studio Flatpak and required SDKs:
flatpak install flathub com.obsproject.Studio
flatpak install flathub org.kde.Sdk//6.8
Clone the repository if you haven't already:
git clone https://github.com/locaal-ai/obs-localvocal.git
cd obs-localvocal
Set the ACCELERATION environment variable to one of generic, nvidia, or amd (defaults to generic if unset):
export ACCELERATION="nvidia" # or "amd" or "generic"
Build the Flatpak extension:
./flatpak/build.sh --disable-rofiles-fuse --force-clean build-dir ./flatpak/com.obsproject.Studio.Plugin.LocalVocal.yaml
The build process will:
Installing the built extension:
./flatpak/build.sh --disable-rofiles-fuse --install build-dir ./flatpak/com.obsproject.Studio.Plugin.LocalVocal.yaml
Or manually install using:
flatpak-builder --user --install --force-clean build-dir ./flatpak/com.obsproject.Studio.Plugin.LocalVocal.yaml
Verify the installation:
flatpak list | grep LocalVocal
After installation, simply launch OBS Studio from your application menu or via:
flatpak run com.obsproject.Studio
The LocalVocal plugin should now be available in OBS Studio's filters.
uic binary compatibility.ACCELERATION environment variable before building.Use the CI scripts again, for example:
> .github/scripts/Build-Windows.ps1 -Configuration Release
The build should exist in the ./release folder off the root. You can manually install the files in the OBS directory.
> Copy-Item -Recurse -Force "release\Release\*" -Destination "C:\Program Files\obs-studio\"
LocalVocal will now build with CUDA support automatically through a prebuilt binary of Whisper.cpp from https://github.com/locaal-ai/locaal-ai-dep-whispercpp. The CMake scripts will download all necessary files.
To build with cuda add ACCELERATION as an environment variable (with cpu, hipblas, or cuda) and build regularly
> $env:ACCELERATION="cuda"
> .github/scripts/Build-Windows.ps1 -Configuration Release
467 followers · starred Feb 2024
155 followers · starred Sep 2026
311 followers · starred Aug 2024
115 followers · starred Dec 2025
OBS plugin for local speech recognition and captioning using AI
C++
1,635
304 commits
updated Sep 9, 2026
If you’re looking for a hosted desktop recording API, consider checking out Recall.ai, an API that records Zoom, Google Meet, Microsoft Teams, in-person meetings, and more.
| MacOS | Intel x86_64 | ARM64 (Apple silicon - M1/M2/M3/M4) |
|---|---|---|
| Generic* | ||
| 12 (Monterey) | ||
| 13 (Ventura) | ||
| 14 (Sonoma) | ||
| 15 (Sequoia) |
*While variants for specific versions of MacOS may work better on that version of MacOS, the Generic variant is likely the best option. See MacOS Variants below for more details
Check out the latest releases for downloads and install instructions.
LocalVocal lets you transcribe, locally on your machine, speech into text and simultaneously translate to any language. ✅ No GPU required, ✅ no cloud costs, ✅ no network and ✅ no downtime! Privacy first - all data stays on your machine.
The plugin runs OpenAI's Whisper to process real-time speech and predict a transcription, utilizing Whisper.cpp from ggerganov to run the model efficiently on CPUs and GPUs. Translation is done with CTranslate2.
https://youtu.be/ns4cP9HFTxQ
https://youtu.be/4llyfNi9FGs
https://youtu.be/R04w02qG26o
Do more with LocalVocal:
Current Features:
LocalVocal is available in multiple versions to cater to different hardware configurations and operating systems. Below is a brief explanation of the different versions you can download:
Make sure to download the version that matches your system's hardware and operating system for the best performance.
Whisper backends are now loaded dynamically when the plugin starts, which has 2 major benefits:
To ensure the plugin works "out-of-the-box", it is configured by default to use the CPU only (this is also the case for users upgrading from versions older than v0.5.0). This is to avoid immediate crashes on startup if for any reason your GPU cannot be used by one of the Whisper backends (e.g. the Metal backend on Apple just crashes if it is unable to allocate a buffer to load a model into)
If you want to use GPU acceleration, please ensure you go into the plugin settings and select your desired GPU acceleration backend
These variants should run well on any system regardless of hardware configuration. They contain the following Whispercpp backends:
These variants contain all the backends from the generic variant, plus a CUDA backend that provides accelerated performance on supported NVidia GPUS. If the OpenCL backend is available on your platform, it also uses the CUDA OpenCL library instead of the generic one.
Make sure you have the latest NVidia GPU drivers installed and you will likely also need the CUDA toolkit v12.8.0 or newer.
If installing on Linux, to avoid installing the entire CUDA toolkit if you don't need it you can just install either the cuda-runtime-12.8 package to get all the runtime libs and drivers, or the cuda-libaries-12-8 package to just get the runtime libraries.
These variants contain all the backends from the generic variant, plus a hipblas backend using AMD's ROCm framework that accelerates computation on supported AMD GPUs
Please ensure you have a compatible AMD GPU driver installed
These variants come with the following backends available:
The Generic MacOS version embeds the Metal shaders into whisper.cpp as intermediate bytecode, which is compiled at runtime for the computer and GPU being used. This is probably the best version to use unless you have a reason to use the others, and may be able to take advantage of newer features in Metal 4 in MacOS Tahoe
Variants with Metal shaders pre-compiled for specific Metal API versions which may or may not work slightly better on the appropriate version of MacOS:
The plugin ships with the Tiny.en model, and will autonomously download other Whisper models through a dropdown. There's also an option to select an external GGML Whisper model file if you have it on disk.
If using CoreML on Apple, it will also automatically download the appropriate CoreML encoder model for your selected model.
Get more models from https://ggml.ggerganov.com/ and HuggingFace, follow the instructions on whisper.cpp to create your own models or download others such as distilled models.
The plugin was built and tested on Mac OSX (Intel & Apple silicon), Windows (with and without Nvidia CUDA) and Linux.
Start by cloning this repo to a directory of your choice.
Using the CI pipeline scripts, locally you would just call the zsh script, which builds for the architecture specified in $MACOS_ARCH (either x86_64 or arm64).
$ MACOS_ARCH="x86_64" ./.github/scripts/build-macos -c Release
The above script should succeed and the plugin files (e.g. obs-localvocal.plugin) will reside in the ./release/Release folder off of the root. Copy the .plugin file to the OBS directory e.g. ~/Library/Application Support/obs-studio/plugins.
To get .pkg installer file, run for example
$ ./.github/scripts/package-macos -c Release
(Note that maybe the outputs will be in the Release folder and not the install folder like pakage-macos expects, so you will need to rename the folder from build_x86_64/Release to build_x86_64/install)
Clone the repository and if not using Ubuntu install the development versions of these dependencies using your distribution's package manager:
Installing ccache is also recommended if you are likely to be building the plugin multiple times
Install rust via rustup (recommended), or your distribution's package manager
Set the ACCELERATION environment variable to one of generic, nvidia, or amd (defaults to generic if unset)
export ACCELERATION="nvidia"
Then from the repo directory build the plugin by running:
./.github/scripts/build-linux
If you can't use the CI build script for some reason, you can build the plugin as follows
cmake -B build_x86_64 --preset linux-x86_64 -DCMAKE_INSTALL_PREFIX=./release
cmake --build build_x86_64 --target install
Installing
If using Ubuntu and the plugin was previously installed using a .deb package, copy the results to the standard OBS folders on Ubuntu
sudo cp -R release/RelWithDebInfo/lib/* /usr/lib/
sudo cp -R release/RelWithDebInfo/share/* /usr/share/
Otherwise, follow the official OBS plugins guide and copy the results to your user plugins folder
mkdir -p ~/.config/obs-studio/plugins/obs-localvocal/bin/64bit
cp -R release/RelWithDebInfo/lib/x86_64-linux-gnu/obs-plugins/* ~/.config/obs-studio/plugins/obs-localvocal/bin/64bit/
mkdir -p ~/.config/obs-studio/plugins/obs-localvocal/data
cp -R release/RelWithDebInfo/share/obs/obs-plugins/obs-localvocal/* ~/.config/obs-studio/plugins/obs-localvocal/data/
Note: The lib path in the release folder varies depending on your Linux distribution (e.g. on Gentoo the plugin libraries are found in release/RelWithDebInfo/lib64/obs-plugins) but the destination directory to copy them into will always be the same.
If you can't use the CI build script for some reason, or simply prefer to build the Whispercpp dependency from source along with the plugin, follow the steps above but build the plugin using the following commands:
cmake -B build_x86_64 --preset linux-x86_64 -DLINUX_SOURCE_BUILD=ON -DCMAKE_INSTALL_PREFIX=./release
cmake --build build_x86_64 --target install
When building from source, the Vulkan and OpenCL development libraries are optional and will only be used in the build if they are installed. Similarly if the CUDA or ROCm toolkits are found, they will also be used and the relevant Whisper backends will be enabled.
The default for a full source build is to build both Whisper and the plugin optimized for the host system. To change this behaviour add one or both of the following options to the CMake configure command (the first of the two):
-DWHISPER_DYNAMIC_BACKENDS=ON-DWHISPER_BUILD_ALL_CUDA_ARCHITECTURES=ONBuilding the plugin as a Flatpak extension for OBS Studio allows for easy distribution and installation on Linux systems.
Install Flatpak and flatpak-builder:
# On Ubuntu/Debian
sudo apt install flatpak flatpak-builder
# On Fedora
sudo dnf install flatpak flatpak-builder
# On Arch Linux
sudo pacman -S flatpak flatpak-builder
Add the Flathub repository:
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Install the OBS Studio Flatpak and required SDKs:
flatpak install flathub com.obsproject.Studio
flatpak install flathub org.kde.Sdk//6.8
Clone the repository if you haven't already:
git clone https://github.com/locaal-ai/obs-localvocal.git
cd obs-localvocal
Set the ACCELERATION environment variable to one of generic, nvidia, or amd (defaults to generic if unset):
export ACCELERATION="nvidia" # or "amd" or "generic"
Build the Flatpak extension:
./flatpak/build.sh --disable-rofiles-fuse --force-clean build-dir ./flatpak/com.obsproject.Studio.Plugin.LocalVocal.yaml
The build process will:
Installing the built extension:
./flatpak/build.sh --disable-rofiles-fuse --install build-dir ./flatpak/com.obsproject.Studio.Plugin.LocalVocal.yaml
Or manually install using:
flatpak-builder --user --install --force-clean build-dir ./flatpak/com.obsproject.Studio.Plugin.LocalVocal.yaml
Verify the installation:
flatpak list | grep LocalVocal
After installation, simply launch OBS Studio from your application menu or via:
flatpak run com.obsproject.Studio
The LocalVocal plugin should now be available in OBS Studio's filters.
uic binary compatibility.ACCELERATION environment variable before building.Use the CI scripts again, for example:
> .github/scripts/Build-Windows.ps1 -Configuration Release
The build should exist in the ./release folder off the root. You can manually install the files in the OBS directory.
> Copy-Item -Recurse -Force "release\Release\*" -Destination "C:\Program Files\obs-studio\"
LocalVocal will now build with CUDA support automatically through a prebuilt binary of Whisper.cpp from https://github.com/locaal-ai/locaal-ai-dep-whispercpp. The CMake scripts will download all necessary files.
To build with cuda add ACCELERATION as an environment variable (with cpu, hipblas, or cuda) and build regularly
> $env:ACCELERATION="cuda"
> .github/scripts/Build-Windows.ps1 -Configuration Release
467 followers · starred Feb 2024
155 followers · starred Sep 2026
311 followers · starred Aug 2024
115 followers · starred Dec 2025