Skip to main content

🇹🇭 แปลงเสียงพูดภาษาไทยเป็นข้อความ (ASR) PRO

2 ICต่อ 60 วินาที
v3.0 ใช้งานอยู่ ต.ค. 2024 POST /v3/store/speech/speech-to-text/pro

ยินดีต้อนรับสู่ Thai ASR PRO - บริการรู้จำเสียงพูดอัตโนมัติภาษาไทยขั้นสูงของเราที่ขับเคลื่อนโดย Large Language Models (LLMs) เวอร์ชันนี้มอบความแม่นยำที่เหนือกว่าและการถอดเสียงที่คำนึงถึงบริบท พร้อมทั้งรักษาความเร็วในการประมวลผลที่เหมาะสม

iApp Text to Speech API

ทดลองใช้งาน Demo

ทดลองใช้ AI Demo

เข้าสู่ระบบหรือสร้างบัญชีฟรีเพื่อใช้งาน AI Demo และสำรวจ API ที่ทรงพลังของเรา

รับ 50 เครดิตฟรี (IC) เมื่อสมัครสมาชิก!

โปรโมชันหมดเขต 31 ธันวาคม 2568

Example File (Click to try)

Selected: 2ppl.wav

เริ่มต้นใช้งาน

  1. สิ่งที่ต้องมี

    • API key จาก ไอแอพพ์เทคโนโลยี
    • ไฟล์เสียงในรูปแบบที่รองรับ
    • รูปแบบที่รองรับ: MP3, WAV, AAC, M4A
    • ความยาวไฟล์สูงสุด: ไม่เกิน 30 นาที
    • ขนาดไฟล์สูงสุด: 1GB
  2. เริ่มต้นใช้งานอย่างรวดเร็ว

    • การถอดเสียงที่แม่นยำสูงพร้อมความเข้าใจบริบท
    • การประมวลผลขั้นสูงที่ขับเคลื่อนด้วย LLM
    • รองรับภาษาไทย
  3. คุณสมบัติหลัก

    • การแยกข้อความจากไฟล์เสียงที่คำนึงถึงบริบท
    • ความแม่นยำที่เพิ่มขึ้นสำหรับสถานการณ์เสียงที่ซับซ้อน
    • การระบุผู้พูด (Speaker diarization)
    • รูปแบบการตอบสนอง JSON ที่ยืดหยุ่น
  4. ความปลอดภัยและการปฏิบัติตามข้อกำหนด

    • เป็นไปตาม GDPR และ PDPA
    • ไม่มีการเก็บรักษาข้อมูลหลังการประมวลผล
วิธีรับ API Key?

กรุณาไปที่หน้า การจัดการ API Key เพื่อดู API key ที่มีอยู่ของคุณหรือขอ API key ใหม่

API Endpoints

EndpointMethodคำอธิบายค่าใช้จ่าย
/v3/store/speech/speech-to-text/pro
Legacy: /asr/v3/pro
POSTแปลงเสียงพูดภาษาไทยเป็นข้อความ (โมเดล Pro พร้อม LLM)2 IC ต่อ 60 วินาที

API Reference

Endpoint

POST https://api.iapp.co.th/v3/store/speech/speech-to-text/pro

Headers

  • apikey (จำเป็น): API key ของคุณสำหรับการยืนยันตัวตน
  • ส่วนหัวเพิ่มเติมสร้างโดย FormData

Request Parameters

ParameterTypeคำอธิบาย
file*File (.mp3, .wav, .aac, .m4a)ไฟล์เสียงที่จะถอดความ (ไม่เกิน 30 นาที)
chunk_sizeIntegerขนาด Chunk ของเสียง (แนะนำ: 7)

ตัวอย่างโค้ด

Curl

curl -X POST https://api.iapp.co.th/v3/store/speech/speech-to-text/pro \
-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/pro"

payload = {'use_asr_pro': '1', 'chunk_size': '7'} #ตั้งค่าเป็น '1' สำหรับ iApp ASR PRO
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", "1") // ตั้งค่าเป็น '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/pro",
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/pro',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURL_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array('file'=> new CURLFILE('{YOUR_UPLOADED_FILE}'),
'use_asr_pro' => '1',
'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": "1",
"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/pro")!,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","1")
.addFormDataPart("chunk_size","7")
.build()
val request = Request.Builder()
.url("https://api.iapp.co.th/v3/store/speech/speech-to-text/pro")
.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","1")
.addFormDataPart("chunk_size","7")
.build();
Request request = new Request.Builder()
.url("https://api.iapp.co.th/v3/store/speech/speech-to-text/pro")
.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/pro'));
request.fields.addAll({
'use_asr_pro': '1',
'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 PRO ในชุดข้อมูลทดสอบสองเวอร์ชันที่แตกต่างกัน

เงื่อนไขการทดสอบ

  1. ชุดข้อมูลที่ไม่เคยเห็น
  2. ภาษาไทยเท่านั้น
  3. ความหลากหลายของผู้พูด: ชาย, หญิง, เด็ก

ชุดข้อมูลทดสอบภาษาไทย Mozilla Common Voice 17.0

เยี่ยมชมชุดข้อมูลบน Hugging Face

ผลลัพธ์:

  • ขนาดชุดข้อมูลทดสอบ: 11,042 ตัวอย่าง
  • อัตราข้อผิดพลาดคำเฉลี่ย (WER): 0.0801 หรือ 8.01%
  • อัตราข้อผิดพลาดตัวอักษรเฉลี่ย (CER): 0.0219 หรือ 2.19%
  • ความแม่นยำเฉลี่ยตาม WER: 91.99%
  • ความแม่นยำเฉลี่ยตาม CER: 97.81%

ความเร็วในการประมวลผล

  • ปรับแต่งเพื่อความแม่นยำมากกว่าความเร็ว

ราคา

ชื่อบริการ AI APIEndpointIC ต่อวินาทีOn-Premise
Thai Speech To Text (ASR) iapp-asr-v3-en [Pro Model]2 IC/60 วินาทีติดต่อ
iapp-asr-v3-th-en [Pro Model]2 IC/60 วินาที