Files
k3s-cluster/llamacpp/deployment-tts.yaml
2026-07-29 00:07:10 +02:00

94 lines
2.0 KiB
YAML

# Wyoming Text-to-Speech (rhasspy/wyoming-piper).
#
# Exposes the Wyoming protocol over TCP on port 10200 so Home Assistant's
# Wyoming TTS integration can send text and receive synthesized audio. Uses
# Piper under the hood with the Catalan voice `ca_ES-upc_ona-medium`.
#
# Lightweight CPU-only pod (no GPU), not pinned to the NUCBox. The voice is
# cached in a local-path PVC (`/data`) so it survives pod restarts.
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: wyoming-piper-data
namespace: llamacpp
labels:
app: llamacpp
component: tts
spec:
storageClassName: local-path
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: wyoming-piper
namespace: llamacpp
labels:
app: llamacpp
component: tts
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app: llamacpp
component: tts
template:
metadata:
labels:
app: llamacpp
component: tts
spec:
nodeSelector:
kubernetes.io/arch: amd64
containers:
- name: wyoming-piper
image: rhasspy/wyoming-piper
imagePullPolicy: IfNotPresent
args:
- --uri
- tcp://0.0.0.0:10200
- --voice # Catalan (Spain) medium-quality UPC Ona voice
- ca_ES-upc_ona-medium
ports:
- name: wyoming
containerPort: 10200
resources:
requests:
cpu: "100m"
memory: "128Mi"
limits:
cpu: "500m"
memory: "512Mi"
volumeMounts:
- name: data
mountPath: /data
volumes:
- name: data
persistentVolumeClaim:
claimName: wyoming-piper-data
---
apiVersion: v1
kind: Service
metadata:
name: wyoming-piper
namespace: llamacpp
labels:
app: llamacpp
component: tts
spec:
type: ClusterIP
selector:
app: llamacpp
component: tts
ports:
- name: wyoming
port: 10200
targetPort: 10200