# Best Thai text to speech for apps, videos, and phone lines

Which Thai text to speech service fits an app, a narrated video, a phone line, a live voice agent, or a cloned brand voice, from each vendor's own documentation.

Published 2026-10-17, updated 2026-10-26. Paxa Labs.

Teams buying Thai text to speech usually have one job in mind. A banking app that reads balances aloud needs different things from a hotline menu played over a phone line. The job decides which vendors stay on the list, because each one documents different voices, output formats, and connections.

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 text to speech API comparison](https://paxalabs.com/compare/text-to-speech-apis), re-checked every month.

## Check that Thai is on the list

Several widely used speech APIs have no Thai voice. [Amazon Polly's language table](https://docs.aws.amazon.com/polly/latest/dg/supported-languages.html) has no Thai code. [Deepgram's Aura voices](https://developers.deepgram.com/docs/tts-models) cover seven languages, and Thai is not one of them. [SpeechifyAI](https://docs.speechify.ai/build/guides/text-to-speech/language-support) lists six languages for simba-3.0 and English alone for simba-3.2, with Thai on neither list.

Others list Thai among dozens of languages. [ElevenLabs](https://elevenlabs.io/docs/overview/models) names it among the 90+ languages of its newest speech models, [Cartesia](https://docs.cartesia.ai/build-with-cartesia/tts-models/latest) among the 44 of Sonic 3.6, and [MiniMax](https://platform.minimax.io/docs/api-reference/speech-t2a-http) among the 40 values of its language setting.

A language list says a vendor accepts Thai text. How a voice reads an English brand name inside a Thai sentence, Thai digits, or an abbreviation such as พ.ศ. is something to hear on your own script. [How to judge a Thai AI voice](https://paxalabs.com/guides/judging-a-thai-ai-voice) lists what to listen for, and [the script guide](https://paxalabs.com/guides/writing-for-thai-text-to-speech) covers numbers and English words in a Thai line.

## For an app or a website that speaks Thai

Every voice on Paxa TTS Flash v2 speaks Thai, English, and Mandarin, including the English words inside a Thai sentence. [The voices page](https://paxalabs.com/voices) plays all 50, and each voice keeps its slug for as long as it serves. An app already written for the OpenAI SDK can call [the compatible endpoint](https://paxalabs.com/docs/openai-compatibility) by changing the base URL and key, and its OpenAI model and voice names keep working.

[Botnoi Voice](https://voice.botnoi.ai/) lists more than 20 languages, Thai, English, and Chinese among them, and links a page of named speakers for each. [iApp's ChindaTTS documentation](https://iapp.co.th/docs/speech/text-to-speech/text-to-speech-v3) describes reading Thai, or Thai with English inside, on its standard voice, and limits that voice to Thai and English.

On the cloud platforms, [Google's Gemini-TTS](https://docs.cloud.google.com/text-to-speech/docs/gemini-tts) lists Thai (th-TH) as generally available. [Microsoft's voice table](https://learn.microsoft.com/en-us/azure/ai-services/speech-service/language-support?tabs=tts) lists three standard th-TH voices for Azure AI Speech, plus two in its Neural HD tiers marked public preview.

An app plays the same short lines many times. Test the strings your screens really show, such as a balance, a date, and a product name. Then check that the output format plays in your app with no conversion step.

## For narrated videos, courses, and captions

Narration needs timing as much as a voice, because captions have to land on the words. Paxa TTS Flash v2 returns [word, sentence, or utterance timestamps](https://paxalabs.com/docs/timestamps) with the audio on the same request. Word spans split Thai text that has no spaces, and [the subtitles page](https://paxalabs.com/subtitles) shows the result on a caption line.

[Narakeet's API](https://www.narakeet.com/docs/automating/text-to-speech-api/) can return SRT and VTT subtitle files with the audio, synchronized on paragraph boundaries, and Narakeet keeps [a separate voice list for Thai](https://www.narakeet.com/languages/). [Microsoft's Speech SDK](https://learn.microsoft.com/en-us/azure/ai-services/speech-service/how-to-speech-synthesis) raises a WordBoundary event at each spoken word, punctuation mark, and sentence, with its time offset in the audio. [Cartesia's API](https://docs.cartesia.ai/api-reference/tts/tts) documents an `add_timestamps` parameter.

A course often runs long. One Paxa TTS Flash v2 request reads up to 5,000 characters, and a chapter goes out as several requests whose audio you join. Narakeet takes scripts longer than 1 KB through its polling API.

Some teams build clips by hand in a web studio and call no API at all. [Botnoi Voice](https://voice.botnoi.ai/) offers a web studio beside its API, and [UVoice AI](https://uvoice.app/th/) offers a clip studio beside its own. [The creators page](https://paxalabs.com/use-cases/creators) and [the short-video voiceover guide](https://paxalabs.com/guides/ai-voiceover-for-tiktok-reels-and-shorts) cover a channel's own workflow.

## For phone lines and IVR menus

Telephony carries audio as 8 kHz μ-law or A-law. [ElevenLabs' create speech reference](https://elevenlabs.io/docs/api-reference/text-to-speech/convert) lists `ulaw_8000` and `alaw_8000` among its output formats and notes that μ-law is common for Twilio audio inputs. [Murf](https://murf.ai/api/docs/text-to-speech/overview) lists ALAW and ULAW outputs with 8000 Hz among its sample rates, and [its voice library](https://murf.ai/api/docs/voices-styles/voice-library) has a Thai section.

Paxa TTS Flash v2 returns MP3, Opus, WAV, or raw PCM, with PCM and WAV at 8 to 48 kHz through the sample_rate field. For phone lines it returns G.711 μ-law and A-law at 8 kHz directly. The audio goes into a telephony stack with no resampling step.

An IVR menu changes rarely. Generate each prompt once, store the file, and play it from storage on every call. A call that answers the caller in real time needs a live connection. [The call centers page](https://paxalabs.com/use-cases/call-centers) and [the announcements page](https://paxalabs.com/use-cases/announcements) cover both.

## For a live voice agent

A voice agent speaks an LLM's reply while the model is still writing it, and stops when the caller talks over it. The Paxa [live WebSocket](https://paxalabs.com/docs/live-streaming) takes text fragments as they arrive and synthesizes at natural boundaries. A cancel frame stops the reply in progress and keeps the connection open.

[Botnoi Voice's API reference](https://voice.botnoi.ai/developer/api) documents a realtime websocket that returns audio in base64 chunks. [Cartesia's API](https://docs.cartesia.ai/api-reference/tts/tts) has a websocket endpoint for realtime synthesis. [Fish Audio's streaming guide](https://docs.fish.audio/features/realtime-streaming) describes a WebSocket that buffers text until it has enough context, with a flush event that forces generation. Its [S2 Pro page](https://fish.audio/s2/) names Thai among the added languages.

Thai text carries no sentence-final punctuation, and a streaming voice that waits for a full stop waits for the whole reply. [The sentence breaks guide](https://paxalabs.com/guides/thai-sentence-breaks-for-streaming-speech) shows where to cut a Thai reply. [The realtime speech page](https://paxalabs.com/realtime-tts) and [the voice agents page](https://paxalabs.com/use-cases/voice-agents) cover the Paxa side.

## For a voice of your own

[iApp's ChindaTTS](https://iapp.co.th/docs/speech/text-to-speech/text-to-speech-v3) clones a voice from a 10 to 20 second Thai clip, and its cloned voices read Thai only. [ElevenLabs](https://elevenlabs.io/docs/overview/capabilities/voices) describes cloned voices beside its Voice Library and voices designed from a text prompt. [Fish Audio's cloning guide](https://docs.fish.audio/features/voice-cloning) asks for clips of at least 10 seconds each, saved as a voice model or sent with every request.

[MiniMax's Speech-02 announcement](https://www.minimax.io/news/speech-02-series) describes voice cloning and names Thai among its added languages. [UVoice AI](https://uvoice.app/th/) pairs a clip studio that clones voices with its API.

Clone a voice only with the speaker's written consent, and read each vendor's terms on commercial use of a clone before you ship. Paxa Labs offers no voice cloning. Its catalog voices keep their slugs while they serve, and a new voice comes from [voice design](https://paxalabs.com/voice-design), which builds one from a written description with no recording.

## For Thai beside English and Mandarin

Every Paxa TTS Flash v2 voice reads English and Simplified Chinese in the same voice it uses for Thai. Paxa TTS Flash adds 4 voices in [Isan, Northern, and Southern Thai](https://paxalabs.com/voices/accents), for a campaign that speaks to one region.

[MiniMax's API](https://platform.minimax.io/docs/api-reference/speech-t2a-http) sets Thai, English, Chinese, and Cantonese as separate language values. [Narakeet](https://www.narakeet.com/languages/) keeps separate voice lists for Thai, Mandarin Chinese, Taiwanese Mandarin, and Cantonese. [Gemini-TTS](https://docs.cloud.google.com/text-to-speech/docs/gemini-tts) lists Thai as generally available and Mandarin (cmn-CN) in Preview.

Decide first whether the brand keeps one voice across every language or one voice per language. A vendor whose voices each speak a single language can offer only the second. [The English voices page](https://paxalabs.com/english-voices) and [the Chinese voices page](https://paxalabs.com/chinese-voices) play each set.

## Jobs and vendors at a glance

| Job | Vendors whose documentation states the fit |
| --- | --- |
| Apps and websites in Thai | Azure AI Speech, Botnoi Voice, Google Gemini-TTS, iApp, Paxa TTS Flash v2 |
| Narration with captions | Azure AI Speech, Cartesia, Narakeet, Paxa TTS Flash v2 |
| Phone lines and IVR | ElevenLabs, Murf |
| Live voice agents | Botnoi Voice, Cartesia, Fish Audio, Paxa TTS Flash v2 |
| A cloned voice | ElevenLabs, Fish Audio, iApp, MiniMax, UVoice AI |
| Thai, English, and Mandarin | Google Gemini-TTS, MiniMax, Narakeet, Paxa TTS Flash v2 |

## Test on your own script

- Write one script with what your product really says, such as an English brand name, an amount in baht, a date, and a phone number.
- Run it through two or three vendors listed under your job, with voices of the same gender.
- Listen where your users will, on a phone speaker for an app and on a handset for a hotline.
- Check the output format, the request size limit, and the connection type against your player or phone system.
- Hear 9 Paxa TTS Flash v2 voices with no account on [the text to speech page](https://paxalabs.com/tts).

## Common questions

### Which Thai text to speech is best?

The one that fits your job. Find your job above, then test the two or three vendors it names on your own script, on the device your users hear it on.

### Does Paxa Labs clone voices?

No. Catalog voices keep fixed slugs, and [voice design](https://paxalabs.com/voice-design) builds a new voice from a written description, with no recording. iApp, ElevenLabs, Fish Audio, MiniMax, and UVoice AI document voice cloning.

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

Yes. Each request stands alone. An app can send its screen reading to one vendor and its phone prompts to another, as long as both voices suit the brand.

### Where are the prices?

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

### Do you publish quality or latency comparisons?

No. We publish no accuracy, quality, or latency figures, for our models or anyone else's. Listen to each candidate on your own text before you choose.
