Skip to content

Latest commit

ย 

History

28 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Project Beatrice V2 Logo

๐ŸŽ™๏ธ Project Beatrice V2

Real-Time AI Voice Changer for macOS

Version macOS Electron Python License

Morph your voice in real-time with AI-powered neural voice conversion โ€” powered by the Beatrice 2.0.0 DSP engine, achieving sub-10ms latency across 112+ built-in voices.

๐Ÿ“ฅ Download v2.0.0 ยท ๐ŸชŸ Windows Version ยท ๐Ÿ› Report Bug


โœจ What's New in v2.0.0

๐Ÿ”ง Fix Description
๐Ÿ—‚๏ธ Writable Path Migration Custom models & soundboard audio now stored in OS user data โ€” fully compatible with packaged .app bundles
๐Ÿ–ผ๏ธ Image Loading Fixed Speaker portraits now resolve correctly via file:// URLs in both dev and production environments
๐Ÿ“ฆ 50MB Smaller Installer Eliminated duplicate model packaging; assets live exclusively in app.asar.unpacked
๐Ÿง  Custom Model Loading Fix Python backend UnboundLocalError crash on custom model load is now resolved
๐Ÿ”„ Automatic Model Migration Legacy custom_models/ in project root auto-migrated to userData on startup

๐Ÿš€ Features

๐ŸŽค Voice Conversion

  • 112+ voices across 3 built-in model sets
  • Dynamic model switching at runtime โ€” no restart required
  • Real-time DSP pipeline at 16 kHz / ~10ms latency
  • Pitch shift: โˆ’12 to +12 semitones
  • Formant shift: โˆ’1.5 to +1.5
  • Noise gate for background suppression
  • Import custom voice models from ZIP archives

๐Ÿ”Š Soundboard

  • Upload WAV, MP3, FLAC and more
  • One-click playback through your output device
  • Hear Yourself monitoring mode
  • Inline rename & delete
  • Drag-and-drop support
  • Custom cover image per sound

๐Ÿ”ง Audio Routing

  • Independent Input, Output, and Monitor device selection
  • PortAudio-backed device enumeration
  • Real-time dB input/output level meters
  • Works seamlessly with virtual audio devices (BlackHole, VB-Cable)

๐ŸŽจ Themes & Languages

  • 6 handcrafted themes โ€” Obsidian, Midnight, Teal, Amber, Rose, Cyberpunk
  • Light & Dark mode per theme
  • 3 languages โ€” English, Japanese, Chinese
  • Beautiful animated speaker selection grid

๐ŸŽญ Voice Models

Model Voices Description
๐ŸŽŒ JVS Corpus 100 Japanese Voice Corpus โ€” broad range of voice styles
โญ Official Model 1 4 Tsukuyomichan, Tokinashigure, OLUNE, Fukuyomichan
๐Ÿ“ผ Classic Old TTS 8 Retro synthesized voice styles
๐Ÿ”ง Custom Models โˆž Import your own Beatrice-compatible paraphernalia ZIP

๐Ÿ“ธ Screenshots

Voice Models โ€” JVS Corpus (100 voices) with category filters
๐ŸŽค Voice Models โ€” Browse 100+ JVS voices with animated avatars and category filters

Soundboard โ€” Upload and trigger audio clips
๐Ÿ”Š Soundboard โ€” Upload audio clips and trigger them with a single click

Library โ€” Featured presets and Wikimedia sound effects (Japanese UI)
๐Ÿ“š Library โ€” 100+ curated sound presets with multilingual UI support (Japanese shown)

image
โš™๏ธ Settings โ€” 6 handcrafted themes, light/dark mode, and 3 languages (Chinese shown)


๐Ÿ“ฅ Installation

Option A โ€” Download the DMG (Recommended)

Download the pre-built installer for your Mac from the Releases page:

