Thai speech to text for media monitoring
Turn Thai radio, television, and podcast audio into text a desk can search. Find every mention of a name or a claim, with the second it was said.
What the transcript says
A radio spot
spokenโปรโมชั่นพิเศษ ลดสูงสุด ห้าสิบ เปอร์เซ็นต์ ถึงสิ้นเดือน สิงหาคม นี้เท่านั้น
writtenโปรโมชั่นพิเศษ ลดสูงสุด 50% ถึงสิ้นเดือนสิงหาคมนี้เท่านั้น
A campaign line as it was read on air. The written convention puts the discount and the deadline in the form a report prints them.
A news bulletin
spokenราคาน้ำมันดีเซลปรับขึ้น ห้าสิบ สตางค์ต่อลิตร มีผลตั้งแต่เที่ยงคืนวันที่ หนึ่ง กันยายน
writtenราคาน้ำมันดีเซลปรับขึ้น 50 สตางค์ต่อลิตร มีผลตั้งแต่เที่ยงคืนวันที่ 1 กันยายน
A figure and a date in one sentence. A desk searching for either finds this line under both conventions.
A talk show mention
spokenเมื่อวานผมลองใช้แอปตัวใหม่ที่เพื่อนแนะนำ ใช้ง่ายกว่าที่คิดเยอะเลยครับ
writtenเมื่อวานผมลองใช้แอปตัวใหม่ที่เพื่อนแนะนำ ใช้ง่ายกว่าที่คิดเยอะเลยครับ
An unpaid mention inside ordinary conversation. The two conventions agree here, because the line carries no figure.
Every transcript pair on this page is an authored illustration of what the convention option changes, re-checked against live output before publish. The Speech-to-Text page carries the model's own witnessed transcripts of a real recording, with the capture date.
How a desk runs it
A brand team wants to know when its name was said on the radio this morning. An agency reports to a client on where a campaign was heard. A compliance desk keeps a record of what went out on air. All three problems are the same problem: hours of Thai audio nobody has time to listen to. Transcription turns a monitored daypart into text. A watch list runs over the text, a hit carries the second it was spoken, and an evidence clip is cut from that second. The audio is still the record. The text is what makes the record usable before the story has moved on.
- Capture the dayparts you already care aboutRecord the hours that matter and post each part, up to 60 minutes per request. The length is read before the charge.
- Ask for word timestamps and the written conventionEvery word carries its second, and figures arrive as digits. One response feeds the search index and the clipping tool.
- Run the watch list over the textSend the brand and product names as vocabulary, up to 50 terms, and match against the transcript your own way.
One monitored daypart
Word timestamps give every hit a second. The audio stays the record, and the text is the index into it.
What a monitoring desk costs
| Workload | Audio | Credits |
|---|---|---|
| One station, one 6-hour daypart | 6 h | 3,000 |
| One day, 4 stations | 24 h | 12,000 |
| A month, 22 weekdays | 264,000 credits | |
8.33 credits a minute of audio, billed by the millisecond. 528 hours of broadcast at that rate. Word timestamps and the written convention cost nothing extra.
What the pipeline needs from a transcript
- 60 min
- One request
- A daypart is sent as consecutive parts, each part's seconds offset by the minute it began.
- word
- A second on every hit
- The moment a name was said is what an evidence clip is cut from, and what a report cites.
- 50
- Names on the watch list
- Brands, products, and people go in as vocabulary. They then spell the same way in every station's transcript.
A transcript records what was broadcast. Any regulatory or contractual finding is the desk's to make from it.
For developers
The snippets send one recording with a watch list and word timestamps, then read the transcript, the spans, and the credits charged.
AUDIO=$(base64 < meeting.m4a | tr -d '\n')
curl -X POST https://api.paxalabs.com/v1/stt \
--max-time 300 \
-H "Authorization: Bearer $PAXA_API_KEY" \
-H "Content-Type: application/json" \
-d "{\"audio\": \"$AUDIO\", \"model\": \"paxa-stt-lite-v1-preview\", \"language\": \"th\", \"vocabulary\": [\"Paxa Labs\", \"quarterly review\"]}"AUDIO=$(base64 < meeting.m4a | tr -d '\n')
curl -X POST https://api.paxalabs.com/v1/stt \
--max-time 300 \
-H "Authorization: Bearer $PAXA_API_KEY" \
-H "Content-Type: application/json" \
-d "{\"audio\": \"$AUDIO\", \"model\": \"paxa-stt-lite-v1-preview\", \"timestamps\": \"word\"}"import base64
import os
import requests
with open("meeting.m4a", "rb") as file:
audio = base64.b64encode(file.read()).decode()
response = requests.post(
"https://api.paxalabs.com/v1/stt",
headers={"Authorization": f"Bearer {os.environ['PAXA_API_KEY']}"},
json={"audio": audio, "model": "paxa-stt-lite-v1-preview"},
# A long recording can run for minutes; give it room.
timeout=300,
)
response.raise_for_status()
body = response.json()
print(body["text"], body["usage"]["credits"], "credits")What the model was built to hear
Paxa STT Lite transcribes Thai and English, including a Thai sentence that names a brand in English. It writes word timestamps on whole Thai words. It publishes no accuracy figure until the evaluation method is published beside it.
Common questions
- Can it monitor a live stream?
- Each request takes a finished recording, up to 60 minutes. A desk that captures in rolling parts and posts each one as it closes has text within a part of real time.
- Does it separate the presenters?
- Speaker turns are available on shorter recordings and number the speakers by who spoke first. A monitoring desk usually wants the words and their seconds, which every length carries.
- What about a station that switches into English?
- It writes both. A Thai sentence naming a brand or a song title in English keeps the English, and the words on either side keep their seconds.
- Is a transcript proof of what was broadcast?
- The recording is the record. The transcript is an index into it, and every hit carries the second that opens the audio at the point in question.
Start with free credits
Sign in with Google, GitHub, or Hugging Face and spend 100 one-time free credits on your own text.