zeekayandHanzo Dev da3529e4a9 ci: the build ends by pinning, so a published image is a deployed one
This lane ended at "push". cd.hanzo.ai does not watch the registry — it watches
universe's values files — so an image that is built and never pinned is
published and unreachable. 0.1.1 sat built while the fleet served 0.1.0 for
exactly that reason, and the only thing that moved it was a human noticing.

pin.sh is the fleet's one way to do it, and it resolves tag AND digest from a
single registry lookup. Two lookups at two moments drift, and drift here does
not fail — it succeeds at doing nothing: a reference carrying both resolves by
DIGEST, so a pod reports the new tag and runs the old bytes.

0.1.2 carries no service change. The version moves because the guard above
refuses to rebuild a published tag, and because this is the release that proves
the new step: it is the first speech image whose pin is moved by the build
rather than by hand.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-07 20:43:10 -07:00

speech

CPU speech for the Hanzo platform: STT (faster-whisper, CTranslate2 int8) and TTS (kokoro-onnx, 82M) behind one OpenAI-shaped surface.

Routes

  • POST /v1/audio/transcriptions — multipart file + model (+language, response_format) → {"text": …}
  • POST /v1/audio/speech — {model, input, voice, response_format} → audio bytes (mp3 default, wav native)
  • GET /v1/models, GET /healthz

Trust model

No auth of its own, in-cluster only. api.hanzo.ai fronts it through the ai plane, which authenticates and meters every caller — a provider row pointing at http://speech.hanzo.svc/v1 is the whole integration. Weights bake into the image at build; the container boots without the network.

Run

uv sync && uv run uvicorn main:app --port 8000

Phase 2 is /v1/realtime: websocket full-duplex (silero-vad segmentation, partial transcripts, kokoro frames, barge-in) plus camera-frame relay into the multimodal models.

S
Description
CPU speech service: STT (faster-whisper) + TTS (kokoro) behind api.hanzo.ai /v1/audio
Readme Apache-2.0
361 KiB
Languages
Go 98.8%
Dockerfile 1.2%