File: README.md
Vibe - Transcribe on your own!
Screenshots
Features ๐
- ๐ Transcribe almost every language
- ๐ Ultimate privacy: fully offline transcription, no data ever leaves your device
- ๐จ User friendly design
- ๐๏ธ Transcribe audio / video
- ๐ถ Option to transcribe audio from popular websites (YouTube, Vimeo, Facebook, Twitter and more!)
- ๐ Batch transcribe multiple files!
- ๐ Support
SRT,VTT,TXT,HTML,PDF,JSON,DOCXformats - ๐ Realtime preview
- ๐ค Supports Whisper, Nemotron 3.5, and Parakeet TDT v3 models
- โจ Summarize transcripts: Get quick, multilingual summaries using the Claude API
- ๐ง Ollama support: Do local AI analysis and batch summaries with Ollama
- ๐ Translate to English from any language
- ๐จ๏ธ Print transcript directly to any printer
- ๐ Automatic updates
- ๐ป Optimized for
GPU(macOS,Windows,Linux) - ๐ฎ Optimized for
Nvidia/AMD/IntelGPUs! (Vulkan/CoreML) - ๐ง Total Freedom: Customize Models Easily via Settings
- โ๏ธ Model arguments for advanced users
- โณ Transcribe system audio
- ๐ค Transcribe from microphone
- ๐ฅ๏ธ CLI support: Use Vibe directly from the command line interface! (see
--help) - ๐ฅ Speaker diarization
- ๐ฌ Stable timestamps mode for subtitle/movie-grade timing (VAD-backed, slower)
- ๐ฑ
iOS & Android support(coming soon) - ๐ฅ Integrate custom models from your own site: Use
vibe://download/?url=<model url> - ๐น Choose caption length optimized for videos / reels
- โก HTTP API with Swagger docs and agent skills
Supported platforms ๐ฅ๏ธ
MacOSWindowsLinux
Contribute ๐ค
Developers
Get started with local development here.
PRs are welcomed!
In addition, you're welcome to add translations.
Community
Roadmap ๐ฃ๏ธ
You can see the roadmap in Vibe-Roadmap
Add translation ๐
See the translation guide.
Docs ๐
see Vibe Docs
I want to know more!
Medium post
Issue report
You can open new issue and it's recommend to check debug.md first.
Privacy Policy ๐
Your privacy is important to us. Please review our Privacy Policy to understand how we handle your data.
Credits
Thanks for tauri.app for making the best apps framework I ever seen
Thanks for github.com/whisper.cpp for outstanding interface for the AI model.
Thanks for openai.com for their amazing Whisper model
Thanks for github.com for their support in open source projects, providing infastructure completely free.
And for all the amazing open source frameworks and libraries which this project uses...
File: desktop/README.md
Tauri + React + Typescript
This template should help get you started developing with Tauri, React and Typescript in Vite.
Recommended IDE Setup
File: docs/building.md
Building
Prerequisites
Optionally install just to use the shortcuts in the root justfile (run just to list them):
# Windows
winget install Casey.Just
# macOS
brew install just
# Linux
sudo apt install just # or: cargo install justLinux:
Based on tauri/prerequisites/#setting-up-linux
sudo apt-get update
sudo apt-get install -y pkg-config build-essential libglib2.0-dev libgtk-3-dev libwebkit2gtk-4.1-dev clang cmake libssl-dev libasound2-devmacOS:
Make sure to install XCode from the AppStore and open it once so it will download essential macOS libraries.
Build
Run the pre-build script (downloads the Sona runner binary and sets up platform deps):
uv run scripts/pre_build.pyInstall frontend dependencies from desktop folder:
cd desktop
pnpm installStart dev mode:
pnpm exec tauri devOr build for production:
pnpm exec tauri buildYou can also do it all in one step:
uv run scripts/pre_build.py --dev # or --buildBuild sona locally (dev)
Download prebuilt whisper.cpp libs (one-time):
uv run sona/scripts/download-libs.pyWindows only โ install MSYS2, then install MinGW and Vulkan headers:
pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-vulkan-develOpen an MSYS2 MinGW64 shell with your full Windows PATH (so rustc, cargo, etc. are available):
C:\msys64\msys2_shell.cmd -mingw64 -defterm -no-start -use-full-pathThen build sona and place it as sidecar (from desktop/):
# macOS/Linux
cargo build --manifest-path ../sona/Cargo.toml -p sona --release
cp ../sona/target/release/sona ../desktop/src-tauri/binaries/sona-$(rustc -vV | awk '/host:/ {print $2}')
# Windows
cargo build --manifest-path ../sona/Cargo.toml -p sona --release
cp ../sona/target/release/sona.exe ../desktop/src-tauri/binaries/sona-$(rustc -vV | awk '/host:/ {print $2}').exeThen copy the binary into the dev target so tauri dev picks it up immediately:
cp desktop/src-tauri/binaries/sona-$(rustc -vV | awk '/host:/ {print $2}') target/debug/sonaTest
export RUST_LOG=trace
cargo test -- --nocaptureLint
cargo fmt
cargo clippyCreate new release
- Increment version in
tauri.conf.jsonand commit - Run the Release workflow from GitHub Actions (workflow_dispatch)
It will create releases for Windows, Linux, and macOS
Along with latest.json file (used for auto updater).
When Release action finishes, it will run Deploy landing action
and update downloads links in landing page.
Landing
Compress images
pnpx tinypng-go static/*.pngConvert markdown to PDF
go install github.com/mandolyte/mdtopdf/cmd/md2pdf@latest
md2pdf -i website/public/privacy_policy.md -o website/public/privacy_policy.pdfNormalize wav file for tests
ffmpeg -i file.wav -ar 16000 -ac 1 -c:a pcm_s16le normal.wavEdit PR before merge
- Install gh cli
gh pr checkout
git push <fork url>Update packages
pnpm install
pnpx ncu -u
cd src-tauri
cargo install cargo-edit
rm -rf ../Cargo.lock
CARGO_NET_GIT_FETCH_WITH_CLI=true cargo upgrade
# OR
cargo +nightly -Zunstable-options update --breakingClear Github actions cache
gh cache delete -aNotes
- Always update crates and lock in specific commit so it will be easy to revert!!
- Don't upgrade important crates such as tauri as long as it stable and works and there's no real need!!
Windows Code Signing
Install Windows SDK:
winget install -e --id Microsoft.WindowsSDK.10.0.26100Generate a self-signed certificate (valid 10 years):
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 3650 -nodes -subj "/CN=Vibe" -addext "extendedKeyUsage=codeSigning"
openssl pkcs12 -export -out cert.pfx -inkey key.pem -in cert.pem -password pass:YOUR_PASSWORD
base64 -i cert.pfxCopy the base64 output and update GitHub secrets:
WINDOWS_CERTIFICATEโ the base64 outputWINDOWS_CERTIFICATE_PASSWORDโ the password used above
Then delete the local files:
rm key.pem cert.pem cert.pfxAnalytics (Optional)
Vibe uses Aptabase for analytics. Not required for development. To enable, set these env vars at build time:
export APTABASE_APP_KEY="A-..."
export APTABASE_BASE_URL="https://..."Gotchas
Build faster in dev mode (useful in Windows)
rustup nightly install
rustup component add rustc-codegen-cranelift-preview --toolchain nightly
# Unix
CARGO_PROFILE_DEV_CODEGEN_BACKEND="cranelift" cargo +nightly build -Zcodegen-backend
# Powershell
$env:CARGO_PROFILE_DEV_CODEGEN_BACKEND="cranelift" ; cargo +nightly build -Zcodegen-backendFile: docs/debug.md
Troubleshoot vibe crash / error
Try the following, the more you try the better the chance we'll find the cause :)
- Is the audio file valid? try with different one, eg. download vibe/samples/single.wav
- Do you have errors? report it with the 'report button'
- Do you experience crash without errors? try to run from the terminal with logs enabled:
- Do you use other model than the default one? Please use the default one that comes with Vibe when checking.
Windows
a. Open cmd.exe
b. Execute:
taskkill /IM vibe.exe /F
set RUST_BACKTRACE=1
set RUST_LOG=vibe=debug,whisper_rs=debug
%localappdata%\vibe\vibe.exemacOS
RUST_LOG=vibe=debug,whisper_rs=debug RUST_BACKTRACE=1 /Applications/vibe.app/Contents/MacOS/vibeLinux
Run it similar to macOS just change the path
Does it happens with original Whisper?
- Download one of the
zipfiles from releases/tag/v1.6.0 (Scroll down and choosewhisper-bin-x64.zipinWindows - Extract them and open the folder, then open explorer in that folder and hit
Ctrl+linexplorer, typecmd` and enter - Download vibe/samples/single.wav and place it in the same folder (and check that the file is ok)
- Try to transcribe by execute
main.exe -m "%localappdata%\github.com.thewh1teagle.vibe\ggml-medium.bin" -f "samples_single.wav"App crashing and no even errors!
In windows, open search menu and search for Event Viewer, choose Windows Logs -> Application and check if there's some error there
Find debug log file
If you can't open the app due to crash, try to check any logs in
macOS: $HOME/Library/Application Support/github.com.thewh1teagle.vibe
Windows: %appdata%\github.com.thewh1teagle.vibe
Linux: ~/.config/github.com/thewh1teagle.vibe
Get OS information for posting in a bug
Windows
- Open
cmd.exe - Execute the following
winget install neofetch
neofetch- Copy and paste it in the issue
macOS
brew install neofetch
neofetchLinux
sudo apt-get update
sudo apt install -y neofetch
neofetchvulkan-1.dll or vcomp140.dll is missing
For vcomp140.dll install vc_redist.x64.exe
For vulkan-1.dll install VulkanRT-Installer.exe
After you finished, share you results by opening new issue or just comment in the issue.
File: docs/install.md
Install notes ๐
System Requirements
Windows: Version 8 or greater.
macOS: Version 13.3 or greater.
Linux: Tested on ubuntu-22.04+
Hardware:
No special requirement. resource usage can be customized through advanced settings in main window.
Currently, listening for the audio file isn't supported on Linux
In addition you may need to set this environment variable before start it
export WEBKIT_DISABLE_COMPOSITING_MODE=1Setting Up Summarization with Ollama
- Install Ollama
Download and install Ollama from https://ollama.com.
- Install a Model
Once installed, set up a model for summarization. For example, you can install llama3.1 by running the following command in your terminal:
ollama run llama3.1- Enable Summarization
After the model is installed, open the Ollama app. Navigate to More Options and enable Summarize just before the transcription step. You can leave the settings at their default values.
Make sure to run the 'Run check` to see that it works
That's it! Summarization will now be active in Ollama.
Stable Timestamps (Subtitles / Movies)
Vibe includes a stable timestamp mode for tighter subtitle timing on long-form content.
- Open
More Options. - Enable
Stable timestamps. - If prompted, download the VAD model.
Notes:
- This mode is quality-first and typically around
4xslower than normal transcription. - Best for subtitle creation and movie/video transcript timing.
- VAD model used by default:
ggml-silero-v6.2.0.bin - Upstream model source:
https://huggingface.co/ggml-org/whisper-vad
Translating to English
Translation to English works only with Whisper small, medium, and large models. It does not work with Whisper large-v3-turbo.
If you need translation, download a supported model from the models docs.
Manual Install ๐ ๏ธ
MacOS Apple silicon: install aarch64.dmg file from releases Don't forget to right click and open from Applications once
MacOS Intel: install x64.dmg file from releases Don't forget to right click and open from Applications once
Windows: install .exe file from releases
Linux: install .deb from releases (Arch users can use debtap)
All models available for manual install. see Pre built models
Offline Setup ๐พ
Offline installation with Vibe is easy: open the app, cancel the download, and navigate to the Customize section within settings.
All models available for manual install. see settings or Pre built models
Faster transcriptions on macOS (2-3x) ๐
- Download the matching
.mlcmodelc.zipfor your model from https://huggingface.co/ggerganov/whisper.cpp/tree/main
- e.g.
ggml-medium-encoder.mlmodelc.zipmatchesggml-medium-encoder.bin
- Open models path from Vibe settings
- Drag and drop the
.mlcmodel.cfile into the models folder so that it is alongside the.binfile - Transcribe a file, the first time you use the model it will take longer as it is compiling the model. Every subsequent time it will be faster.
Error of `msvc140.dll` not found โ
Download and install vc_redist.x64.exe
Special link to download models in vibe
You can add links to your websites for letting users download your models easily from your website directly to vibe.
The URL should be like
vibe://download/?url=https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-tiny.bin?download=trueUsage on linux server
To use Vibe on linux server you need to install fake display
sudo apt-get install xvfb -y
Xvfb :1 -screen 0 1024x768x24 &
export DISPLAY=1
wget https://github.com/thewh1teagle/vibe/releases/download/v0.0.1/ggml-medium.bin
wget https://github.com/thewh1teagle/vibe/raw/main/samples/single.wav
vibe --model ggml-medium.bin --file single.wavFile: docs/models.md
๐ Vibe Models ๐
Welcome to the Vibe Models page! Here you can find a curated list of suggested models to use with Vibe. To install a model, use the "Magic Setup" link to open it in Vibe, or copy and paste the direct download link in Vibe settings.
Available Models
๐ฑ Tiny Model
A compact and efficient version, suitable for quick tasks and limited-resource environments.
๐ Magic Setup
๐ฝ Direct Download
๐ฟ Small Model
A small yet capable model for a balance of efficiency and performance.
๐ Magic Setup
๐ฝ Direct Download
โ๏ธ Medium Model
Balances performance and resource usage, making it ideal for most general applications.
๐ Magic Setup
๐ฝ Direct Download
๐ Large Model (v3)
For high accuracy and more computational resources, excels in complex scenarios.
๐ Magic Setup
๐ฝ Direct Download
๐ Large v3 Turbo (Recommended)
๐ Magic Setup
๐ฝ Direct Download
๐ฆ Parakeet TDT 0.6B v3
Supports streaming and is best suited for dictation.
๐ View Model
๐ฝ Download Q4_K_M
โก Nemotron 3.5 ASR Streaming 0.6B
Supports streaming and is best suited for dictation.
๐ View Model
๐ฝ Download Q4_K_M
Models optimised for other languages
โก๏ธ Hebrew (Ivrit)
Specialized for Hebrew (Ivrit) language data, optimized for high speed and accuracy in Hebrew tasks.
๐ Magic Setup (Large v3 Turbo)
๐ฝ Direct Download (Large v3 Turbo)
๐ณ๐ด Norwegian
Optimised for Norwegian by the AI Lab at the National Library of Norway.
๐ Magic Setup (medium)
๐ฝ Direct Download (medium)
๐ Magic Setup (large)
๐ฝ Direct Download (large)
More models of smaller sizes are available via their huggingface download page.
Find the size you want, download the ggml-model.bin file, rename the file, and palce it in vibe's model folder.
๐ธ๐ช Swedish
Optimised for Swedish by the Data Lab at the National Library of Sweden.
๐ Magic Setup (medium)
๐ฝ Direct Download (medium)
๐ Magic Setup (large v3)
๐ฝ Direct Download (large v3)
More models of smaller sizes are available via their huggingface download page.
Find the size you want, download the ggml-model.bin file, rename the file, and palce it in vibe's model folder.
Enjoy exploring these models and enhancing your Vibe! ๐โจ
Want More?
Find additional models here:
Prepare your own models
Convert transformers to GGML
# Setup environment
curl -LsSf https://astral.sh/uv/install.sh | sh
source ~/.bashrc
uv venv
uv pip install torch transformers huggingface_hub
huggingface-cli login --token "token" # https://huggingface.co/settings/tokens
# Convert and upload
git clone https://github.com/openai/whisper
git clone https://github.com/ggml-org/whisper.cpp
git clone https://huggingface.co/ivrit-ai/whisper-large-v3-turbo
uv run ./whisper.cpp/models/convert-h5-to-ggml.py ./whisper-large-v3-turbo/ ./whisper .
uv run huggingface-cli upload --repo-type model whisper-large-v3-turbo-ivrit ./ggml-model.bin ./ggml-model.bin
# Quantize
sudo apt install cmake build-essential -y
cd whisper.cpp
cmake -B build
cmake --build build --config Release
cd ..
./whisper.cpp/build/bin/quantize ggml-model.bin ./ggml-model.int8.bin q8_0 # fp32/fp16/q8_0/q5_0