AiHummer
English
Log in
v1.0.x
{ }Swagger

Speech translation & video

v1.0.x · updated 2026-07-05

Beyond speech in and out, AiHummer offers two additional media capabilities: speech translation and video understanding. Both run on free/local engines: translation is assembled from the STT/TTS sidecars and the LLM you already have, while video runs as its own sidecar reached by URL.

[!NOTE] Speaker diarization and voice cloning are not part of the product — those capabilities were removed. If you saw them in older material, do not plan around them: the voice stack is STT, TTS, the voice turn (/v1/voice/turn), speech translation and video understanding.

Speech translation

Speech translation turns audio in one language into spoken audio in another, so an agent can serve callers across languages. It is a pure translation pipeline with no agent turn: the inbound audio is transcribed (STT), the text is translated with a one-shot LLM completion, and the translation is spoken back (TTS).

audio in ─▶ STT ─▶ translate (LLM) ─▶ TTS ─▶ audio out

No extra sidecar is needed: the pipeline uses the same free/local sidecars as the voice turn — faster-whisper (:8001) and edge-tts (:8002) — plus your configured LLM provider.

Item Value
Endpoint POST /v1/voice/translate?target=<lang>
target parameter Target language (BCP-47 or a plain language name); required
Input Audio in the request body (Content-Type, defaults to audio/ogg)
Output Translated audio (audio/mpeg)
Response headers X-Voice-Transcript — source text, X-Voice-Reply — the translation
Requires STT, TTS and an LLM provider configured
POST /v1/voice/translate?target=en HTTP/1.1
Host: localhost:8780
Content-Type: audio/ogg

<binary audio>

Video understanding

Video understanding extracts what a clip contains by demuxing audio and sampling keyframes with ffmpeg — there is no ML model in this sidecar; it prepares audio and frames for the agent turn.

Item Value
Backed by ffmpeg (demux + keyframes, no ML)
Sidecar port :8005
Endpoint POST /v1/video/understand
Wired with AIHUMMER_VIDEO_URL

Wiring

Speech translation needs no dedicated variable: it is active once STT, TTS and an LLM provider are configured. Video understanding is enabled by its sidecar URL — the host-native installer can provision it, or point at an instance you already run.

# gateway.env — optional video sidecar
AIHUMMER_VIDEO_URL=http://127.0.0.1:8005

[!TIP] The capabilities are independent — enable only the ones you need. A deployment that just needs transcription and synthesis can run the STT/TTS pair alone and leave the video sidecar unconfigured.

Where to next