74 lines
4.3 KiB
Markdown
74 lines
4.3 KiB
Markdown
# VoxCPM2: Komponentenpaket und Ausführungsstatus
|
||
|
||
Für `openbmb/VoxCPM2/model.safetensors` besitzt Deck ein eigenes Komponentenrezept:
|
||
|
||
- `audiovae.pth`: Audio-VAE-Gewichte.
|
||
- `config.json`: Modellkonfiguration einschließlich Audio-VAE-Architektur.
|
||
- `tokenizer.json`: Text-Tokenizer/Wortschatz.
|
||
- `tokenizer_config.json`: Einstellungen des Text-Tokenizers.
|
||
- `special_tokens_map.json`: Spezialtokens.
|
||
|
||
Diese Dateien müssen dieselbe feste Repository-Revision wie die Hauptgewichte
|
||
verwenden. Vorhandene Downloads werden wiederverwendet. Die zwei Tokenizer-Dateien
|
||
sind verschiedene Teile eines Pakets, keine doppelten Modelle. Separater Textencoder
|
||
und Vision-Projektor werden nicht benötigt. Der optionale externe Denoiser ist
|
||
nicht Bestandteil dieses Grundpakets.
|
||
|
||
Das Dateirezept ist anhand des [offiziellen Modells](https://huggingface.co/openbmb/VoxCPM2)
|
||
und des [originalen Loaders](https://github.com/OpenBMB/VoxCPM/blob/main/src/voxcpm/model/voxcpm2.py)
|
||
geprüft. Es ist keine Zusage getesteter Inferenz: **VoxCPM2 wird durch den eigenen Deck-Worker ausgeführt.** Eine vorhandene audio.cpp- oder
|
||
llama.cpp-Installation ersetzt diese Anbindung nicht. Ein Profil wird erst nach installierter Laufzeit und vollständiger Komponenten-Zuordnung ausführbar.
|
||
|
||
Der Katalog erlaubt `.pth` ausschließlich für die exakt benannte offizielle
|
||
Audio-VAE-Datei dieses Repositorys. Der Download führt keine Datei aus. Das spätere
|
||
Laden muss wie im Original mit `weights_only=True` erfolgen. Kein automatisches
|
||
Ausführen von Python-Dateien aus Modell-Repositories.
|
||
|
||
Die Bibliothek gruppiert Text-Tokenizer gesondert; sie erscheinen nicht zusätzlich
|
||
als allgemeine Konfiguration. „Alle fehlenden Dateien herunterladen“ prüft zunächst,
|
||
ob für alle Pflichtkomponenten eine herunterladbare Datei angeboten wird. Erst danach
|
||
werden Downloads eingereiht; bei einem späteren Fehler zeigt Deck bereits eingereihte
|
||
Dateien an. Manuelle, ungeprüfte Listen erhalten weiterhin keinen Sammeldownload.
|
||
|
||
## Laufzeit über die Oberfläche installieren
|
||
|
||
Unter **Laufzeiten → VoxCPM** oder im Komponentenbereich über
|
||
**Passende Laufzeit installieren** lässt sich das offizielle Paket VoxCPM 2.0.3
|
||
in einer eigenen Python-Umgebung installieren und abbrechen. Die Installation
|
||
prüft CUDA-PyTorch, Paketkonsistenz und den VoxCPM2-Loader, lädt aber weder
|
||
Modellgewichte noch ein Modell in die GPUs. Vorhandene CUDA-Pakete der
|
||
Bildlaufzeit werden lesend wiederverwendet. Versionen stehen in
|
||
`deploy/voxcpm-requirements.lock`.
|
||
|
||
Backup exportiert den Installationswunsch und die Version; Restore installiert
|
||
diese Laufzeit erneut. Eine installierte Laufzeit allein genügt nicht: Die fünf Komponenten müssen dem Profil zugeordnet sein.
|
||
|
||
## Generierung und Stimmklonen
|
||
|
||
Unter **Stimmwerkzeuge → Testen**: VoxCPM2-Profil wählen, Text eingeben, GPU
|
||
(RTX 5080 oder RTX 3060), Guidance, Schritte und Seed einstellen. Optional eine
|
||
PCM-16-WAV-Referenz mit 1–30 Sekunden und höchstens 8 MiB hochladen.
|
||
Die Referenz wird nach dem Auftrag gelöscht; der Text wird nur über stdin
|
||
weitergegeben. Bibliotheksgewichte werden in einem temporären Paket verlinkt,
|
||
nicht kopiert. Der Worker lädt ausschließlich lokale Dateien, ohne Denoiser
|
||
oder zusätzliche Downloads, auf die ausdrücklich ausgewählte CUDA-GPU.
|
||
|
||
Im LLM-Modus reserviert Deck die GPUs exklusiv, entlädt sein LLM/TTS und
|
||
beendet VoxCPM2 nach Abschluss, Abbruch oder Fehler. Andere Dienste werden
|
||
nicht gestoppt. Bei nächster Chat-Anfrage wird das LLM wieder geladen.
|
||
|
||
Interne API (Oberflächen-Anmeldung und Same-Origin-Steuerheader erforderlich):
|
||
- `GET /api/v1/voice`: Job und Laufzeitstatus.
|
||
- `POST /api/v1/voice/start`: JSON mit `profile_id`, `text`, optional `device`
|
||
(`5080`/`3060`), `cfg`, `steps`, `seed`; alternativ Multipart mit denselben
|
||
Feldern und optional `file` als WAV-Referenz.
|
||
- `POST /api/v1/voice/cancel`: leeres JSON.
|
||
- `GET /api/v1/voice/audio?id=...`: fertiges WAV.
|
||
|
||
Ein unter Profile freigegebenes VoxCPM2-Profil steht zusätzlich unter
|
||
`GET /v1/audio/speech/models` und `POST /v1/audio/speech` bereit:
|
||
`model=<Profilname>`, `input=<Text>`, `voice=default`, `response_format=wav`,
|
||
`speed=1`. Referenz-Stimmklonen verwendet derzeit den internen Multipart-Endpunkt.
|
||
Backups sichern Profile, Komponenten und die wiederherstellbare Laufzeitversion,
|
||
keine Testtexte oder Audiodateien.
|