add stt and tts services

This commit is contained in:
Roger Oriol
2026-07-29 00:07:10 +02:00
parent 9eb425f7f5
commit 8c5c884b4d
2 changed files with 190 additions and 0 deletions

View File

@@ -0,0 +1,97 @@
# Wyoming Speech-to-Text (rhasspy/wyoming-whisper).
#
# Exposes the Wyoming protocol over TCP on port 10300 so Home Assistant's
# Wyoming STT integration can stream audio and receive transcriptions. Uses
# faster-whisper under the hood with the language pinned to Catalan (`ca`).
#
# These are lightweight CPU-only pods (no GPU), so they are NOT pinned to the
# NUCBox via nodeSelector — k3s can schedule them on any amd64 node. Models are
# cached in a local-path PVC (`/data`) so they survive pod restarts without
# re-downloading.
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: wyoming-whisper-data
namespace: llamacpp
labels:
app: llamacpp
component: stt
spec:
storageClassName: local-path
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: wyoming-whisper
namespace: llamacpp
labels:
app: llamacpp
component: stt
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app: llamacpp
component: stt
template:
metadata:
labels:
app: llamacpp
component: stt
spec:
nodeSelector:
kubernetes.io/arch: amd64
containers:
- name: wyoming-whisper
image: rhasspy/wyoming-whisper
imagePullPolicy: IfNotPresent
args:
- --uri
- tcp://0.0.0.0:10300
- --language # pin transcription language to Catalan
- ca
- --model # faster-whisper model (tune up to medium for accuracy)
- small
ports:
- name: wyoming
containerPort: 10300
resources:
requests:
cpu: "100m"
memory: "256Mi"
limits:
cpu: "1000m"
memory: "1Gi"
volumeMounts:
- name: data
mountPath: /data
volumes:
- name: data
persistentVolumeClaim:
claimName: wyoming-whisper-data
---
apiVersion: v1
kind: Service
metadata:
name: wyoming-whisper
namespace: llamacpp
labels:
app: llamacpp
component: stt
spec:
type: ClusterIP
selector:
app: llamacpp
component: stt
ports:
- name: wyoming
port: 10300
targetPort: 10300