Thai voice for ads and brand films
Cast a Thai spot across the whole roster before the client meeting, rewrite a line and hear it again, and take regional accents to a regional buy.
Ideas to try
Every card plays a real clip generated from its exact script with Nom Yen. Open one in the playground to make it say anything.
How a spot gets cast
An agency books one voice artist to hear one read. The choice of voice is made in a room, from a demo reel and a memory, and it is made before anyone has heard the actual script in the actual voice. That is backwards, and it is backwards for a reason: hearing a second read used to mean a second booking. Casting from a catalog turns the order around. The script is written, every voice on the roster reads it, and the client picks from recordings of their own words rather than from someone else's showreel. A line changes on Wednesday and every version is re-cut the same afternoon. The flagship film still goes to a booked artist; this is for everything around it, and for the part of the process that happens before anyone is booked at all.
- Send the approved script once per voiceOne request per voice, same text, 26 results. A 30-second spot is a few hundred characters, so the whole casting session finishes while the brief is still open.
- Shortlist, then cut the lengthsEach length is its own script and its own request, pinned to the chosen voice id. The sixty, the thirty, and the fifteen all come back in one delivery.
- Re-cut a changed line on its ownAn edited line is one request in the same voice, and the rest of the spot is untouched. The charge is the characters that changed.
Casting, priced
| Workload | Characters | Credits | Cost |
|---|---|---|---|
| A 30-second spot, read by all 26 voices | 7,904 | 118.56 | $0.12 |
| 3 concepts at 3 lengths, all cast | 71,136 | 1,067.04 | $1.07 |
| A year of weekly spots, recast every week | about $6.17 | ||
Computed at 15 credits per 1,000 characters over 304 characters of script per 30 seconds. Casting the whole roster is priced like any other read, which is the point: there is no separate cost to hearing an option.
A campaign week
The schedule is the argument. A rewrite on Wednesday is what a booked session cannot absorb and a voice id does not notice.
What the roster gives an account team
- 26
- Reads of the same script
- The client chooses from their own copy in every voice, rather than from a reel of somebody else's work.
- Accents for a regional buy
- Isan, Northern, and Southern voices sit in the same catalog, so a regional cut is a change of voice id rather than a second casting call.
- One voice across both languages
- Thai brand copy carries English product names inside it. The same voice reads both without a hand-off in the middle of a claim.
Rights are the part to settle before air: output made on free credits is for evaluation, and a purchase makes generated output yours for commercial use, including work generated before it.
For developers
The TypeScript and Python quickstarts post one read and write the audio a session collects. The options request shows the voice, model, and format fields a campaign pins once and reuses to the last cutdown.
import { 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: "สวัสดีครับ ยินดีต้อนรับสู่ Paxa Labs",
voice: "khanomkrok",
model: "paxa-tts-flash-v1",
}),
});
if (!response.ok) throw new Error(`TTS failed: ${response.status}`);
await writeFile("speech.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": "สวัสดีครับ ยินดีต้อนรับสู่ Paxa Labs", "voice": "khanomkrok", "model": "paxa-tts-flash-v1"},
)
response.raise_for_status()
with open("speech.mp3", "wb") as f:
f.write(response.content)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": "khanomkrok",
"model": "paxa-tts-flash-v1",
"format": "mp3",
"stream": false
}' \
--output speech.mp3Hear the voices
LatteMale0:03
Polished English voice for brand films.
Every great brand has a story. Tonight, we're going to tell yours.
Khanom KrokMale0:03
Calm, unhurried elder voice and the roster's male lead: documentary, heritage storytelling, and narration.
สมัยผมยังหนุ่ม แถวนี้ยังเป็นทุ่งนา เดินไปตลาดทีหนึ่งก็ค่อนวันแล้วครับ
Nom YenFemale0:06
Bright, energetic voice and the roster's female lead: promos, social clips, and everyday product speech.
ยินดีต้อนรับสู่ Paxa Labs ค่ะ เสียงภาษาไทยที่สลับเป็น English ได้กลางประโยค อย่างเป็นธรรมชาติ
TakoFemale0:05
Friendly young narrator for audiobooks, recaps, and explainers.
ยามเช้าในกรุงเทพฯ แสงแดดอ่อน ๆ ทาบลงบนถนนที่เริ่มคึกคัก
A few of the 26 production voices, generated from the API with the published voice ids. The full roster plays on the Text-to-Speech page.
Advertising Thai is written to be heard
Ad copy carries prices, percentages, dates, and English product names inside Thai sentences, and it is written to be read aloud at a fixed length. Paxa TTS Flash reads tone from spelling rather than from a dictionary, holds both languages in one voice, and delivers the same script the same way on the fiftieth read as on the first, which is what a cutdown has to match.
Common questions
- How many voices can we audition?
- All 26, on the same script, for the price of the characters. Auditioning is not a separate product here; it is the same request sent once per voice.
- Can we do a regional version?
- Yes. Isan, Northern, and Southern voices are in the same catalog. A regional cut changes the voice id and keeps the script, or takes a regional rewrite in the matching voice.
- What happens when the client changes a line?
- The edited line re-renders on its own in the same voice, and you pay for the characters that changed. Nothing about the rest of the spot moves.
- Can we broadcast the audio commercially?
- Output made on free credits is for personal use and evaluation. Once you buy a plan or credits, generated output becomes yours for any use, including broadcast, and that covers output generated before the purchase. Clearances for the script and the music remain yours.
- Will the voice sound the same on next month's flight?
- Yes. A voice is a fixed id in the catalog, so a campaign that returns in six months returns in the same voice with nobody to rebook.
Start with free credits
Sign in with Google, GitHub, or Hugging Face and spend 100 one-time free credits on your own text.