🇨🇳 Chinese Speech-to-Text (ASR) PRO 🆕
The Multilingual Translation API provides fast, accurate translation between 28 languages using state-of-the-art language models. The API is designed for high performance and reliability with support for language detection and optimized handling of longer texts.
🆕 ระบบแปลงเสียงพูดภาษาไทยเป็นข้อความ

Try Demo
Example File (Click to try)
Selected: john-china.wav
Demo key is limited to 10 requests per day per IP
Click here to get your API key
Getting Started
Prerequisites
- An API key from iApp Technology
- Audio files in supported formats
- Maximum file length: No more than 1 hours
Key Features
- Text extraction from audio files
- Speaker diarization for multi-speaker conversations
- Support for various audio formats
- High accuracy transcription with context awareness
Security & Compliance
- API key authentication
- GDPR and PDPA compliant
API Usage
Supported File Formats
The API supports the following audio and video file formats:
- Audio:
.mp3
,.wav
,.m4a
,.aac
,.aif
,.cda
,.flac
,.mid
,.ogg
,.wma
Endpoint: POST /v1/audio/stt/zh/transcriptions
Header:
Content-Type
: multipart/form-dataapikey
: Your API key for authentication
Form Parameters:
Parameter | Type | Required | Default | Description |
---|---|---|---|---|
file | File | Yes | - | The audio file to transcribe |
prompt | String | No | "base" | Prompt template to use |
chunk_size | Integer | No | 20 | Size in seconds for processing audio chunks |
use_asr_pro | Boolean | No | true | Use ASR Pro model |
Sample Request:
curl -X POST "http://api.iapp.co.th/v1/audio/stt/zh/transcriptions" \
-H "Content-Type: multipart/form-data" \
-F "file=@/path/to/your/audio.mp3" \
-F "prompt=base" \
-F "chunk_size=20" \
-F "use_asr_pro=true"
Sample Response:
{
"output": [
{
"text": "Transcribed text from segment one.",
"start": 0.0,
"end": 5.28,
"speaker": "SPEAKER_00",
"segment": 0
},
{
"text": "Transcribed text from segment two.",
"start": 5.28,
"end": 10.56,
"speaker": "SPEAKER_01",
"segment": 1
}
],
"audio_duration_in_seconds": 60.5,
"uploaded_file_name": "example.mp3",
"processing_time_in_seconds": 12.34,
"use_asr_pro": true,
"asr_pro_is_used": true,
"iapp": {
"seconds": 60.5
}
}
Response Status Codes
200 OK
: Request successful400 Bad Request
: Invalid request (e.g., no file uploaded, unsupported file format)404 Not Found
: Task ID not found500 Internal Server Error
: Processing failed, server error
Notes
- Speaker diarization is supported, with segments containing both speaker IDs and timestamp information.
Code Examples
Python Example
import requests
def transcribe_audio(file_path, api_key):
url = "http://api.iapp.co.th/v1/audio/stt/zh/transcriptions"
headers = {"apikey": api_key}
files = {"file": open(file_path, "rb")}
data = {
"prompt": "base",
"chunk_size": 20,
"use_asr_pro": true
}
response = requests.post(url, headers=headers, files=files, data=data)
if response.status_code == 200:
return response.json()
else:
return f"Error: {response.status_code}, {response.text}"
JavaScript Example
async function transcribeAudio(filePath, apiKey) {
const url = "http://api.iapp.co.th/v1/audio/stt/zh/transcriptions"
const formData = new FormData()
formData.append("file", await fetch(filePath).then((r) => r.blob()))
formData.append("prompt", "base")
formData.append("chunk_size", "20")
formData.append("use_asr_pro", "true")
const response = await fetch(url, {
method: "POST",
headers: {
apikey: apiKey,
},
body: formData,
})
if (response.ok) {
return await response.json()
} else {
throw new Error(`Error: ${response.status}, ${await response.text()}`)
}
}
PHP Example
function transcribe_audio($file_path, $api_key) {
$url = "http://api.iapp.co.th/v1/audio/stt/zh/transcriptions";
$curl = curl_init();
$post_data = [
'file' => new CURLFile($file_path),
'prompt' => 'base',
'chunk_size' => '20',
'use_asr_pro' => 'true'
];
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $post_data,
CURLOPT_HTTPHEADER => [
"apikey: $api_key"
]
]);
$response = curl_exec($curl);
$status_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($status_code === 200) {
return json_decode($response, true);
} else {
return "Error: $status_code, $response";
}
}
// Usage
$result = transcribe_audio("path/to/audio.mp3", "YOUR_API_KEY");
print_r($result);