Architecture File
๐ŸŽ Apple Silicon (M1/M2/M3/M4) Beatrice.Voice.Changer-2.0.0-arm64.dmg
๐Ÿ’ป Intel Mac Beatrice.Voice.Changer-2.0.0.dmg

First Launch on macOS: If macOS blocks the app, go to System Settings โ†’ Privacy & Security and click Open Anyway.

Option B โ€” Build from Source

# 1. Clone the repository
git clone https://github.com/satiricalguru/Beatrice-voicechanger.git
cd Beatrice-voicechanger

# 2. Install Python audio dependencies
pip3 install -r requirements.txt

# 3. Install Node dependencies
npm install

# 4. Launch in development mode
npm run dev

# 5. (Optional) Build a production .dmg installer
npm run dist

๐ŸŽ›๏ธ How to Use

First-Time Setup โ€” Virtual Microphone

To route your morphed voice into apps like Discord, Zoom, or OBS, you need a virtual audio driver:

Platform Tool Download
๐ŸŽ macOS BlackHole 2ch existential.audio/blackhole
๐ŸชŸ Windows VB-Cable vb-audio.com/Cable

Step-by-step:

  1. Install your virtual audio driver (e.g., BlackHole 2ch)
  2. Open Project Beatrice and set your physical mic as the Input Microphone
  3. Set the Output Device to the virtual audio driver (e.g., BlackHole 2ch)
  4. In Discord/Zoom/OBS, set the Input to BlackHole 2ch
  5. Toggle the power button to go LIVE ๐ŸŸข
  6. Enable Hear Yourself and select your headphones to monitor in real-time

๐Ÿ’ก Tip: Set the Noise Gate to 0.000 for the smoothest, most natural voice conversion.


๐ŸŽฎ Controls Reference

Control Description
โป Power Button Toggle LIVE (converting) โ†” BYPASSED (raw mic)
๐ŸŽ™๏ธ Input Microphone Select your physical mic
๐Ÿ”ˆ Output Device Where the converted voice is sent
๐Ÿ‘‚ Hear Yourself Route output to a monitor device for local preview
๐Ÿšช Noise Gate Silence input below this threshold (0.000 = off)
๐ŸŽต Pitch Shift Raise or lower pitch by ยฑ12 semitones
๐Ÿ”  Formant Shift Modify vocal tract character (ยฑ1.5)
๐Ÿ”Š Output Volume Final output gain (0โ€“200%)

๐Ÿงฉ Custom Voice Models

You can import custom Beatrice-compatible voice models:

  1. In the Voice Model dropdown, select Upload Custom Model
  2. Choose a ZIP file containing a valid beatrice_paraphernalia_* folder
  3. The model will be extracted to your user data directory and appear in the dropdown immediately

Custom model folder structure:

my_model/
โ”œโ”€โ”€ phone_extractor.bin
โ”œโ”€โ”€ pitch_estimator.bin
โ”œโ”€โ”€ waveform_generator.bin
โ”œโ”€โ”€ embedding_setter.bin
โ”œโ”€โ”€ speaker_embeddings.bin
โ”œโ”€โ”€ model.toml
โ””โ”€โ”€ avatar.png         โ† optional portrait image

๐Ÿ—๏ธ Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                  Electron UI                     โ”‚
โ”‚       index.html + index.css + renderer.js       โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”‚
โ”‚  โ”‚  Voice Grid      โ”‚  โ”‚  Soundboard        โ”‚    โ”‚
โ”‚  โ”‚  (112+ voices)   โ”‚  โ”‚  (upload โ†’ play)   โ”‚    โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                       โ”‚ HTTP REST (127.0.0.1:5005)
                       โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚              Python Audio Backend                โ”‚
