Speech models — Swiss German / German / English, everywhere

Every voice surface (satellite speaker, mobile app, portal composer) transcribes through the centralized Whisper container (Doc/Architecture/CentralizedSpeech). Since 2026-08-20 all Systemorph-operated instances run one model that covers all three languages:

The standard model

Flix-AI/flix-swissgerman-full — a full fine-tune of openai/whisper-large-v3, Apache 2.0, trained on 1,367 hours of Swiss German (broadcast subtitles, parliamentary proceedings, institutional YouTube, Swiss films) under the Swiss text-and-data-mining research exception.

Where each deployment gets it

Surface Model build Source
memex.meshweaver.cloud (/api/speech/transcribe, serves the mobile app on the go) ggml q8_0 (1.7 GB) meshweaverswissarchive/models/whisper/ggml-flix-swissgerman-q8_0.bin (read-only SAS in the deployment's values.memexcloud.yaml; init container downloads at pod start)
A local mesh (LocalMesh app; serves the mobile app at home) via Speech.Endpoint → a local whisper-server Speech section in appsettings.json
The voice gateway (satellite speaker) ggml f16 (2.9 GB, max fidelity) local whisper-server, STT_URL env

Quantization guidance from measurement: q8_0 is transparent (identical transcripts to f16 on real recordings); q5_0 measurably damages this fine-tune — do not ship it.

Swapping the model on an instance

The container is model-agnostic: it loads whatever model.url names, so a swap is one line in the deployment values plus a pod roll — no image rebuild. Converting a Hugging Face Whisper fine-tune to ggml: whisper.cpp/models/convert-h5-to-ggml.py (cast BF16 tensors to float first), then whisper-quantize … q8_0.

License notes (read before swapping)

Reconnecting…
The server was updated. Reloading the page to pick up the latest version.