
Yoyoโยโย่
A real person on the roster, recorded with their consent.
Male · Thai · Podcast host · 0:03yoyo
กลับมาพบกันอีกครั้งกับพอดแคสต์ของเรา วันนี้มีเรื่องให้คุยกันยาว ๆ ครับ
The clip is a show open. Listen for the settled, unread quality of ยาว ๆ ครับ, which is where the live-mic feel comes from.
Yoyo is one of the Paxa Labs co-founders. Every other voice here is a cast character. This one is a person who agreed to be part of the catalog, and the docs give it a section of its own.
The register is conversational and live. It reads like someone talking into a microphone with a rough plan and no script, which is what long-form podcast audio wants.
Cast it for#
- Podcasts
- Show opens, links, and long-form conversation in Thai.
- Founder and company voice
- Internal notes and updates that read better from a person than from a brand.
- Unscripted-sounding narration
- Material written to sound thought through on the spot.
Reach for instead
In production#
- Creators
Podcasts and hosted shows.
- Publishers
Commentary and opinion audio.
- Audiobooks
Memoir and first-person non-fiction.
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": "yoyo",
"model": "paxa-tts-flash-v1"
}' \
--output yoyo.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: "yoyo",
model: "paxa-tts-flash-v1",
}),
});
if (!response.ok) throw new Error(`TTS failed: ${response.status}`);
await writeFile("yoyo.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": "yoyo", "model": "paxa-tts-flash-v1"},
)
response.raise_for_status()
with open("yoyo.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#
- Is this a real person's voice?
- Yes. Yoyo is one of the Paxa Labs co-founders, and the voice is in the catalog with their agreement. The rest of the roster is cast characters.
- Why does it sit in its own section?
- The docs roster separates it because the distinction matters. A customer choosing a voice should know when they are choosing a person.
- How is it different from Tako?
- Tako is a designed narrator voice, even and consistent by construction. Yoyo carries the small irregularities of live speech, which is what makes it sound unscripted.
Hear it read your own words.
New accounts start with 100 free credits. Open the playground and this voice is already selected.