Thai speech-to-text
GoodWe sent 30 Thai test clips through this API. Whisper Large v3 made 12% character errors, about one character in 9. $0.002 per audio minute, word timestamps, SRT and VTT subtitles, files up to 100 MB.
Measured accuracy
| Model | Word error rate | Character error rate | Clips with no errors | Empty transcripts | Speed |
|---|---|---|---|---|---|
Whisper Large v3openai/whisper-large-v3 | 89% | 12% | 2 of 30 | 0 of 30 | 0.103× real time |
Good. Usable with light review. Expect to correct a word here and there, mostly names and numbers. Scored on characters, because Thai is written without spaces. The clips are clean, single-speaker read speech, so treat this as a best case for your own recordings. How we measured, and all 83 languages.
What a transcript looks like
The clip with the median error rate from the test, reference text against what the API returned.
| Spoken | สแคฟโฟลดิงไม่ได้เป็นวิธีการเรียนรู้ หากแต่เป็นเสมือนเครื่องช่วยสนับสนุนบุคคลที่กำลังเรียนรู้สิ่งใหม่ ๆ อย่างเช่น ใช้งานโปรแกรมคอมพิวเตอร์ใหม่ หรือเริ่มโครงการใหม่ |
| Whisper Large v3 | Scaffolding ไม่ได้เป็นวิธีการเรียนรู้หากแต่เป็นเสมือนเครื่องช่วยสนับสนุนบุคคลที่กำลังเรียนรู้สิ่งใหม่ๆอย่างเช่นใช้งานโปรแกรมคอมพิวเตอร์ใหม่หรือเริ่มโครงการใหม่ |
Language detection
All 10 clips we sent without a language field were identified as Thai. Auto-detection is safe here; sending language=th still skips the detection step.
Quickstart
The request is the OpenAI transcription request with a different base URL. language is optional.
curl https://api.inferenceapis.com/v1/audio/transcriptions \
-H "Authorization: Bearer $INFERENCE_API_KEY" \
-F "model=openai/whisper-large-v3" \
-F "language=th" \
-F "file=@recording.mp3" \
-F "response_format=verbose_json"import os
from openai import OpenAI
client = OpenAI(base_url="https://api.inferenceapis.com/v1", api_key=os.environ["INFERENCE_API_KEY"])
with open("recording.mp3", "rb") as f:
r = client.audio.transcriptions.create(model="openai/whisper-large-v3", file=f, language="th", response_format="verbose_json")
print(r.text)Subtitles and timestamps
response_format=srt or vtt returns a subtitle file with cues of up to two lines, broken at sentence ends and pauses. verbose_json with timestamp_granularities[]=word returns a start and end time for every word if you want to build your own.
Cost
$0.002 per minute of audio on either model: $0.12 for an hour, $12 for a hundred hours. Duration is measured from the file you upload. There is no daily cap on minutes and no subscription; enough to run your own Thai test.
FAQ
How accurate is Whisper for Thai?
On 30 clean read-speech clips it made 12% character errors, about one character in 9. Usable with light review. Expect to correct a word here and there, mostly names and numbers. Real recordings with noise, accents or several speakers will score worse.
Does language auto-detection work for Thai?
In our test, yes: all 10 clips sent without a language were identified as Thai. Sending language=th still saves the detection step on every request.
Can it translate Thai speech to English?
The API returns Thai text. For English, transcribe first and translate the text with a chat model on the same key.
Related languages: Lao (over 100%) · Khmer (100%) · Vietnamese (7.9%)
