Files
cluster-knaster/platform/proxmox/ansible/roles/nex-speech/defaults/main.yml
T
Robert RappandClaude Opus 5.5 afc5fa0360
ci / test (push) Successful in 29s
nex-speech: Sprachdienste für NEX (whisper.cpp CUDA 12 + Piper) als Compose und Ansible-Rolle
- deploy/compose/nex-speech: whisper-server v1.9.4 (sm_52/sm_61, Port 8178, -l de -bs 5
  --convert, tmpfs, Aufwärmen mit 1 s Stille) und OpenAI-kompatibler Piper-Wrapper
  (Port 8179, mp3/opus/aac/flac/pcm gestreamt, wav, PCM 24 kHz mit Rate-Header)
- Host-Netz, damit ufw greift; keine Texte in Logs, kein Access-Log
- Rolle nex-speech + Playbook (nur gpu-pve52): ufw, Modelle mit sha256, Compose bauen/starten
- compose-check um nex-speech erweitert, community.docker in requirements.yml

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 20:41:11 +02:00

50 lines
2.4 KiB
YAML

# NEX-Sprachdienste (Task 6.2): whisper-server (GPU) und Piper (CPU) als Docker Compose.
# Compose-Dateien kommen aus deploy/compose/nex-speech, Modelle nach /srv/models (Modellplatte).
nex_speech_dir: /opt/nex-speech
nex_speech_models_dir: /srv/models
# Firewall nur in der VM (ufw). Die Proxmox-Firewall bleibt aus.
nex_speech_allow_from: 192.168.100.29 # appsrv08 (LiteLLM, Bridge-Netz erscheint mit der Host-IP)
nex_speech_ssh_from: 192.168.100.0/24 # ops hat DHCP, deshalb das ganze Netz für SSH
nex_speech_stt_port: 8178
nex_speech_tts_port: 8179
# Werte für .env (siehe deploy/compose/nex-speech/.env.example)
nex_speech_env:
MODELS_DIR: "{{ nex_speech_models_dir }}"
STT_PORT: "{{ nex_speech_stt_port }}"
STT_GPU: "0"
WHISPER_TAG: v1.9.4
WHISPER_COMMIT: 927cfce34f31707e17f2bff35c349632fb9e2c3a
CUDA_ARCHS: "52;61"
WHISPER_MODEL_FILE: ggml-large-v3-turbo.bin
WHISPER_BEAM_SIZE: "5"
WHISPER_EXTRA_ARGS: ""
TTS_PORT: "{{ nex_speech_tts_port }}"
PIPER_TTS_VERSION: 1.8.0
PIPER_VOICES: de_DE-thorsten-high,de_DE-kerstin-low
PIPER_DEFAULT_VOICE: de_DE-thorsten-high
PCM_SAMPLE_RATE: "24000"
TTS_MAX_CHARS: "5000"
TTS_PARALLEL: "2"
# Modelle mit fester Revision und Prüfsumme (sha256 laut Hugging Face, LFS-OID bzw. nachgerechnet)
_hf_whisper: https://huggingface.co/ggerganov/whisper.cpp/resolve/5359861c739e955e79d9a303bcbc70fb988958b1
_hf_piper: https://huggingface.co/rhasspy/piper-voices/resolve/c10ece1aade47bb51c153c893d14e5bf8e5b7117/de/de_DE
nex_speech_models:
- dest: whisper/ggml-large-v3-turbo.bin
url: "{{ _hf_whisper }}/ggml-large-v3-turbo.bin"
checksum: sha256:1fc70f774d38eb169993ac391eea357ef47c88757ef72ee5943879b7e8e2bc69
- dest: piper/de_DE-thorsten-high.onnx
url: "{{ _hf_piper }}/thorsten/high/de_DE-thorsten-high.onnx"
checksum: sha256:9df1c43c61149ef9b39e618e2b861fbe41e1fcea9390b2dac62e8761573ea4f1
- dest: piper/de_DE-thorsten-high.onnx.json
url: "{{ _hf_piper }}/thorsten/high/de_DE-thorsten-high.onnx.json"
checksum: sha256:6de734444e4c3f9e33b7ebe2746dbc19b71e85f613e79c65acf623200b99a76a
- dest: piper/de_DE-kerstin-low.onnx
url: "{{ _hf_piper }}/kerstin/low/de_DE-kerstin-low.onnx"
checksum: sha256:d352a7641892cebf2903859af94e9ba81a141110215fe3943bcda7f7da401b7a
- dest: piper/de_DE-kerstin-low.onnx.json
url: "{{ _hf_piper }}/kerstin/low/de_DE-kerstin-low.onnx.json"
checksum: sha256:56e708556b7b9b7a53c4f8957e021421e69f11a600962bba554cffbe72cf2d47