Initial: VoiceStudio A/B-Test-Stack (isoliert, gegen chatterbox-tts auf node2)

This commit is contained in:
Trulla 2026-09-25 14:13:34 +02:00
commit b99a8df4e5
5 changed files with 66 additions and 0 deletions

7
.env.enc Normal file
View file

@ -0,0 +1,7 @@
OMNIVOICE_API_KEY=ENC[AES256_GCM,data:IJjs/ZWwaByfKyuRtqmrX2OqouifYw/yhNalQRYG/OsjNIxFUXsoXaG9Rw==,iv:N6oCFvwBZXnyvgpkNt5PFqLNqXRi89PcRGMdpJh4vOg=,tag:ouDJk5rqHd4vQhcfheTrnw==,type:str]
sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0emkrckowMEpvcFYvQ0hB\nQlJ3d3N6VkV3R0oxRHNuR0RxRXc0L0xwdEI0ClRHQ0RRbkNGVUoxR09JM0pwM2hZ\nSXl4c2R4bjZFbHp6Mko3ckZIZ3B3YzQKLS0tIFNSaFVyQzNZd1NYcUdPbHRpWGNu\nWUgwR1dDcGxwdHJpaThlUDI1NGZlYmMKaTO2fGkbCJgJyi3T3Cf2baFQYHsPuw1H\nPE1sI0+O0c3anJlw5oSXiz/+1CSWeS12rQ4wGbZhXyjBZULFEhKo/A==\n-----END AGE ENCRYPTED FILE-----\n
sops_age__list_0__map_recipient=age1z8gak2l4h0vpcnhtcdxmem2u9h2n54vuksk8ys82609qtzampuvqh50wdr
sops_lastmodified=2026-09-25T12:13:34Z
sops_mac=ENC[AES256_GCM,data:Tq90AeGPT4fttY4/ixtRUEn1Q748AZk7Ud/SKbVYC2uvdpf/BulohSQIuMDRqaqBnadOEKWOHyiz+upx6bLKkxV8VWgtadhGJL7O/yzAbQSY9mGJGmhWaeXrF13APYSIq4t1RTC3iVkfuiEhyF5uUv0udUx+YCZe0IzVugMWyz4=,iv:sLCHI0NuwNFE6rblIy6uTtcu5iON8ejUtpKBubLA93c=,tag:J7lUw2C2z6XrCEoxND8Kgg==,type:str]
sops_unencrypted_suffix=_unencrypted
sops_version=3.12.2

5
.gitignore vendored Normal file
View file

@ -0,0 +1,5 @@
# Secrets - nur verschlüsselt committen
.env
.env.*
!.env.enc
!.env.*.enc

3
.sops.yaml Normal file
View file

@ -0,0 +1,3 @@
creation_rules:
- path_regex: \.env.*$
age: "age1z8gak2l4h0vpcnhtcdxmem2u9h2n54vuksk8ys82609qtzampuvqh50wdr"

25
README.md Normal file
View file

@ -0,0 +1,25 @@
# VoiceStudio (A/B-Test gegen Chatterbox)
Isolierter Test-Stack, komplett getrennt von `tdarr`/`chatterbox-tts` (kein
gemeinsamer Container-Name, kein gemeinsames /app-config/).
- **Repo:** eigenständig, NICHT Teil des tdarr-Stacks
- **Node:** node2 (10.2.1.104) — GPU-Sharing mit chatterbox-tts/fileflows/tdarr,
daher A/B statt Parallelbetrieb unter Last empfohlen
- **Port:** 3900 (Web-UI im Browser, kein Electron nötig)
- **Volumes:** ausschließlich unter `/app-config/voicestudio/`
- **Deploy:** über Dockhand Git-Stack-Resync (env=6, node2), NICHT `docker run`
## Setup
1. `.env` aus `.env.enc` entschlüsseln: `sops -d .env.enc > .env`
2. Dockhand: Git-Stack für dieses Repo unter env=6 registrieren
3. Sync auslösen, Container startet, erster Start lädt ~2.4GB Modelle
4. Web-UI: `http://10.2.1.104:3900` — API-Key aus `.env` beim ersten Login eingeben
## Vergleich mit Chatterbox
Referenzstimme `deep_thought.mp3` in beiden Systemen testen, Ergebnis
subjektiv/objektiv vergleichen bevor Chatterbox ersetzt wird. Chatterbox
bleibt bis auf Weiteres produktiv (Butler-Route `/tts/speak` zeigt weiter
auf 10.2.1.104:8004).

26
compose.yaml Normal file
View file

@ -0,0 +1,26 @@
services:
voicestudio:
image: ghcr.io/debpalash/omnivoice-studio:latest
container_name: voicestudio
restart: unless-stopped
ports:
- "3900:3900"
environment:
- OMNIVOICE_API_KEY=${OMNIVOICE_API_KEY}
- OMNIVOICE_SERVER_MODE=1
- TZ=Europe/Berlin
- NVIDIA_VISIBLE_DEVICES=all
- NVIDIA_DRIVER_CAPABILITIES=all
volumes:
- /app-config/voicestudio/data:/app/omnivoice_data
- /app-config/voicestudio/hf_cache:/root/.cache/huggingface
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
labels:
- "dockhand.stack=voicestudio"
- "dockhand.service=voicestudio"