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.
- 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.
200 OK
{"object": "transcription","model": "hohe-asr","text": "ሆሄ ለአፍሪካ …","duration_seconds": 4.32,"usage": {"units": 5,"free_units_applied": 5,"credits_charged": 0}}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.
Translation
Coming soonትርጉም
Amharic and Afaan Oromoo translation. In training, not yet available.
Language model
Coming soonየቋንቋ ሞዴል
An Amharic-first language model. In training, not yet available.
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.
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.
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 codeHow 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.
- 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.
- 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.
- 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.
- 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 allowanceWhere 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 generatorOn 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 quickstartOn 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.