All use cases

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

Open in the playground
Open in the playground
Open in the playground
Open in the playground

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.

  1. 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.
  2. 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.
  3. 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

WorkloadCharactersCreditsCost
A 30-second spot, read by all 26 voices7,904118.56$0.12
3 concepts at 3 lengths, all cast71,1361,067.04$1.07
A year of weekly spots, recast every weekabout $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

MonThe script arrivesCopy is approved and the brief names a feeling rather than a voice. Nobody has been booked, and nothing has been committed to.
TueThe whole roster reads itEvery voice reads the approved script. The client hears their own words in each one instead of a showreel, and the shortlist comes from that.
WedA line changesLegal cuts six words. Every shortlisted read is re-cut the same afternoon, at the cost of the characters that changed.
ThuThree lengths are cutThe sixty is trimmed to a thirty and a fifteen. Each is its own script and its own read, in the same voice as the parent spot.
FriIt goes to airThe voice on air is a catalog id, so next month's flight uses the same one without rebooking anybody.

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()));

Full API reference

Hear 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.