VoiceConversion
Lectura VoiceConversion
Conversion vocale neuronale francais — meta-package unifie RVC + OpenVoice zero-shot
Presentation
Meta-package de conversion vocale pour le francais, regroupant deux sous-modules specialises :
- VC ZeroShot (
lectura-vc-zeroshot, ~126 Mo) : OpenVoice v2 — conversion vers n’importe quelle voix via un extrait de reference ou un preset, avec blend de voix et decalage de formants - VC Locuteurs (
lectura-vc-locuteurs, ~1.4 Go) : RVC — conversion vers 6 voix francaises pre-entrainees
Le meta-package lectura-vc offre une facade unifiee VCEngine qui delegue automatiquement au bon sous-module.
| Caracteristique | Valeur |
|---|---|
| Voix RVC | 6 speakers (3F + 3M) : Ezwa, Nadine, Siwis, Bernard, Gilles, Zeckou |
| Zero-shot | OpenVoice v2 — n’importe quelle voix avec un preset ou 5-10s de reference |
| Presets | 6 voix pre-calculees (speaker embeddings moyennes sur 100 echantillons) |
| Blend | Melange pondere de presets ou d’extraits audio |
| Modes | rvc, zeroshot, cascade (RVC + OpenVoice), auto |
| Modeles | ~1.52 Go total (126 Mo zero-shot + 1.4 Go RVC) |
| Backends | ONNX Runtime pur (pas de PyTorch) |
Essayer en ligne
La demo utilise l’API Lectura — aucun telechargement necessaire.
Selectionnez un fichier audio ou enregistrez votre voix, puis cliquez sur Convertir.
Exemple de code
from lectura_vc import creer_engine
engine = creer_engine(mode="auto")
# Conversion RVC vers une voix pre-entrainee
audio, sr = engine.convert(
audio="input.wav",
speaker="bernard",
mode="rvc",
)
# Conversion zero-shot avec un preset
audio, sr = engine.convert(
audio="input.wav",
reference="siwis", # preset pre-calcule
mode="zeroshot",
)
# Blend pondere de presets
audio, sr = engine.convert(
audio="input.wav",
reference={"siwis": 0.5, "nadine": 0.3, "ezwa": 0.2},
mode="zeroshot",
)
# Zero-shot depuis un fichier audio de reference
audio, sr = engine.convert(
audio="input.wav",
reference="reference_5s.wav",
mode="zeroshot",
tau=0.3,
)
# Mode cascade : RVC (proxy genre) + OpenVoice (timbre exact)
audio, sr = engine.convert(
audio="input.wav",
speaker="nadine",
reference="cible.wav",
mode="cascade",
)
import soundfile as sf
sf.write("output.wav", audio, sr)
# Presets et speakers disponibles
from lectura_vc import RVC_SPEAKERS, PRESET_SPEAKERS
print(RVC_SPEAKERS)
# ['ezwa', 'nadine', 'bernard', 'gilles', 'zeckou', 'siwis']
print(PRESET_SPEAKERS)
# ['siwis', 'ezwa', 'nadine', 'bernard', 'gilles', 'zeckou']
Architecture
lectura-vc (meta-package)
┌────────────┴────────────┐
v v
lectura-vc-zeroshot lectura-vc-locuteurs
OpenVoice v2 ONNX RVC ONNX (6 voix)
~126 Mo ~1.4 Go
Mode RVC :
Audio source --> HuBERT (features) --> RMVPE (F0)
|
Synthesizer_{speaker} (ONNX)
|
Audio converti
Mode Zero-shot (OpenVoice v2) :
Audio source --> SE extractor --> source embedding
Reference --> SE extractor --> target embedding
(ou preset) |
OpenVoice VC (ONNX)
(audio + src_se + tgt_se + tau)
|
Audio converti
Mode Cascade :
Audio source --> [RVC speaker proxy] --> [OpenVoice timbre] --> Audio converti
Les 10 modeles ONNX :
openvoice_se.onnx(3.2 Mo) — extraction de speaker embeddingopenvoice_vc.onnx(123 Mo) — conversion zero-shothubert.onnx(361 Mo) — extraction de features vocales (RVC)rmvpe.onnx(345 Mo) — estimation de frequence fondamentale (RVC)- 6x
synthesizer_{speaker}.onnx(~116 Mo) — synthesizers RVC par voix
Installation
# Meta-package complet (RVC + zero-shot)
pip install lectura-vc
# Sous-module zero-shot seul (leger, ~126 Mo)
pip install lectura-vc-zeroshot
# Sous-module RVC seul (6 voix, ~1.4 Go)
pip install lectura-vc-locuteurs
Les modules publics utilisent l’API Lectura pour l’inference. Les backends locaux ONNX necessitent les modeles pre-entraines, disponibles sous licence commerciale.
Sous-modules
| Package | Taille modeles | Contenu |
|---|---|---|
lectura-vc-zeroshot |
~126 Mo | OpenVoice v2, presets, blend, trick SR |
lectura-vc-locuteurs |
~1.4 Go | RVC, 6 voix pre-entrainees |
lectura-vc |
— | Meta-package, facade VCEngine unifiee |
Caracteristiques techniques
- RVC ONNX : HuBERT + RMVPE + Synthesizer, 6 voix pre-entrainees
- OpenVoice v2 ONNX : conversion zero-shot, n’importe quelle voix cible
- 6 presets : speaker embeddings pre-calcules (moyennes sur 100 echantillons)
- Blend pondere : melange lineaire de presets ou d’extraits audio
- Trick SR : decalage des formants pour variantes homme/enfant
- 4 modes : rvc, zeroshot, cascade, auto (choix automatique)
- Auto-adaptation : pitch et protection ajustes automatiquement selon le speaker
- ONNX Runtime pur : pas de dependance PyTorch
- Factory
creer_engine(): detection automatique des modeles - Lazy loading : chaque backend charge a la demande
- Python 3.10+ avec type hints complets (PEP-561)
- Licence : AGPL-3.0 (code) — les modeles pre-entraines sont sous licence commerciale