Add OpenAI-compatible voice servers (faster-whisper + Kokoro)
Path B from VoiceModels.md — adds two new compose stacks alongside the Wyoming pair so OpenWebUI/Conduit get voice without a Wyoming-shim: - compose/faster-whisper.yml — fedirz/faster-whisper-server CPU image, large-v3-turbo by default, OpenAI /v1/audio/transcriptions on :8001. Built-in web UI for ad-hoc transcription. - compose/kokoro.yml — ghcr.io/remsky/kokoro-fastapi-cpu, Kokoro-82M, OpenAI /v1/audio/speech on :8880. Both run alongside (not instead of) Wyoming Whisper + Piper — Wyoming keeps serving HA Assist, OpenAI-API serves OpenWebUI / Conduit. Memory budget on Strix Halo accommodates everything plus Qwen3-Coder loaded concurrently with plenty of headroom. Homepage gets dedicated tiles for both. README documents the OpenWebUI Audio configuration that wires the new endpoints. Conduit inherits voice via OpenWebUI without app-side setup. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
30
pyinfra/framework/compose/faster-whisper.yml
Normal file
30
pyinfra/framework/compose/faster-whisper.yml
Normal file
@@ -0,0 +1,30 @@
|
||||
# faster-whisper-server — OpenAI-compatible STT.
|
||||
# https://github.com/fedirz/faster-whisper-server
|
||||
#
|
||||
# Speaks `/v1/audio/transcriptions` (and `/v1/audio/translations`) so any
|
||||
# client that talks to OpenAI's audio API works without changes —
|
||||
# OpenWebUI, Conduit (via OpenWebUI), arbitrary scripts.
|
||||
#
|
||||
# Runs alongside (not instead of) Wyoming Whisper. Wyoming stays for
|
||||
# Home Assistant Assist; this server is for OpenAI-API consumers.
|
||||
#
|
||||
# CPU mode: Strix Halo's 16 Zen 5 cores comfortably real-time even on
|
||||
# large-v3-turbo. CTranslate2's ROCm support for gfx1151 is unreliable;
|
||||
# CPU sidesteps that.
|
||||
services:
|
||||
faster-whisper:
|
||||
image: fedirz/faster-whisper-server:latest-cpu
|
||||
container_name: faster-whisper
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "8001:8000"
|
||||
environment:
|
||||
# Default model loaded on first request. Auto-downloads on use.
|
||||
WHISPER__MODEL: Systran/faster-whisper-large-v3-turbo
|
||||
WHISPER__INFERENCE_DEVICE: cpu
|
||||
WHISPER__COMPUTE_TYPE: int8
|
||||
# Built-in web UI at /
|
||||
ENABLE_UI: "true"
|
||||
volumes:
|
||||
# Persist model downloads across container recreates.
|
||||
- /srv/docker/faster-whisper/cache:/root/.cache/huggingface
|
||||
@@ -74,20 +74,35 @@
|
||||
container: phoenix
|
||||
|
||||
- Voice:
|
||||
# Wyoming-protocol services have no web UI; tiles are informational
|
||||
# (container status + port). Click-through goes nowhere meaningful.
|
||||
- Whisper:
|
||||
# Wyoming-protocol services have no web UI; tiles are informational.
|
||||
# The OpenAI-compatible servers (faster-whisper, Kokoro) have UIs /
|
||||
# APIs you can hit directly.
|
||||
- Whisper (Wyoming):
|
||||
icon: mdi-microphone-message
|
||||
description: Speech-to-text (Wyoming :10300)
|
||||
description: STT for Home Assistant Assist (Wyoming :10300)
|
||||
server: localhost-docker
|
||||
container: wyoming-whisper
|
||||
|
||||
- Piper:
|
||||
- Piper (Wyoming):
|
||||
icon: mdi-account-voice
|
||||
description: Text-to-speech (Wyoming :10200)
|
||||
description: TTS for Home Assistant Assist (Wyoming :10200)
|
||||
server: localhost-docker
|
||||
container: wyoming-piper
|
||||
|
||||
- faster-whisper:
|
||||
icon: mdi-microphone
|
||||
href: http://framework:8001
|
||||
description: STT (OpenAI API) — large-v3-turbo, used by OpenWebUI/Conduit
|
||||
server: localhost-docker
|
||||
container: faster-whisper
|
||||
|
||||
- Kokoro:
|
||||
icon: mdi-account-music
|
||||
href: http://framework:8880/web
|
||||
description: TTS (OpenAI API) — Kokoro-82M, used by OpenWebUI/Conduit
|
||||
server: localhost-docker
|
||||
container: kokoro
|
||||
|
||||
- External:
|
||||
- SearXNG:
|
||||
icon: searxng.svg
|
||||
|
||||
20
pyinfra/framework/compose/kokoro.yml
Normal file
20
pyinfra/framework/compose/kokoro.yml
Normal file
@@ -0,0 +1,20 @@
|
||||
# Kokoro-FastAPI — OpenAI-compatible TTS in front of Kokoro-82M.
|
||||
# https://github.com/remsky/Kokoro-FastAPI
|
||||
#
|
||||
# Speaks `/v1/audio/speech`. Pair with faster-whisper-server for a full
|
||||
# OpenAI-compatible voice loop driving OpenWebUI / Conduit.
|
||||
#
|
||||
# Kokoro-82M (hexgrad, Jan 2025) is small (~340 MB) but produces
|
||||
# noticeably more natural prosody than Piper. Apache 2.0 licence.
|
||||
# CPU image is plenty fast for this model size on Strix Halo.
|
||||
services:
|
||||
kokoro:
|
||||
image: ghcr.io/remsky/kokoro-fastapi-cpu:latest
|
||||
container_name: kokoro
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
# 8880 is Kokoro-FastAPI's own default — keeping the same on the
|
||||
# host side so docs/tutorials line up.
|
||||
- "8880:8880"
|
||||
volumes:
|
||||
- /srv/docker/kokoro/models:/app/api/src/models
|
||||
Reference in New Issue
Block a user