An elegant, all-in-one AI voice dataset creator custom-tailored for Windows. Search any character, celebrity, or voice actor to automatically download, clean, segment, transcribe, and score high-quality voice datasets. Output formats are ready-to-train for Beatrice V2, RVC, XTTS, StyleTTS2, and Tortoise.
- π Universal Search β Instantly scan anime characters, celebrities, voice actors, game characters, and musicians.
- π Multi-Source Extraction β Auto-scrape audio from HuggingFace Hub, YouTube, Bilibili, Nicovideo, OpenSLR, and Archive.org.
- π§ Advanced ML Pipeline:
- Vocal Separation: Demucs (htdemucs_ft) isolates the voice from background music/noise.
- Speaker Diarization: Pyannote 3.1 separates and groups distinct speakers.
- Voice Activity Detection: Silero VAD trims silences and splits audio into natural speech chunks.
- Transcription: Whisper automatically transcribes audio in Japanese, English, Chinese, and more.
- π Quality Scoring β Composite 0β100 quality scoring based on Signal-to-Noise Ratio (SNR), spectral cleanliness, duration, clipping, and silence ratios.
- πΎ Export Formats β One-click export to standard formats:
- LJSpeech (WAVs +
metadata.csvfor Beatrice, StyleTTS2, XTTS) - RVC (WAVs grouped by speaker +
filelist.txtfor RVC/Diff-SVC) - Custom JSON (Raw files + full metadata detailing clip scores, sources, and word-level timestamps)
- LJSpeech (WAVs +
- β‘ Universal Converter β Instantly convert any batch of audio files (WAV, MP3, FLAC, OGG, OPUS, M4A) with customizable sample rate, channel layout, and bit depth.
- π Real-Time Web Console β Monitor downloads, ML stages, audio waveforms, transcriptions, and quality graphs live over WebSockets.
This studio is specifically optimized for Windows execution:
- NVIDIA CUDA GPU Acceleration β Automatically detects NVIDIA GPUs (
nvidia-smi) and configures PyTorch with CUDA 12.1 / 11.8 for fast model execution (Demucs, Pyannote, Silero VAD, Whisper). - Win32 Celery Solo Execution Pool β Configured with
-P solopool mode on Windows to bypass Windows process fork limitations and prevent multi-process memory conflicts with PyTorch/CUDA. - One-Click Batch & PowerShell Launchers β Includes native
setup.bat/start.batand PowerShellsetup.ps1/start.ps1for easy one-click installation and execution.
graph TD
UI["Browser UI (React / Vite)"] <-->|HTTP / WebSockets| API["FastAPI Server"]
API <-->|Tasks & Status| Redis[("Redis Broker")]
Redis <-->|solo-pool| Worker["Celery ML Worker (CUDA)"]
subgraph Scraping & Retrieval
Worker --> Hub["HuggingFace Hub"]
Worker --> YT["YouTube Scraper"]
Worker --> BB["Bilibili Scraper"]
end
subgraph Audio Processing Pipeline
Worker -->|Step 1| Demucs["Demucs: Vocal Separation"]
Demucs -->|Step 2| Pyannote["Pyannote 3.1: Diarization"]
Pyannote -->|Step 3| Silero["Silero VAD: Voice Activity Detection"]
Silero -->|Step 4| Whisper["Whisper: Audio Transcription"]
Whisper -->|Step 5| Score["Composite Quality Scorer"]
end
Score -->|Saves SQLite| DB[("SQLite DB")]
Score -->|Exports| Out["LJSpeech / RVC / Parquet"]
- Python 3.11 or 3.12 (Download Python) β Ensure "Add Python to PATH" is checked during installation.
- Node.js 18+ (Download Node.js)
- FFmpeg (Required for audio processing):
winget install Gyan.FFmpeg
- Redis Server or Memurai:
winget install Redis-Windows.Redis-Windows
Double-click setup.bat or run:
setup.batRight-click setup.ps1 and select Run with PowerShell, or run:
.\setup.ps1chmod +x setup.sh start.sh
./setup.shPyannote Speaker Diarization requires accepting user agreements and generating a HuggingFace Token:
- Visit pyannote/speaker-diarization-3.1 and accept the terms.
- Visit pyannote/segmentation-3.0 and accept the terms.
- Create a HuggingFace User Access Token at hf.co/settings/tokens.
- Paste the token into
voiceforge-backend/.env:HF_TOKEN=your_token_here
Double-click start.bat or run:
start.bat.\start.ps1./start.sh- Frontend Console: http://localhost:5173
- FastAPI Backend: http://localhost:8001
- Interactive OpenAPI Documentation: http://localhost:8001/docs
Start pulling and processing a target character's voice:
curl -X POST http://localhost:8001/api/jobs/create \
-H "Content-Type: application/json" \
-d '{
"query": "Gojo Satoru",
"query_type": "anime",
"language": "jp",
"options": {
"target_duration_minutes": 30,
"quality_threshold": 65,
"output_format": "ljspeech"
}
}'See matching sources and duration estimates before processing:
curl -X POST http://localhost:8001/api/search/preview \
-H "Content-Type: application/json" \
-d '{"query": "Kobe Bryant", "query_type": "celebrity", "language": "en"}'Normalize a folder of miscellaneous audio format files to studio format:
curl -X POST http://localhost:8001/api/convert \
-F "files=@vocals.mp3" \
-F "sample_rate=22050" \
-F "channels=mono"Outputs are structured under voiceforge-backend/static/outputs/:
dataset_ljspeech/
βββ metadata.csv # Filename | Raw Transcript | Normalized Transcript
βββ wavs/
βββ 0001.wav # 22.05kHz, Mono, 16-bit PCM WAV
βββ 0002.wav
βββ ...
dataset_rvc/
βββ filelist.txt # relative/path/to/audio.wav | speaker_id
βββ speaker_0/
βββ 0001.wav
βββ 0002.wav
βββ ...
Adjust parameters in voiceforge-backend/.env for customized runs:
| Variable | Default | Description |
|---|---|---|
HF_TOKEN |
None | HuggingFace Token (required for Pyannote model initialization) |
WHISPER_MODEL |
large-v3 |
Size of whisper model to use (tiny, base, small, medium, large-v3) |
USE_GPU |
auto |
Auto-detect GPU (auto, cuda, cpu, mps) |
DEFAULT_QUALITY_THRESHOLD |
60 |
Minimum composite score (0-100) to keep clip |
DEFAULT_MIN_CLIP_S |
1.5 |
Min clip length in seconds |
DEFAULT_MAX_CLIP_S |
25.0 |
Max clip length in seconds |
DEFAULT_MIN_SNR_DB |
15.0 |
Minimum Signal-to-Noise ratio for quality filter |
.
βββ frontend/ # React + Vite + Tailwind CSS WebUI
βββ voiceforge-backend/ # FastAPI + Celery + ML Pipelines
β βββ api/ # Route definitions & websocket handlers
β βββ processing/ # Demucs, Pyannote, Silero & Whisper integrations
β βββ sources/ # Scrapers for HF, YouTube, Bilibili, etc.
β βββ workers/ # Celery task definitions
βββ setup.bat # Windows Batch setup script
βββ start.bat # Windows Batch unified startup runner
βββ setup.ps1 # Windows PowerShell setup script
βββ start.ps1 # Windows PowerShell startup runner
βββ setup.sh # Bash setup installer (Git Bash / Linux / macOS)
βββ start.sh # Bash unified startup runner
βββ LICENSE # License terms (MIT)
βββ README.md # You are here
Verify backend services and pipeline functions:
cd voiceforge-backend
venv\Scripts\activate
pytest tests/ -vThis project is licensed under the MIT License.
Audio downloaded using scrapers is sourced from publicly available domains. Users must ensure compliance with licensing terms of individual websites and copyright guidelines before utilizing datasets for commercial models.


