For developers
Hebrish Server
Run Hebrish models on your own server: a web page to drop audio on, and an HTTP API that speaks the OpenAI transcription format. Proof of concept
On this page:
What it does
Hebrish-ASR/Server (MIT) transcribes audio and video files, anything ffmpeg reads, into English with the Hebrew words written correctly in romanized form (makolet, arnona). It sets the text out in paragraphs and can tidy it with S1-mini by Superwhisper through an Ollama server, as the desktop app does. It runs on the CPU, an NVIDIA GPU (CUDA) or an AMD GPU (ROCm).
- Web page at
/: drop a file or record in the browser; the transcript fills in piece by piece. - OpenAI-compatible API:
POST /v1/audio/transcriptions, so clients written for OpenAI's speech-to-text work by changing the base URL. - Jobs API for long files: start a job, then poll it for progress and the text so far.
The repository is a starting point to deploy and adapt. It holds no settings for any particular machine: you add your own bind address, networks and GPU in a compose override file.
Models
On the CPU engine (sherpa-onnx) the server runs the same int8 builds the apps download, checks them against their checksums, and moves to a model's current version on a restart:
- Sabich, the default: code-switching and tech vocabulary, the model the apps recommend.
- Sabich-Parakeet-110M, smaller and faster.
- Jachnun.
The GPU engine (NeMo) runs the full-precision Sabich checkpoint. Shakshuka (streaming), the Sabich variants on other base models and Meorav (text to speech) each need an engine of their own and are not supported yet. The repository's README explains how to add a model.
Run it
CPU, with Docker (listens on 127.0.0.1:8870)
git clone https://github.com/Hebrish-ASR/Server.git hebrish-server
cd hebrish-server
docker compose --profile cpu up -d --build
curl -s http://127.0.0.1:8870/api/health
Other profiles: nvidia and rocm for a GPU (they need a Hugging Face token with access to Hebrish/Sabich), and MODEL=sabich-parakeet-110m or MODEL=jachnun to choose a model. Without Docker, it runs from a uv environment. Details are in the README.
The API
curl -s http://127.0.0.1:8870/v1/audio/transcriptions \
-F file=@note.m4a -F response_format=text
The fields are file, response_format (json, text or verbose_json), paragraphs (none or time) and cleanup (true or false). model is accepted and ignored: the server's model answers. The generated API reference is at /docs on the server.
On your own computer instead
For a single computer you don't need a server. The desktop app (1.014 and later) can serve the model it has loaded to other programs on the same computer: turn on Settings → Local API, and it answers on http://127.0.0.1:8723 with the same OpenAI-compatible endpoint. There is no key, and nothing leaves the computer.
curl -s http://127.0.0.1:8723/v1/audio/transcriptions \
-F file=@note.mp3 -F response_format=text
For Claude Code and other coding agents, the transcribe-with-hebrish skill uses it.
Limits
- It is a proof of concept. Jobs are kept in memory and lost on a restart, and it decodes one request at a time.
- It has no authentication. Publish it on localhost, a home network or a tailnet only, never on the open internet.
- Recording in the browser needs HTTPS or localhost; on a plain
http://network address, upload a file instead. - The GPU images have not been built and run on a GPU yet; the CPU engine has been checked with Sabich v2.3 and Sabich-Parakeet-110M.
Run it somewhere interesting? Tell Daniel.