Paxa Labs is an AI research lab in Bangkok. We build speech, translation, and document models for Thai and English, and ship them as one API.
Why a lab for Thai
Thai breaks the assumptions most language tooling is built on. Words are written without spaces, so something has to decide where one word ends and the next begins. Tone changes the word. Speakers move between Thai and English inside a sentence, with a product name and a number in the same breath. Business documents stack Thai and English text, tables, stamps, and handwriting on one page.
General-purpose models treat all of this as edge cases. For anyone building for Thai users, it is the input.
So we start from failures in real Thai speech, text, and documents. A failure becomes a data example and an evaluation. Repeated patterns shape the model, the training method, and the serving stack. The improved system goes back into the product, where the next difficult input tells us what to investigate next.
What is live today
Text to speech. Paxa Flash (paxa-tts-flash-v1) is our proprietary Thai speech model: 26 voices, including Isan, Northern, and Southern regional accents and English-first voices. MP3, Opus, or WAV, buffered or streamed, with optional word, sentence, or utterance timestamps. A WebSocket endpoint synthesizes as you send text, for agents and live captions. There is an OpenAI-compatible /v1/audio/speech alias, so an existing client works after a base URL change.
OCR. paxa-ocr-lite-v1 is our proprietary document model for PDF, PNG, JPEG, and WebP. Output is per-page Markdown or typed blocks (headings, paragraphs, lists, tables, figures). It is built for the documents Thai businesses actually handle: mixed scripts, stacked marks, stamps, and handwritten notes.
Translation. paxa-translation-lite-v1 translates fourteen source languages into Thai, with controls for formality, borrowed-word handling, a glossary, do-not-translate terms, and reference context. Markdown and HTML modes translate the prose and leave the markup in place, which matters in Thai: a tag moved by one character moves a word boundary.
Speech recognition is still research. It ships when it survives real Thai audio.
One API, one meter
Every product bills in credits, 1,000 credits to a dollar, pay as you go or on a monthly plan:
- Text to speech: $15 per million characters
- Translation: $25 per million characters of text
- OCR: $0.0065 per page
Every account starts with free credits. A request is charged before inference and refunded if inference fails, so a failed call never costs anything. We wrote up how that works and why it is the right order: Charge before inference, refund on failure.
First request
curl -X POST https://api.paxalabs.com/v1/tts \
-H "Authorization: Bearer $PAXA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "สวัสดีค่ะ ยินดีต้อนรับสู่ Paxa Labs",
"voice": "foithong",
"model": "paxa-tts-flash-v1"
}' \
--output speech.mp3
Sign in with Google, GitHub, or Hugging Face, create a key, and the playground lets you try all three products in the browser before you write any code.
Built for agents too
Every docs page at paxalabs.com/docs is also served as Markdown at its path plus .md. /llms.txt is the curated index, /llms-full.txt is the whole corpus, and an installable agent skill ships from the same source: npx skills add https://paxalabs.com.
What we write about
The lab's notebook covers the engineering behind the products, in English and Thai:
- Thai has no word spaces, and it changes how a translation API has to work
- Counting the pages in a PDF, without a PDF library
- Charge before inference, refund on failure
We will cross-post the next ones here. If you are building for Thai users and hitting something a general model gets wrong, we want to hear about it: https://paxalabs.com/contact.
Top comments (1)
Congrats on the launch. The focus on Thai-specific failure cases is what stands out to me here.
The combination of TTS, OCR, and translation behind one API makes a lot of sense, especially when real documents and speech are mixed Thai/English rather than clean benchmark data. The glossary and do-not-translate controls for translation are also a nice touch for production use.
I’m particularly interested in the evaluation loop you described: turning real failures into data and evaluations, then feeding those results back into the models. That seems much more valuable than optimizing only against generic benchmarks.
Will definitely keep an eye on how Paxa Labs evolves, especially the speech recognition side once it’s ready for production.