🇹🇭 ระบบแปลงเสียงพูดภาษาไทยเป็นข้อความ (Base Model)
Welcome to Thai ASR Base - our standard Thai Automatic Speech Recognition service. This version offers fast processing speed while maintaining good accuracy for general use cases.
ลองใช้ Demo
ทดลองใช้ AI Demo
เข้าสู่ระบบหรือสร้างบัญชีฟรีเพื่อใช้งาน AI Demo และสำรวจ API ที่ทรงพลังของเรา
รับ 50 เครดิตฟรี (IC) เมื่อสมัครสมาชิก!
โปรโมชันหมดเขต 31 ธันวาคม 2568
เริ่มต้นใช้งาน
-
ข้อกำหนดเบื้องต้น
- คีย์ API จาก บริษัท ไอแอพพ์เทคโนโลยี จำกัด
- ไฟล์เสียงในรูปแบบที่รองรับ
- รูปแบบที่รองรับ: MP3, WAV, AAC, M4A
- ความยาวไฟล์สูงสุด: ไม่เกิน 30 นาที
- ขนาดไฟล์สูงสุด: 1GB
-
เริ่มต้นอย่างรวดเร็ว
- การประมวลผลที่รวดเร็วด้วยเวลาตอบสนอง 0.3 วินาที
- ความแม่นยำสูง (ความแม่นยำ WER 85.48%)
- รองรับภาษาไทย
-
คุณสมบัติหลัก
- การดึงข้อความจากไฟล์เสียง
- การแยกผู้พูด
- ความเร็วในการประมวลผลที่รวดเร็ว
- รูปแบบการตอบสนอง JSON ที่ยืดหยุ่น
-
ความปลอดภัยและการปฏิบัติตามข้อกำหนด
- เป็นไปตาม GDPR และ PDPA
- ไม่มีการเก็บข้อมูลหลังการประมวลผล
กรุณาไปที่หน้า การจัดการคีย์ API เพื่อดูคีย์ API ที่มีอยู่ของคุณ หรือขอคีย์ใหม่
API Endpoints
| Endpoint | Method | คำอธิบาย | ราคา |
|---|---|---|---|
/v3/store/speech/speech-to-text/baseLegacy: /asr/v3 | POST | แปลงเสียงพูดภาษาไทยเป็นข้อความ (โมเดลพื้นฐาน) | 1 IC ต่อ 60 วินาที |
API Reference
Endpoint
POST https://api.iapp.co.th/v3/store/speech/speech-to-text/base
Headers
apikey(จำเป็น): คีย์ API ของคุณเพื่อการยืนยันตัวตน- ส่วนหัวเพิ่มเติมจะถูกสร้างโดย FormData
Request Parameters
| Parameter | Type | คำอธิบาย |
|---|---|---|
| file* | File (.mp3, .wav, .aac, .m4a) | ไฟล์เสี ยงที่จะแปลง (ไม่เกิน 30 นาที) |
| chunk_size | Integer | ขนาด Chunk ของเสียง (แนะนำ: 7) |
ตัวอย่างโค้ด
Curl
curl -X POST https://api.iapp.co.th/v3/store/speech/speech-to-text/base \
-H "apikey: YOUR_API_KEY" \
-F "file=@/path/to/file.jpg"
Python
import requests
url = "https://api.iapp.co.th/v3/store/speech/speech-to-text/base"
payload = {'use_asr_pro': '0', 'chunk_size': '7'}
files=[
('file',('{YOUR_UPLOADED_FILE}',open('{YOUR_UPLOADED_FILE_PATH}','rb'),'application/octet-stream'))
]
headers = {
'apikey': '{YOUR_API_KEY}'
}
response = requests.request("POST", url, headers=headers, data=payload, files=files)
print(response.text)
Javascript
const axios = require("axios")
const FormData = require("form-data")
const fs = require("fs")
let data = new FormData()
data.append("file", fs.createReadStream("YOUR_UPLOADED_FILE"))
data.append("use_asr_pro", "0") // ตั้งค่าเป็น '1' สำหรับ iApp ASR PRO
data.append("chunk_size", "7")
let config = {
method: "post",
maxBodyLength: Infinity,
url: "https://api.iapp.co.th/v3/store/speech/speech-to-text/base",
headers: {
apikey: "{YOUR_API_KEY}",
...data.getHeaders(),
},
data: data,
}
axios
.request(config)
.then((response) => {
console.log(JSON.stringify(response.data))
})
.catch((error) => {
console.log(error)
})
PHP
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.iapp.co.th/v3/store/speech/speech-to-text/base',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLHTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array('file'=> new CURLFILE('{YOUR_UPLOADED_FILE}'),
'use_asr_pro' => '0',
'chunk_size' => '7'),
CURLOPT_HTTPHEADER => array(
'apikey: {YOUR_API_KEY}'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Swift
let parameters = [
[
"key": "file",
"src": "{YOUR_UPLOADED_FILE}",
"type": "file"
],
[
"key": "use_asr_pro",
"value": "0",
"type": "text"
],
[
"key": "chunk_size",
"value": "7",
"type": "text"
]] as [[String: Any]]
let boundary = "Boundary-\(UUID().uuidString)"
var body = Data()
var error: Error? = nil
for param in parameters {
if param["disabled"] != nil { continue }
let paramName = param["key"]!
body += Data("--\(boundary)\r\n".utf8)
body += Data("Content-Disposition:form-data; name=\"\(paramName)\"".utf8)
if param["contentType"] != nil {
body += Data("\r\nContent-Type: \(param["contentType"] as! String)".utf8)
}
let paramType = param["type"] as! String
if paramType == "text" {
let paramValue = param["value"] as! String
body += Data("\r\n\r\n\(paramValue)\r\n".utf8)
} else {
let paramSrc = param["src"] as! String
let fileURL = URL(fileURLWithPath: paramSrc)
if let fileContent = try? Data(contentsOf: fileURL) {
body += Data("; filename=\"\(paramSrc)\"\r\n".utf8)
body += Data("Content-Type: \"content-type header\"\r\n".utf8)
body += Data("\r\n".utf8)
body += fileContent
body += Data("\r\n".utf8)
}
}
}
body += Data("--\(boundary)--\r\n".utf8);
let postData = body
var request = URLRequest(url: URL(string: "https://api.iapp.co.th/v3/store/speech/speech-to-text/base")!,timeoutInterval: Double.infinity)
request.addValue("{YOUR_API_KEY}", forHTTPHeaderField: "apikey")
request.addValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
request.httpMethod = "POST"
request.httpBody = postData
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data else {
print(String(describing: error))
return
}
print(String(data: data, encoding: .utf8)!)
}
task.resume()
Kotlin
val client = OkHttpClient()
val mediaType = "text/plain".toMediaType()
val body = MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("file","{YOUR_UPLOADED_FILE}",
File("{YOUR_UPLOADED_FILE_PATH}").asRequestBody("application/octet-stream".toMediaType()))
.addFormDataPart("use_asr_pro","0")
.addFormDataPart("chunk_size","7")
.build()
val request = Request.Builder()
.url("https://api.iapp.co.th/v3/store/speech/speech-to-text/base")
.post(body)
.addHeader("apikey", "{YOUR_API_KEY}")
.build()
val response = client.newCall(request).execute()
Java
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("file","{YOUR_UPLOADED_FILE}",
RequestBody.create(MediaType.parse("application/octet-stream"),
new File("{YOUR_UPLOADED_FILE_PATH}")))
.addFormDataPart("use_asr_pro","0")
.addFormDataPart("chunk_size","7")
.build();
Request request = new Request.Builder()
.url("https://api.iapp.co.th/v3/store/speech/speech-to-text/base")
.method("POST", body)
.addHeader("apikey", "{YOUR_API_KEY}")
.build();
Response response = client.newCall(request).execute();
Dart
var headers = {
'apikey': '{YOUR_API_KEY}'
};
var request = http.MultipartRequest('POST', Uri.parse('https://api.iapp.co.th/v3/store/speech/speech-to-text/base'));
request.fields.addAll({
'use_asr_pro': '0',
'chunk_size': '7'
});
request.files.add(await http.MultipartFile.fromPath('file', '{YOUR_UPLOADED_FILE'));
request.headers.addAll(headers);
http.StreamedResponse response = await request.send();
if (response.statusCode == 200) {
print(await response.stream.bytesToString());
}
else {
print(response.reasonPhrase);
}
ความแม่นยำและประสิทธิภาพ
ความแม่นยำโดยรวม
ผลการทดสอบบนชุดข้อมูลทดสอบภาษาไทยจากชุดข้อมูล Mozilla Common Voice เราได้ประเมินประสิทธิภาพของ iApp ASR ในสองเวอร์ชันที่แตกต่างกันของชุดข้อมูลทดสอบ
-
เงื่อนไขการทดสอบ
- ชุดข้อมูลที่ไม่เคยเห็นมาก่อน
- เฉพาะภาษาไทย
- ความหลากหลายของผู้พูด: ชาย, หญิง, เด็ก
-
ชุดข้อมูลทดสอบ Mozilla Common Voice 16.1 ภาษาไทย (เวอร์ชัน 1)
เยี่ยมชมชุดข้อมูลบน Hugging Face
ผลลัพธ์:
- ขนาดชุดข้อมูลทดสอบ: 11,038 ตัวอย่างทดสอบ
- อัตราข้อผิดพลาดของคำโดยเฉลี่ย: 1.11%
- อัตราข้อผิดพลาดของคำโดยเฉลี่ย (ไม่เว้นวรรค): 0.66%
-
ชุดข้อมูลทดสอบ Mozilla Common Voice 17.0 ภาษาไทย (เวอร์ชัน 2)
เยี่ยมชมชุดข้อมูลบน Hugging Face
ผลลัพธ์:
- ขนาดชุดข้อมูลทดสอบ: 11,042 ตัวอย่าง
- อัตราข้อผิดพลาดของคำ (WER): 14.52%
- อัตราข้อผิดพลาดของอักขระ (CER): 5.87%
- ความแม่นยำตาม WER: 85.48%
- ความแม่นยำตาม CER: 94.13%
ความเร็วในการประมวลผล
- เวลาตอบสน องโดยเฉลี่ย: 0.3 วินาที
- เร็วกว่าผู้ให้บริการรายอื่นถึง 15 เท่า
ผลการทดสอบโดยละเอียด (ใน Google Sheets):
ราคา
| ชื่อบริการ AI API | Endpoint | IC ต่อ วินาที | On-Premise |
|---|---|---|---|
| Thai Speech To Text (ASR) | iapp-asr-v3-en [โมเดลพื้นฐาน] | 1 IC/60 วินาที | ติดต่อ |
| iapp-asr-v3-th-en [โมเดลพื้นฐาน] | 1 IC/60 วินาที |