{"id":28294146,"url":"https://github.com/royshil/obs-localvocal","last_synced_at":"2025-06-14T00:31:11.836Z","repository":{"id":188047604,"uuid":"677110837","full_name":"royshil/obs-localvocal","owner":"royshil","description":"OBS plugin for local speech recognition and captioning using AI","archived":false,"fork":false,"pushed_at":"2025-02-06T22:23:54.000Z","size":73475,"stargazers_count":801,"open_issues_count":51,"forks_count":61,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-06-07T17:26:28.898Z","etag":null,"topics":["ai","live-streaming","livestream","obs","obs-studio","obs-studio-plugin","openai-whisper","plugin","real-time-transcription","realtime-transcribe","realtime-translator","speech-recognition","speech-to-text","transcription","translation","whisper","whisper-cpp"],"latest_commit_sha":null,"homepage":"https://obsproject.com/forum/resources/localvocal-live-stream-ai-assistant.1769/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/royshil.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["royshil"]}},"created_at":"2023-08-10T19:05:18.000Z","updated_at":"2025-06-07T12:55:20.000Z","dependencies_parsed_at":"2023-08-13T14:10:42.256Z","dependency_job_id":"5c82919c-2ed1-44d4-9169-bbb06c717b78","html_url":"https://github.com/royshil/obs-localvocal","commit_stats":{"total_commits":195,"total_committers":5,"mean_commits":39.0,"dds":0.05641025641025643,"last_synced_commit":"bb1db720520b83beefec34250b1fc0b08e0c0a7c"},"previous_names":["royshil/obs-localvocal","occ-ai/obs-localvocal","locaal-ai/obs-localvocal"],"tags_count":26,"template":false,"template_full_name":"obsproject/obs-plugintemplate","purl":"pkg:github/royshil/obs-localvocal","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/royshil%2Fobs-localvocal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/royshil%2Fobs-localvocal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/royshil%2Fobs-localvocal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/royshil%2Fobs-localvocal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/royshil","download_url":"https://codeload.github.com/royshil/obs-localvocal/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/royshil%2Fobs-localvocal/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259395607,"owners_count":22850866,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","live-streaming","livestream","obs","obs-studio","obs-studio-plugin","openai-whisper","plugin","real-time-transcription","realtime-transcribe","realtime-translator","speech-recognition","speech-to-text","transcription","translation","whisper","whisper-cpp"],"created_at":"2025-05-22T08:03:04.991Z","updated_at":"2025-06-14T00:31:11.827Z","avatar_url":"https://github.com/royshil.png","language":"C++","funding_links":["https://github.com/sponsors/royshil"],"categories":["C++"],"sub_categories":[],"readme":"# LocalVocal - Speech AI assistant OBS Plugin\n\n\u003cdiv align=\"center\"\u003e\n\n[![GitHub](https://img.shields.io/github/license/locaal-ai/obs-localvocal)](https://github.com/locaal-ai/obs-localvocal/blob/main/LICENSE)\n[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/locaal-ai/obs-localvocal/push.yaml)](https://github.com/locaal-ai/obs-localvocal/actions/workflows/push.yaml)\n[![Total downloads](https://img.shields.io/github/downloads/locaal-ai/obs-localvocal/total)](https://github.com/locaal-ai/obs-localvocal/releases)\n[![GitHub release (latest by date)](https://img.shields.io/github/v/release/locaal-ai/obs-localvocal)](https://github.com/locaal-ai/obs-localvocal/releases)\n[![GitHub stars](https://badgen.net/github/stars/locaal-ai/obs-localvocal)](https://GitHub.com/locaal-ai/obs-localvocal/stargazers/)\n\u003cbr/\u003e\nDownload:\u003c/br\u003e\n\u003ca href=\"https://github.com/locaal-ai/obs-localvocal/releases/download/0.3.9/obs-localvocal-0.3.9-windows-x64-cuda-Installer.exe\"\u003e\u003cimg src=\"https://img.shields.io/badge/Windows-0078D6?style=for-the-badge\u0026logo=windows\u0026logoColor=white\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/locaal-ai/obs-localvocal/releases/download/0.3.9/obs-localvocal-0.3.9-macos-x86_64.pkg\"\u003e\u003cimg src=\"https://img.shields.io/badge/mac%20Intel-000000?style=for-the-badge\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/locaal-ai/obs-localvocal/releases/download/0.3.9/obs-localvocal-0.3.9-macos-arm64.pkg\"\u003e\u003cimg src=\"https://img.shields.io/badge/mac%20M1/2/3-0a0a0a?style=for-the-badge\u0026\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/locaal-ai/obs-localvocal/releases/download/0.3.9/obs-localvocal-0.3.9-x86_64-linux-gnu.deb\"\u003e\u003cimg src=\"https://img.shields.io/badge/Linux-FCC624?style=for-the-badge\u0026logo=linux\u0026logoColor=black\"/\u003e\u003c/a\u003e\n\n\n\u003c/div\u003e\n\n## Introduction\n\nLocalVocal 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.\n\nInternally the plugin is running [OpenAI's Whisper](https://github.com/openai/whisper) to process real-time the speech and predict a transcription.\nIt's using the [Whisper.cpp](https://github.com/ggerganov/whisper.cpp) project from [ggerganov](https://github.com/ggerganov) to run the Whisper network efficiently on CPUs and GPUs.\nTranslation is done with [CTranslate2](https://github.com/OpenNMT/CTranslate2).\n\n## Usage\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://youtu.be/ns4cP9HFTxQ\" target=\"_blank\"\u003e\n    \u003cimg width=\"30%\" src=\"https://github.com/user-attachments/assets/79ce3db6-b35f-4181-85d0-6c473b931418\" /\u003e\n  \u003c/a\u003e\u0026nbsp;\n  \u003ca href=\"https://youtu.be/eTSDcNGsN00\" target=\"_blank\"\u003e\n    \u003cimg width=\"30%\" src=\"https://github.com/user-attachments/assets/4483eb30-98de-4fcd-aa50-d9dbe70060b3\" /\u003e\n  \u003c/a\u003e\n  \u0026nbsp;\n  \u003ca href=\"https://youtu.be/R04w02qG26o\" target=\"_blank\"\u003e\n    \u003cimg width=\"30%\" src=\"https://github.com/user-attachments/assets/0b995c74-12e8-4216-8519-b26f3d69688f\" /\u003e\n  \u003c/a\u003e\n  \u003cbr/\u003e\n  \u003ca href=\"https://youtu.be/ns4cP9HFTxQ\"\u003ehttps://youtu.be/ns4cP9HFTxQ\u003c/a\u003e\n  \u003ca href=\"https://youtu.be/eTSDcNGsN00\"\u003ehttps://youtu.be/4llyfNi9FGs\u003c/a\u003e\n  \u003ca href=\"https://youtu.be/R04w02qG26o\"\u003ehttps://youtu.be/R04w02qG26o\u003c/a\u003e\n\u003c/p\u003e\n\nDo more with LocalVocal:\n- [RealTime Translation](https://youtu.be/4llyfNi9FGs) \n- [Translate Caption any Application](https://youtu.be/qen7NC8kbEQ)\n- [Real-time Translation with DeepL](https://youtu.be/ryWBIEmVka4)\n- [Real-time Translation with OpenAI](https://youtu.be/Q34LQsx-nlg)\n- [ChatGPT + Text-to-speech](https://youtu.be/4BTmoKr0YMw)\n- [POST Captions to YouTube](https://youtu.be/E7HKbO6CP_c)\n- [Local LLM Real-time Translation](https://youtu.be/ZMNILPWDkDw)\n- [Usage Tutorial](https://youtu.be/5XqTMqpui3Q)\n\nCurrent Features:\n- Transcribe audio to text in real time in 100 languages\n- Display captions on screen using text sources\n- Send captions to a .txt or .srt file (to read by external sources or video playback) with and without aggregation option\n- Sync'ed captions with OBS recording timestamps\n- Send captions on a RTMP stream to e.g. YouTube, Twitch\n- Bring your own Whisper model (any GGML)\n- Translate captions in real time to major languages (with cloud prviders, Whisper built-in translation as well as NMT models)\n- CUDA, hipBLAS (AMD ROCm), Apple Arm64, AVX \u0026 SSE acceleration support\n- Filter out or replace any part of the produced captions\n- Partial transcriptions for a streaming-captions experience\n- 100s of fine-tuned Whisper models for dozens of languages from HuggingFace\n\n\n## Download\nCheck out the [latest releases](https://github.com/locaal-ai/obs-localvocal/releases) for downloads and install instructions.\n\n### Available Versions\n\nLocalVocal 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:\n\n- **Windows CUDA**: This version is optimized for systems with NVIDIA GPUs and utilizes CUDA for accelerated performance. Make sure you have the latest NVidia GPU drivers installed.\n- **Windows CPU**: This version is designed for systems without dedicated GPUs, running solely on the CPU.\n- **Windows HIPBLAS**: This version utilizes the HIP framework from AMD that accelerates computation on AMD GPUs. (⚠️ Experimental ⚠️ Please provide feedback)\n- **Windows Vulkan**: This version uses Vulkan for GPU-based acceleration across many vendors like NVidia, AMD, and Intel. (⚠️ Experimental ⚠️ Please provide feedback)\n- **macOS Intel (x86_64)**: This version is for Mac computers with Intel processors.\n- **macOS Apple Silicon (arm64)**: This version is optimized for Mac computers with Apple Silicon (M1, M2, etc.) processors.\n- **Linux x86_64**: This version is for Linux systems with x86_64 architecture.\n\nMake sure to download the version that matches your system's hardware and operating system for the best performance.\n\n### Models\nThe plugin ships with the Tiny.en model, and will autonomously download other Whisper models through a dropdown.\nThere's also an option to select an external GGML Whisper model file if you have it on disk.\n\nGet more models from https://ggml.ggerganov.com/ and [HuggingFace](https://huggingface.co/ggerganov/whisper.cpp/tree/main), follow [the instructions on whisper.cpp](https://github.com/ggerganov/whisper.cpp/tree/master/models) to create your own models or download others such as distilled models.\n\n## Building\n\nThe plugin was built and tested on Mac OSX (Intel \u0026 Apple silicon), Windows (with and without Nvidia CUDA) and Linux.\n\nStart by cloning this repo to a directory of your choice.\n\n### Mac OSX\n\nUsing 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`).\n\n```sh\n$ MACOS_ARCH=\"x86_64\" ./.github/scripts/build-macos -c Release\n```\n\n#### Install\nThe 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`.\n\nTo get `.pkg` installer file, run for example\n```sh\n$ ./.github/scripts/package-macos -c Release\n```\n(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`)\n\n### Linux\n\n#### Ubuntu\n\nFor successfully building on Ubuntu, first clone the repo, then from the repo directory:\n```sh\n$ sudo apt install -y libssl-dev\n$ ./.github/scripts/build-linux\n```\n\nCopy the results to the standard OBS folders on Ubuntu\n```sh\n$ sudo cp -R release/RelWithDebInfo/lib/* /usr/lib/\n$ sudo cp -R release/RelWithDebInfo/share/* /usr/share/\n```\nNote: The official [OBS plugins guide](https://obsproject.com/kb/plugins-guide) recommends adding plugins to the `~/.config/obs-studio/plugins` folder. This has to do with the way you *installed* OBS.\n\nIn case the above doesn't work, attempt to copy the files to the `~/.config` folder:\n```sh\n$ mkdir -p ~/.config/obs-studio/plugins/obs-localvocal/bin/64bit\n$ cp -R release/RelWithDebInfo/lib/x86_64-linux-gnu/obs-plugins/* ~/.config/obs-studio/plugins/obs-localvocal/bin/64bit/\n$ mkdir -p ~/.config/obs-studio/plugins/obs-localvocal/data\n$ cp -R release/RelWithDebInfo/share/obs/obs-plugins/obs-localvocal/* ~/.config/obs-studio/plugins/obs-localvocal/data/\n```\n\n#### Other distros\n\nFor other distros where you can't use the CI build script, you can build the plugin as follows\n\n1. Clone the repository and install these dependencies using your distribution's package manager:\n\n    * libssl (with development headers)\n\n2. Generate the CMake build scripts (adjust folders if necessary)\n\n    ```sh\n    cmake -B build-dir --preset linux-x86_64 -DUSE_SYSTEM_CURL=ON -DCMAKE_INSTALL_PREFIX=./output_dir\n    ```\n\n3. Build the plugin and copy the files to the output directory\n\n    ```sh\n    cmake --build build-dir --target install\n    ```\n\n4. Copy plugin to OBS plugins folder\n\n    ```sh\n    mkdir -p ~/.config/obs-studio/plugins/bin/64bit\n    cp -R ./output_dir/lib/obs-plugins/* ~/.config/obs-studio/plugins/bin/64bit/\n    ```\n\n    \u003e N.B. Depending on your system, the plugin might be in `./output_dir/lib64/obs-plugins` instead.\n\n5. Copy plugin data to OBS plugins folder - Possibly only needed on first install\n\n    ```sh\n    mkdir -p ~/.config/obs-studio/plugins/data\n    cp -R ./output_dir/share/obs/obs-plugins/obs-localvocal/* ~/.config/obs-studio/plugins/data/\n    ```\n\n### Windows\n\nUse the CI scripts again, for example:\n\n```powershell\n\u003e .github/scripts/Build-Windows.ps1 -Configuration Release\n```\n\nThe build should exist in the `./release` folder off the root. You can manually install the files in the OBS directory.\n\n```powershell\n\u003e Copy-Item -Recurse -Force \"release\\Release\\*\" -Destination \"C:\\Program Files\\obs-studio\\\"\n```\n\n#### Building with CUDA support on Windows\n\nLocalVocal 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.\n\nTo build with cuda add `ACCELERATION` as an environment variable (with `cpu`, `hipblas`, or `cuda`) and build regularly\n\n```powershell\n\u003e $env:ACCELERATION=\"cuda\"\n\u003e .github/scripts/Build-Windows.ps1 -Configuration Release\n```\n\n\n\u003cpicture\u003e\n  \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/svg?repos=locaal-ai/obs-localvocal\u0026type=Date\u0026theme=dark\" /\u003e\n  \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/svg?repos=locaal-ai/obs-localvocal\u0026type=Date\" /\u003e\n  \u003cimg alt=\"Star History Chart\" src=\"https://api.star-history.com/svg?repos=locaal-ai/obs-localvocal\u0026type=Date\" /\u003e\n\u003c/picture\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froyshil%2Fobs-localvocal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Froyshil%2Fobs-localvocal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froyshil%2Fobs-localvocal/lists"}