# Best Thai speech to text for meetings, subtitles, and voice agents

Which speech to text service fits Thai meetings, recorded calls, subtitles, long recordings, mixed Thai and English, or a live voice agent, from each vendor's own documentation.

Published 2026-10-17. Paxa Labs.

Thai recordings bring their own problems to transcription. Words run together with no spaces between them. English product names arrive mid-sentence, and a number can come back as words or as digits. Which of these matters most depends on the job, and the job decides which vendors stay on the list.

Every vendor fact below links that vendor's own documentation, as our comparison pages verified it in October 2026. No vendor is scored or ranked. Published rates for each one are on [the speech to text API comparison](https://paxalabs.com/compare/speech-to-text-apis), re-checked every month.

> Paxa STT Lite and Paxa STT Lite Realtime are both in Research preview. Their transcripts and options may change between releases, and [the speech to text page](https://paxalabs.com/speech-to-text#changelog) records each change.

## Check which model reads Thai

Read each vendor's language list model by model. [AssemblyAI](https://www.assemblyai.com/docs/pre-recorded-audio/supported-languages) lists Thai for Universal-2 and leaves it off Universal-3.5 Pro, which can fall back to Universal-2 for languages outside its set. Its [code switching guide](https://www.assemblyai.com/docs/pre-recorded-audio/code-switching) marks Universal-2 as legacy.

[Deepgram](https://developers.deepgram.com/docs/models-languages-overview) lists Thai (th, th-TH) for Nova-3 and Nova-2. [Google's Chirp 3 page](https://docs.cloud.google.com/speech-to-text/v2/docs/chirp_3-model) lists Thai at Preview launch readiness. [Speechmatics](https://docs.speechmatics.com/speech-to-text/languages) lists Thai, and [ElevenLabs](https://elevenlabs.io/docs/overview/capabilities/speech-to-text) lists it among the 90+ languages of Scribe v2.

## For meetings, interviews, and recorded calls

A meeting transcript needs to say who spoke. [Deepgram's diarization](https://developers.deepgram.com/docs/diarization) puts a speaker value on every word, with a confidence score on recorded audio, and works on every Nova batch model. [ElevenLabs](https://elevenlabs.io/docs/overview/capabilities/speech-to-text) diarizes up to 32 speakers on Scribe v2.

[AssemblyAI](https://www.assemblyai.com/docs/pre-recorded-audio/label-speakers) labels each utterance with a letter, such as A, B, and C, and advises at least 30 seconds of continuous speech per speaker. [Google's Chirp 3](https://docs.cloud.google.com/speech-to-text/v2/docs/chirp_3-model) leaves Thai off its diarization language list.

Paxa STT Lite, a Research preview, returns numbered speaker turns on a recording under 9 minutes, and nobody is identified by name. Split a longer meeting at a pause, and each part numbers its speakers afresh. The [meetings](https://paxalabs.com/use-cases/meetings) and [call recordings](https://paxalabs.com/use-cases/call-recordings) pages and [the speaker turns guide](https://paxalabs.com/guides/thai-call-transcripts-with-speaker-turns) go further.

## For product names, people, and jargon

Product meetings and support calls are full of brand names and jargon. Each vendor in this section takes a list of terms to expect. [Speech adaptation on Google's Chirp 3](https://docs.cloud.google.com/speech-to-text/v2/docs/chirp_3-model) takes up to 1,000 phrases. [Deepgram's keyterm prompting](https://developers.deepgram.com/docs/keyterm) works on Nova-3 and on Flux, with up to 500 tokens of key terms per request. [ElevenLabs](https://elevenlabs.io/docs/overview/capabilities/speech-to-text) takes up to 1,000 terms on recorded audio and 50 on realtime.

Paxa STT Lite, a Research preview, takes up to 50 terms of up to 50 characters each, in Thai or any other language. The terms bias recognition toward your spelling and are never inserted.

## For recordings that switch between Thai and English

Thai speakers often say a product name or a technical term in English and carry on in Thai. A useful transcript keeps each word in the script it was spoken in.

[Speechmatics](https://docs.speechmatics.com/speech-to-text/languages) lists Thai, and its Melia 1 model switches between the listed languages with no language selection. Its Enhanced and Standard models take one selected language or a fixed pack, and none of the packs includes Thai.

On [AssemblyAI's Universal-2](https://www.assemblyai.com/docs/pre-recorded-audio/code-switching), a manual list holds at most two language codes, one of them English, and the model detects up to two languages per file. [Deepgram's multilingual option for Nova-3](https://developers.deepgram.com/docs/models-languages-overview) covers ten languages, and Thai is not among them. [Google's Chirp 3](https://docs.cloud.google.com/speech-to-text/v2/docs/chirp_3-model) set to auto transcribes the dominant language of a file.

Paxa STT Lite, a Research preview, writes a Thai sentence that switches into English as it was spoken, with no language setting and no translation. [The code-switching guide](https://paxalabs.com/guides/transcribing-thai-english-code-switching) shows what that does for search.

## For subtitles on video

Thai writes no spaces between words. A subtitle line broken at a character count can split a word in half.

Paxa STT Lite, a Research preview, returns an SRT or WebVTT file in the same response as the transcript. Every line break falls on a word boundary, Thai included, and the line length is yours to set.

[AssemblyAI](https://www.assemblyai.com/docs/pre-recorded-audio/export-transcripts-as-srt-vtt-or-text) exports a finished transcript as SRT or VTT from its own endpoint, with `chars_per_caption` setting the most characters in each caption. [Deepgram's captions guide](https://developers.deepgram.com/docs/automatically-generating-webvtt-and-srt-captions) turns the JSON transcript into WebVTT or SRT in your own code, with its `@deepgram/captions` package.

Whichever you choose, open the file on a Thai clip and read where each line breaks. [The subtitles page](https://paxalabs.com/subtitles) and [the word timestamps guide](https://paxalabs.com/guides/thai-subtitles-from-word-timestamps) show a Thai cue broken between words, and [the captions page](https://paxalabs.com/use-cases/captions) covers the video workflow.

## For lectures, seminars, and other long recordings

[ElevenLabs Scribe](https://elevenlabs.io/docs/overview/capabilities/speech-to-text) takes files up to 10 hours in standard mode, and [its API](https://elevenlabs.io/docs/api-reference/speech-to-text/convert) fetches a file from a source URL and can deliver results to a webhook. [Deepgram](https://developers.deepgram.com/docs/pre-recorded-audio) accepts files up to 2 GB and returns a 504 when processing on a Nova model runs past 10 minutes.

[Speechmatics](https://docs.speechmatics.com/speech-to-text/batch/limits) takes a file of 1 GB or more through a fetch URL and recommends notifications for job status. On [Google's Chirp 3](https://docs.cloud.google.com/speech-to-text/v2/docs/chirp_3-model), BatchRecognize suits audio from one minute to an hour, or up to 20 minutes with word timestamps. Google's [batch recognition](https://docs.cloud.google.com/speech-to-text/v2/docs/batch-recognize) reads only audio stored in Cloud Storage.

Paxa STT Lite, a Research preview, transcribes up to 60 minutes and 25 MiB in one request. Split a longer recording at a pause and send the parts as separate requests. [The lectures page](https://paxalabs.com/use-cases/lectures) shows the workflow.

## For live captions and voice agents

A live transcript has to decide where each turn ends, and vendors put that decision in different places.

Paxa STT Lite Realtime, a Research preview, decides it in the session. Over one WebSocket it reports when the user starts and stops talking, then sends one final transcript per turn, with no setting to tune. It takes 16-bit PCM at 16 or 48 kHz, or μ-law at 8 kHz as telephony delivers it.

[ElevenLabs' realtime guide](https://elevenlabs.io/docs/eleven-api/guides/how-to/speech-to-text/realtime/transcripts-and-commit-strategies) commits transcript segments manually by default, or once a silence threshold is reached under its voice activity strategy. On [Speechmatics' Melia 1](https://docs.speechmatics.com/speech-to-text/models), realtime transcription offers channel diarization only, and the client sends ForceEndOfUtterance when the speaker has finished.

Before you build, confirm that the live model itself lists Thai. [The live transcription page](https://paxalabs.com/use-cases/live-transcription), [the realtime turns guide](https://paxalabs.com/guides/realtime-thai-transcription-turns), and [the voice agents post](https://paxalabs.com/blog/realtime-transcription-for-thai-voice-agents) cover the Paxa side.

## For code written against the OpenAI SDK

[OpenAI's file transcription guide](https://developers.openai.com/api/docs/guides/speech-to-text) recommends `gpt-transcribe` on /v1/audio/transcriptions, with files up to 25 MB. [Its deprecations page](https://developers.openai.com/api/docs/deprecations) lists `whisper-1`, `gpt-4o-transcribe`, `gpt-4o-mini-transcribe`, and `gpt-4o-transcribe-diarize` for removal from the API on February 26, 2027.

Paxa's [/v1/audio/transcriptions](https://paxalabs.com/docs/openai-compatibility) serves the same `audio.transcriptions.create` call at a new base URL, with `model` set to `paxa-stt-lite-v1-preview`, a Research preview.

## Jobs and vendors at a glance

| Job | Vendors whose documentation states the fit |
| --- | --- |
| Meetings and recorded calls | AssemblyAI, Deepgram, ElevenLabs, Paxa STT Lite (Research preview) |
| Names and jargon | Deepgram, ElevenLabs, Google Chirp 3, Paxa STT Lite (Research preview) |
| Thai mixed with English | AssemblyAI, Speechmatics, Paxa STT Lite (Research preview) |
| Subtitle files | AssemblyAI, Deepgram, Paxa STT Lite (Research preview) |
| Long recordings | Deepgram, ElevenLabs, Google Chirp 3, Speechmatics, Paxa STT Lite (Research preview) |
| Live captions and voice agents | ElevenLabs, Speechmatics, Paxa STT Lite Realtime (Research preview) |
| OpenAI SDK code | OpenAI, Paxa STT Lite (Research preview) |

## Test on your own recordings

- Pick three recordings like your real traffic, such as a clean one, a noisy one, and one where Thai and English mix.
- Run each through every vendor listed under your job, with the same settings.
- Read the transcripts against the audio at names, figures, and negations.
- Score Thai on characters or syllables. [The accuracy guide](https://paxalabs.com/guides/measuring-thai-transcription-accuracy) explains why word error rate misleads on Thai.
- See a Thai recording transcribed word by word on [the transcription page](https://paxalabs.com/transcribe).

## Common questions

### Which Thai speech to text is best?

The one that fits your job. A voice agent needs turn detection, and a video team needs subtitle files. Run your own recordings through the vendors listed under your job and read the transcripts side by side.

### What does Research preview mean for Paxa STT Lite?

Paxa STT Lite and Paxa STT Lite Realtime are live on the API and in the console while they are evaluated. Their transcripts and options may change between releases, and the changelog on [the speech to text page](https://paxalabs.com/speech-to-text#changelog) records each change.

### Can one product use more than one speech to text vendor?

Yes. Each vendor takes its own key and its own requests. A product can send live turns to one vendor and long recordings to another.

### Where are the prices?

On [the speech to text API comparison](https://paxalabs.com/compare/speech-to-text-apis), which lists each vendor's published rate for recorded audio, re-checked every month.

### Do you publish accuracy comparisons?

No. We publish no accuracy, quality, or latency figures, for our models or anyone else's. Transcribe the same recording on each service you are considering and read the transcripts side by side.
