Files
Athena-Deck/VOXCPM2_COMPONENTS.md
T

74 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.