
Som Tamส้มตำ
An Isan read with the warmth of someone from the same village.
Female · Isan Thai · 0:03somtam
สวัสดีเด้อค่า มื้อนี้อาหารแซ่บ ๆ พร้อมแล้ว มากินข้าวนำกันเด้อ
The clip opens and closes on เด้อ, the particle that marks the register. It appears nowhere in the Central Thai cast.
Som Tam speaks with the everyday cadence of Thailand's Northeast. The register is neighbourly, and the warmth is the point of casting it over a Central Thai voice reading the same words.
Regional speech does work that a standard read cannot. An announcement in the register a listener grew up with is heard differently, and this is one of two Isan voices on the roster.
Cast it for#
- Regional announcements
- Public messaging in the Northeast, where a Central read lands as an outsider.
- Local service and support
- Queue messages and hotline prompts for callers from the region.
- Community content
- Food, market, and community media made for a Northeastern audience.
Reach for instead
In production#
- Announcements
Regional public announcements.
- Call centers
Hotline prompts for callers from the region.
- Creators
Community and food media.
Call it from the API#
The voice field takes the id above. Every other value in this request is a Paxa TTS Flash default.
curl -X POST https://api.paxalabs.com/v1/tts \
-H "Authorization: Bearer $PAXA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "สวัสดีเด้อค่า มื้อนี้อาหารแซ่บ ๆ พร้อมแล้ว มากินข้าวนำกันเด้อ",
"voice": "somtam",
"model": "paxa-tts-flash-v1"
}' \
--output somtam.mp3import { writeFile } from "node:fs/promises";
const response = await fetch("https://api.paxalabs.com/v1/tts", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.PAXA_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
text: "สวัสดีเด้อค่า มื้อนี้อาหารแซ่บ ๆ พร้อมแล้ว มากินข้าวนำกันเด้อ",
voice: "somtam",
model: "paxa-tts-flash-v1",
}),
});
if (!response.ok) throw new Error(`TTS failed: ${response.status}`);
await writeFile("somtam.mp3", Buffer.from(await response.arrayBuffer()));import os
import requests
response = requests.post(
"https://api.paxalabs.com/v1/tts",
headers={"Authorization": f"Bearer {os.environ['PAXA_API_KEY']}"},
json={"text": "สวัสดีเด้อค่า มื้อนี้อาหารแซ่บ ๆ พร้อมแล้ว มากินข้าวนำกันเด้อ", "voice": "somtam", "model": "paxa-tts-flash-v1"},
)
response.raise_for_status()
with open("somtam.mp3", "wb") as f:
f.write(response.content)- Model
- Paxa TTS Flash
- Per request
- 5,000 characters
- Rate
- 15 credits per 1,000 characters
- Free credits
- 100 credits, about 9 minutes
Questions#
- Which particle marks the register in the clip?
- เด้อ, which opens and closes the sample line. The Central Thai voices never use it, and it is the fastest audible marker of the register.
- Can it read Central Thai text?
- It reads any Thai text, and the accent travels with it. The accents page has a board where five voices read one shared Central Thai sentence, which is the clearest way to hear that.
- Is there a male Isan voice?
- Larb reads the same register in a male voice. The two are the roster's Isan pair.
Hear it read your own words.
New accounts start with 100 free credits. Open the playground and this voice is already selected.