# 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