Skip to content

Voice AI for African languages

Every voice.
In its own
language.

ለአፍሪካ ቋንቋዎች የድምፅ ኤአይ

Turn speech into text, text into voice, and video into stories people can follow. Built for Amharic, with Afaan Oromoo in training. Open weights. One simple API.

Two free hours of transcription a month. No card required.

Sound meets language
From sound to language
Built for voices that deserve to be heard.
products, including reviewed access
4products, including reviewed access
GPUs needed for browser ASR
0GPUs needed for browser ASR
per hour of transcription
$0.25per hour of transcription
free transcription every month
2 hfree transcription every month

From sound to sentence

Your language. Ready to build with.

See the API
hohe-asramPOST /v1/transcribe
hohe-asr

200 OK

{"object": "transcription","model": "hohe-asr","text": "ሆሄ ለአፍሪካ …","duration_seconds": 4.32,"usage": {"units": 5,"free_units_applied": 5,"credits_charged": 0}}
Hohe ASR transcribing ሆሄ ለአፍሪካ ቋንቋዎች የድምፅ ኤአይ መሠረተ ልማት ይገነባል። An illustration of the model's output and the response shape, not a live request.

Products

One platform. More ways to be heard.

Transcribe, speak, and subtitle in Amharic. Voice cloning is available through reviewed access. Translation and our language model are in training.

For developers

One endpoint, one header, no SDK to install

Multipart in, JSON out, and a response that tells you what the call cost and what is left. Every snippet here is the request the API actually accepts.

bash
curl -X POST https://api.hohelabs.com/v1/transcribe \
  -H "Authorization: Bearer $HOHE_API_KEY" \
  -H "Idempotency-Key: meeting-2026-10-15-01" \
  -F "model=hohe-asr" \
  -F "[email protected]"

metering

You are always told what it cost

Every successful call returns the units metered, how many came out of the monthly free allowance, the credits charged and the balance left. An x-credits-charged header carries the same figure for anything that only reads headers.

How metering works

errors

Stable codes, not prose to parse

Every error carries a machine-readable code, a message for a human and the request id to quote at us. The message is for reading, the code is for branching on.

Every error code

How a call works

Four guarantees, and all four are testable

Metered inference is easy to get wrong in ways a customer only discovers on an invoice. These are the rules the request handler follows, written down so you can hold us to them.

  1. 01

    The key is checked

    Presented as a bearer token, hashed, and looked up with no cache, so revoking a key stops it working on the very next request rather than within some number of seconds.

  2. 02

    The balance is checked

    Before a single second of compute. A call we could not bill never starts, which is why a 402 comes back immediately instead of after the audio has been processed.

  3. 03

    The audio is transcribed

    A failure here is recorded for diagnostics and not charged. If your connection drops before the result is delivered, that call is not charged either.

  4. 04

    You are told what it cost

    Metering happens after delivery, and the response carries the units billed, the free allowance applied, the credits charged and the balance left.

Pricing

Prepaid credits. Nothing renews, nothing expires

A card that renews is a payment method a large share of our customers do not have. You buy credits, they sit on the account until a call spends them, and there is nothing to cancel.

Speech to text

asr.transcribe

unit hour of audio

free 2 hours every month

$0.25per hour of audio

Metered per second of decoded audio, rounded up to a whole second.

Text to speech

tts.synthesize

unit million characters

free 20,000 characters every month

$12per million characters

Metered on the characters you send, counted after normalisation.

Subtitle generator

subtitle.export

unit second of video

free Transcription in the browser is free

$0.004per second of video

Metered on the rendered output, which is where the real cost is.

credit pack

$10

100,000 credits

About 40 hours of transcription, or 830,000 characters of synthesis.

Credit packs, birr payments and the free allowance

Where it runs

On a phone, on our API, or on your own machines

The same model in three places, because the right answer depends on whether your constraint is cost, latency, or whether the audio is allowed to leave the building.

  • In the browser

    open weights

    The model is small enough to transcribe inside a browser tab on a mid-range Android phone with no GPU. The audio never has to leave the device to get a transcript, which for a lot of recordings is the only acceptable answer.

    This is how the subtitle generator works.

    The subtitle generator
  • On our API

    metered

    One endpoint, a bearer token, and a response that tells you what the call cost and what is left. Two free hours of audio every month, then $0.25 per hour on prepaid credits, or ETB 20 an hour paying in birr, with nothing to cancel.

    Billed per second of decoded audio, rounded up.

    The quickstart
  • On your own machines

    self-hosted

    The weights are open, so none of this is a hostage situation. If your audio cannot leave your network, or you would rather not depend on a company you met this week, run it yourself and use the hosted API only when it suits you.

    Same model, same benchmark figure.

    Self-hosting and enterprise

Not sure which one fits? Tell us what the audio is and where it has to stay, and we will say which of the three we would use. Send an enquiry, or write to [email protected].

Let your next idea speak Amharic.

Start with two free hours of transcription every month. Add credits when you need more, by card or bank transfer in birr.