Thai speech to text for lectures
Turn every recorded lecture into a Thai transcript with a chapter index. Students search a term, jump to the minute it was taught, and read what they missed.
What the transcript says
A definition mid-lecture
spokenค่า p-value ที่น้อยกว่า ศูนย์จุดศูนย์ห้า แปลว่าเราปฏิเสธสมมติฐานหลักได้
writtenค่า p-value ที่น้อยกว่า 0.05 แปลว่าเราปฏิเสธสมมติฐานหลักได้
The written convention puts the threshold in digits, which is how the slide and the textbook print it. The English term stays English in both.
An exam announcement
spokenสอบกลางภาควันที่ ยี่สิบสาม ตุลาคม ห้องเดิม เอาเครื่องคิดเลขมาด้วยนะครับ
writtenสอบกลางภาควันที่ 23 ตุลาคม ห้องเดิม เอาเครื่องคิดเลขมาด้วยนะครับ
A search for the exam date finds this line in either convention. The second beside it opens the announcement in the video.
A worked example
spokenถ้าอัตราดอกเบี้ย ห้าเปอร์เซ็นต์ ต่อปี เงินต้น หนึ่งหมื่นบาท ผ่านไป สามปี จะได้ดอกเบี้ยเท่าไร
writtenถ้าอัตราดอกเบี้ย 5% ต่อปี เงินต้น 10,000 บาท ผ่านไป 3 ปี จะได้ดอกเบี้ยเท่าไร
The written line reads like the problem sheet. A student revising copies the numbers straight into the working.
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 it fits a course
A university records lectures and stores them as video nobody scrubs through. A student who missed a class watches fifty minutes to find the ten that matter. A course platform sells the same recording for three semesters with no way to search it. Transcription gives the recording a text layer. Every lecture becomes a transcript the day it is recorded, with a second on every word. A search for a term lands on the minute it was taught. A chapter index is built from the transcript's own headings. A hearing-impaired student reads along with the video. The transcript keeps the language as spoken. A Thai lecture that names its terms in English keeps both.
- Send the recording when the class endsPost the audio track the lecture capture system already writes, up to 60 minutes in one 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. The chapter index and the search index are built from the same response.
- Send the course vocabularyThe term list from the syllabus, up to 50 terms. English terms keep their spelling across the semester's transcripts.
One lecture, by the minute
Word timestamps give every line a second. A student jumps to the minute and watches the rest only when it helps.
A chapter index, as a file
00:00 ทบทวนสัปดาห์ที่แล้ว 02:10 outline: การทดสอบสมมติฐาน 3 ขั้น 08:40 นิยาม p-value 15:05 ตัวอย่างที่ 1: การทดสอบค่าเฉลี่ย 27:15 ตัวอย่างที่ 2: ดอกเบี้ยทบต้น 39:50 ข้อผิดพลาดที่พบบ่อย 46:30 งานที่มอบหมาย, สอบกลางภาค 23 ต.ค.
Each chapter is a line of the transcript with its start second. The video player reads the file as a chapter track. The times shown are illustrative.
What a semester costs
| Workload | Audio | Credits |
|---|---|---|
| One lecture, 50 minutes | 50 min | 416.67 |
| A week, 12 lectures | 10 h | 5,000.04 |
| A semester, 180 lectures | 75,000.6 credits | |
8.33 credits a minute of audio, billed by the millisecond. 150 hours of lectures over 15 weeks at that rate. Word timestamps cost nothing extra.
For developers
The snippets send one recording with word timestamps and read the transcript, the spans, and the credits charged from the response.
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 { readFile } from "node:fs/promises";
const audio = (await readFile("meeting.m4a")).toString("base64");
const response = await fetch("https://api.paxalabs.com/v1/stt", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.PAXA_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ audio, model: "paxa-stt-lite-v1-preview" }),
// A long recording can run for minutes; give it room.
signal: AbortSignal.timeout(300_000),
});
if (!response.ok) throw new Error(`Transcription failed: ${response.status}`);
const { text, usage } = await response.json();
console.log(text, `${usage.credits} credits`);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 its terms 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
- What about a three-hour lecture?
- One request takes up to 60 minutes. Split the recording at a break, send the parts in parallel, and offset the seconds of each part by its start time.
- Can students read along with the video?
- Yes. Word timestamps give every word a start and an end. A caption file for the player is built from those spans, and the transcript page highlights the word being spoken.
- Does the transcript keep the lecturer's English terms?
- It writes them as spoken. A Thai sentence that switches into English for a term keeps the term in English under both conventions. A vocabulary keeps its spelling the same across lectures.
- What does a failed transcription cost?
- Nothing. The charge is taken first and refunded automatically when the request fails, and a recording the model cannot read is refused before the charge.
Start with free credits
Sign in with Google, GitHub, or Hugging Face and spend 100 one-time free credits on your own text.