101 lines
2.4 KiB
YAML
101 lines
2.4 KiB
YAML
# 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:
|
|
# faster-whisper `small` is ~244M params (fp16 ~500 MiB weights)
|
|
# plus CTranslate2 runtime / workspace buffers during decode.
|
|
# 1 GiB OOM-kills during model load; 2 GiB gives headroom.
|
|
requests:
|
|
cpu: "100m"
|
|
memory: "512Mi"
|
|
limits:
|
|
cpu: "1000m"
|
|
memory: "2Gi"
|
|
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
|