โ”‚               beatrice_audio.py                  โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚  PortAudio I/O (sounddevice)               โ”‚  โ”‚
โ”‚  โ”‚  Beatrice VST3 ctypes wrapper              โ”‚  โ”‚
โ”‚  โ”‚  Phone Extractor โ†’ Pitch โ†’ Waveform DSP    โ”‚  โ”‚
โ”‚  โ”‚  Soundboard playback (soundfile)           โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                       โ”‚ ctypes CDLL
                       โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚        Beatrice 2.0.0-rc.2 VST3 Library          โ”‚
โ”‚        + beatrice_paraphernalia_*/               โ”‚
โ”‚          (model weights & speaker embeddings)    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ“ Project Structure

Beatrice-voicechanger/
โ”œโ”€โ”€ main.js                              # Electron main process + IPC handlers
โ”œโ”€โ”€ renderer.js                          # Frontend logic (voices, soundboard, settings)
โ”œโ”€โ”€ index.html                           # UI layout
โ”œโ”€โ”€ index.css                            # Design system (6 themes ร— light/dark)
โ”œโ”€โ”€ beatrice_audio.py                    # Python audio backend + REST API
โ”œโ”€โ”€ beatrice_loader.py                   # VST3 binary loader + ctypes bindings
โ”œโ”€โ”€ package.json                         # Node/Electron config
โ”œโ”€โ”€ requirements.txt                     # Python dependencies
โ”œโ”€โ”€ icon.png                             # App icon
โ”œโ”€โ”€ assets/                              # Project assets (logo, etc.)
โ”œโ”€โ”€ custom_models/                       # Your imported custom voice models
โ”œโ”€โ”€ soundboard_audio/                    # Uploaded soundboard audio files
โ”œโ”€โ”€ beatrice_2.0.0-rc.2.vst3/           # Native Beatrice DSP shared library
โ”œโ”€โ”€ beatrice_paraphernalia_jvs/          # JVS Corpus (100 voices)
โ”œโ”€โ”€ beatrice_paraphernalia_official_1/   # Official Model 1 (4 voices)
โ””โ”€โ”€ beatrice_paraphernalia_old_tts/      # Classic Old TTS (8 voices)

โš™๏ธ Requirements

Dependency Version Purpose
macOS 12 Monterey+ Apple Silicon or Intel
Node.js 18+ Electron shell
Python 3.9+ Audio backend
sounddevice 0.4.6+ PortAudio I/O
numpy 1.24+ DSP math
soundfile 0.12+ Audio file decoding

Note: The Beatrice VST3 library is a macOS-only signed binary. For Windows support, see the BeatriceVST-voicechanger repository.


๐Ÿ”Œ API Reference

The Python backend exposes a local REST API on http://127.0.0.1:5005:

Endpoint Method Description
/status GET Current state: bypass, meters, devices, parameters
/devices GET List all available PortAudio devices
/set_config?<param>=<value> GET Update a real-time parameter
/set_model?model=<name> GET Switch active model (jvs, official_1, old_tts, custom:<name>)
/play_sound?file_path=<path>&hear_yourself=<bool> GET Play a soundboard audio file
/stop_sound GET Stop current soundboard playback

/set_config parameters: bypass ยท speaker_index ยท pitch_shift ยท formant_shift ยท volume ยท gate_threshold ยท input_device_id ยท output_device_id ยท monitor_device_id ยท hear_yourself


๐Ÿ™ Credits & Acknowledgements


๐Ÿ“œ License

MIT License โ€” Copyright ยฉ 2026 Jatin Pandey

The voice changer UI and Python backend are MIT-licensed. The Beatrice DSP engine is licensed separately under the prj-beatrice project.

โš ๏ธ JVS Corpus: Speaker data is licensed for non-commercial use only. See LICENSE and Contributors.txt for full details.


Built with โค๏ธ using Electron ยท Python ยท Beatrice DSP ยท PortAudio ยท JVS Corpus

โญ If you enjoy Project Beatrice, please give it a star on GitHub!

About

๐ŸŽ™๏ธ Real-time Beatrice voice changer for Windows featuring fast, lightweight, low-latency voice conversion running locally

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages