Skip to main content

Text-to-Speech ภาษาไทย V3 (เสียงน้องไข่ต้ม)

เวอร์ชัน ALPHA

ประกาศเวอร์ชัน Alpha: API นี้อยู่ระหว่างการทดสอบ Alpha บริการอาจมีการใช้งานไม่ต่อเนื่อง โปรดใช้ TTS V2 (เสถียร) สำหรับการใช้งานจริง

1 IC ต่อ 400 ตัวอักษร
v3.0 ALPHA เสียง

ยินดีต้อนรับสู่ API Text-to-Speech ภาษาไทย V3 ที่มาพร้อมกับ เสียงน้องไข่ต้ม (Kaitom Voice) โฉมใหม่เวอร์ชัน 3 เวอร์ชันยุคถัดไปนี้มอบความเป็นธรรมชาติของเสียงพูดที่ได้รับการปรับปรุงอย่างมาก ด้วยการปรับข้อความขั้นสูง, รองรับการโคลนเสียง, และการจัดการภาษาไทย-อังกฤษโดยอัตโนมัติ

iApp Text to Speech API V3 - เสียงน้องไข่ต้ม

มีอะไรใหม่ใน V3​

  • การปรับข้อความอัจฉริยะ (Smart Text Normalization) - จัดการตัวเลข, วันที่, สกุลเงิน, และอักขระพิเศษโดยอัตโนมัติ
  • การตรวจจับภาษาอัตโนมัติ (Automatic Language Detection) - ไม่ต้องระบุโหมดภาษา V3 จัดการภาษาไทย-อังกฤษที่ผสมกันโดยอัตโนมัติ
  • ขีดจำกัดอักขระที่ขยายขึ้น - รองรับข้อความสูงสุด 10,000 ตัวอักษรต่อคำขอ
  • API JSON ที่ง่ายขึ้น - ส่วนข้อมูลคำขอ JSON ที่สะอาดแทนข้อมูลแบบฟอร์ม
  • เสียงคุณภาพสูง - เอาต์พุต WAV 24 kHz สำหรับแอปพลิเคชันระดับมืออาชีพ

ทดลองเดโม — เสียงเริ่มต้น (น้องไข่ต้ม)​

ทดลองใช้ AI Demo

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

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

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

V3 automatically handles Thai-English mixed text. No language mode selection needed.

0.5x1.0x1.5x

Natural range: 0.8 – 1.2. Default 1.0.

ทดลองเดโม — การโคลนเสียง (ภาษาไทย)​

ALPHA

อัปโหลดคลิปเสียงภาษาไทยที่ชัดเจนความยาว 8–12 วินาทีพร้อมข้อความที่ตรงกัน และโมเดลจะพูดข้อความภาษาไทยของคุณด้วยเสียงนั้น การโคลนเสียงรองรับ ภาษาไทยเท่านั้น ในขณะนี้

ทดลองใช้ AI Demo

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

⚠️ Voice Cloning Demo (Thai-only, Alpha): Clone any Thai voice from a short reference clip. FREE to use until 31 May 2026.

📋 How to use this demo

  1. Step 1: Record yourself (max 10 seconds) speaking any short Thai sentence — OR upload an existing Thai audio clip.
  2. Step 2: Type the exact Thai words you spoke into the "Reference Transcript" box. (Word-for-word — not a description.)
  3. Step 3: Type the new Thai text you want the cloned voice to say.
  4. Step 4: Click Generate Cloned Voice.
00 / 10s

💡 Speak a natural Thai sentence such as: "สวัสดีครับ ผมชื่อไข่ต้ม วันนี้อากาศดีมาก". Recording will stop automatically at 10 seconds.

— or upload a file —

⚠️ This must match your recording word-for-word. Do not write a description like "เสียงผู้ชายพูดทักทาย" — write the actual sentence you spoke. The clone quality depends on this matching the audio exactly.

0.5x1.0x1.5x

Natural range: 0.8 – 1.2. Default 1.0.

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

  1. ข้อกำหนดเบื้องต้น

    • คีย์ API จาก iApp Technology
    • ข้อความอินพุตเป็นภาษาไทยและ/หรือภาษาอังกฤษ
    • ความยาวข้อความสูงสุด: 10,000 ตัวอักษร
    • รูปแบบเอาต์พุตที่รองรับ: WAV (24 kHz)
  2. เริ่มต้นอย่างรวดเร็ว

    • ประมวลผลรวดเร็วพร้อมผลลัพธ์คุณภาพสูง
    • การสร้างเสียงพูดที่เป็นธรรมชาติที่ได้รับการปรับปรุง
    • รองรับข้อความผสมภาษาไทย-อังกฤษโดยอัตโนมัติ
    • ไม่จำเป็นต้องเลือกโหมดภาษา
  3. คุณสมบัติหลัก

    • เอ็นจิ้นสังเคราะห์เสียงรุ่นถัดไป
    • การปรับข้อความอัจฉริยะ (ตัวเลข, วันที่, สกุลเงิน)
    • การจัดการภาษาไทย-อังกฤษอัตโนมัติ
    • รองรับอิโมจิและอักขระพิเศษ
    • ขีดจำกัด 10,000 ตัวอักษรที่ขยายขึ้น
  4. ความปลอดภัยและการปฏิบัติตามข้อกำหนด

    • เป็นไปตาม GDPR และ PDPA
    • ไม่มีการเก็บข้อมูลหลังการประมวลผล
จะรับคีย์ API ได้อย่างไร?

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

เวอร์ชันก่อนหน้า
  • V2: กำลังมองหา API แบบ POST พร้อมการเลือกโหมดภาษาอยู่ใช่ไหม? ดู Text-to-Speech V2
  • V1: กำลังมองหา API แบบ GET แบบเดิมพร้อมเสียง Kaitom V1 หรือ Cee อยู่ใช่ไหม? ดู Text-to-Speech V1

Endpoint API​

EndpointMethodContent-Typeคำอธิบายราคา
/v3/store/audio/ttsPOSTapplication/jsonเสียงเริ่มต้น (น้องไข่ต้ม) — ข้อความผสมไทย/อังกฤษ1 IC ต่อ 400 ตัวอักษร
/v3/store/audio/tts/clonePOSTmultipart/form-dataการโคลนเสียง — สังเคราะห์ข้อความภาษาไทยด้วยเสียงที่กำหนดเอง1 IC ต่อ 400 ตัวอักษร
/v3/store/audio/tts/detectPOSTmultipart/form-dataการตรวจจับลายน้ำ AI — ตรวจสอบว่าคลิปเสียงถูกสร้างโดย AI จาก V3 หรือไม่ฟรี

ตัวอย่างรวดเร็ว​

เสียงเริ่มต้น — ตัวอย่างคำขอ​

curl -X POST 'https://api.iapp.co.th/v3/store/audio/tts' \
--header 'apikey: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{"text": "สวัสดีครับ น้องไข่ต้ม เวอร์ชั่น 3", "speed": 1.0}' \
--output 'output.pcm'

การโคลนเสียง — ตัวอย่างคำขอ​

curl -X POST 'https://api.iapp.co.th/v3/store/audio/tts/clone' \
--header 'apikey: YOUR_API_KEY' \
--form 'text=สวัสดีครับ วันนี้ทดสอบการโคลนเสียง' \
--form 'speed=1.0' \
--form 'ref_text=ฮัลโหล สวัสดีครับ ผมชื่อไข่ต้ม' \
--form 'ref_audio=@reference.wav' \
--output 'output.pcm'

การตรวจจับลายน้ำ AI — ตัวอย่างคำขอ​

curl -X POST 'https://api.iapp.co.th/v3/store/audio/tts/detect' \
--header 'apikey: YOUR_API_KEY' \
--form 'audio=@suspect.wav'

ส่งคืน JSON:

{ "is_ai_generated": true, "confidence": 1.0 }

ตัวอย่างการตอบกลับ​

เนื้อหาการตอบกลับเป็น PCM แบบลงนาม 16 บิต Little-endian ดิบ, โมโน, 24 kHz ที่สตรีมเป็น application/octet-stream หากต้องการเล่นหรือบันทึกเป็น .wav ให้ใส่ส่วนหัว WAV:

ffmpeg -f s16le -ar 24000 -ac 1 -i output.pcm output.wav

เอกสารอ้างอิง API​

1. Endpoint เสียงเริ่มต้น (น้องไข่ต้ม)​

  • Endpoint: POST https://api.iapp.co.th/v3/store/audio/tts
  • Content-Type: application/json
  • Headers:
    • apikey: คีย์ API ของคุณ (จำเป็น)

เนื้อหาคำขอ​

ฟิลด์ประเภทจำเป็นค่าเริ่มต้นหมายเหตุ
textstringใช่—สูงสุดประมาณ 1,000 ตัวอักษรไทยต่อการเรียก ข้อความที่ยาวกว่าจะถูกแบ่งส่วนอัตโนมัติฝั่งเซิร์ฟเวอร์
speedfloatไม่1.0ช่วงปกติ 0.8–1.2 ค่าต่ำ = ช้าลง
{
"text": "สวัสดีครับ ยินดีต้อนรับสู่ iApp",
"speed": 1.0
}

2. Endpoint การโคลนเสียง (ภาษาไทยเท่านั้น)​

  • Endpoint: POST https://api.iapp.co.th/v3/store/audio/tts/clone
  • Content-Type: multipart/form-data
  • Headers:
    • apikey: คีย์ API ของคุณ (จำเป็น)

ฟิลด์ฟอร์ม​

ฟิลด์ประเภทจำเป็นค่าเริ่มต้นหมายเหตุ
textstringใช่—ข้อความภาษาไทยที่จะสังเคราะห์
speedfloatไม่1.0อัตราความเร็วของเสียง
ref_textstringใช่—การถอดเสียงภาษาไทยที่ตรงตามตัว ของ ref_audio (ไม่ใช่คำอธิบาย)
ref_audiofileใช่—WAV หรือ MP3, 8–12 วินาที ของเสียงภาษาไทยที่ชัดเจน

ข้อจำกัด:

  1. คลิปอ้างอิงต้อง ≤ 15 วินาที คลิปที่ยาวกว่าจะถูกตัดออกโดยไม่มีการแจ้ง; หาก ref_text อธิบายส่วนที่ถูกตัด ผลลัพธ์จะเร็วขึ้นและผิดเพี้ยน
  2. ref_text ต้องตรงกับสิ่งที่พูดใน ref_audio อย่างถูกต้อง คำต่อคำ
  3. คำขอโคลนเสียงจะถูกประมวลผลตามลำดับต่อเซิร์ฟเวอร์ คาดว่าจะมีความล่าช้าเนื่องจากการรอคิวภายใต้ภาระงานพร้อมกัน
  4. การโคลนเสียงรองรับ ภาษาไทยเท่านั้น ในขณะนี้

การตอบกลับ (Endpoint TTS + Clone)​

  • Content-Type: application/octet-stream
  • Body: PCM แบบลงนาม 16 บิต Little-endian ดิบ, โมโน, 24 kHz — สตรีมเป็นไบต์ที่เข้ามา
  • คำนวณระยะเวลา: duration_seconds = byte_length / 48000
  • หากต้องการบันทึกเป็นไฟล์ที่เล่นได้ ให้ใส่ส่วนหัว WAV (ดู ตัวอย่างเบราว์เซอร์ ด้านล่าง) หรือใช้ ffmpeg -f s16le -ar 24000 -ac 1 -i out.pcm out.wav

3. Endpoint ตรวจจับลายน้ำ AI​

ตรวจสอบว่าคลิปเสียงที่กำหนดถูกสร้างโดย Thai TTS V3 หรือไม่ เอาต์พุตทุกอย่างจาก endpoint เสียงเริ่มต้นและโคลนเสียงจะฝังลายน้ำ AudioSeal ที่ไม่สามารถได้ยินได้; endpoint นี้จะอ่านกลับ

  • Endpoint: POST https://api.iapp.co.th/v3/store/audio/tts/detect
  • Content-Type: multipart/form-data
  • Headers:
    • apikey: คีย์ API ของคุณ (จำเป็น)

ฟิลด์ฟอร์ม​

ฟิลด์ประเภทจำเป็นหมายเหตุ
audiofileใช่WAV (อัตราสุ่มใดก็ได้; แนะนำโมโน) หรือ PCM ดิบ (.pcm, ถือว่าเป็น 24 kHz โมโน int16)

การตอบกลับ​

  • Content-Type: application/json
  • Body:
{
"is_ai_generated": true,
"confidence": 1.0
}
ฟิลด์ประเภทคำอธิบาย
is_ai_generatedbooleantrue ถ้า confidence > 0.5
confidencefloatความน่าจะเป็น (0..1) ที่เสียงมีลายน้ำ V3

คุณสมบัติของลายน้ำ​

  • ไม่สามารถได้ยิน — ฝังที่ระดับ ~−30 dBFS ที่เหลืออยู่; ผู้ฟังไม่ได้ยิน
  • ทนทาน ต่อการเข้ารหัสซ้ำ MP3 / OPUS, การแปลงรูปแบบ (PCM ↔ WAV ↔ MP3), และการสุ่มตัวอย่างใหม่
  • ไม่ทนทาน ต่อการเข้ารหัสซ้ำด้วย Neural-codec หรือการลบโดยเจตนา — ถือว่าเป็นสัญญาณ AI ที่มีความรับผิดชอบ, ไม่ใช่ DRM ที่ป้องกันการปลอมแปลง
  • ความมั่นใจเชิงประจักษ์: เอาต์พุต TTS V3 จะส่งคืน ~1.0; เสียงอ้างอิงของมนุษย์ที่ชัดเจนจะส่งคืนค่าใกล้ 0 (อัตราผลบวกลวง < 0.001 ในการทดสอบของเรา)
  • วัตถุประสงค์: ช่วยให้เครื่องมือตรวจสอบความถูกต้องของเนื้อหาภายนอกและระบบตรวจสอบการใช้งานในทางที่ผิดสามารถระบุเสียงสังเคราะห์ที่สร้างโดย V3 ได้, เพื่อลดการใช้คุณสมบัติการโคลนเสียงในทางที่ผิด

ตัวอย่าง curl​

curl -X POST 'https://api.iapp.co.th/v3/store/audio/tts/detect' \
--header 'apikey: YOUR_API_KEY' \
--form 'audio=@suspect.wav'

ตัวอย่าง Python​

import requests

with open("suspect.wav", "rb") as f:
files = {"audio": ("suspect.wav", f, "audio/wav")}
r = requests.post(
"https://api.iapp.co.th/v3/store/audio/tts/detect",
headers={"apikey": "YOUR_API_KEY"},
files=files,
timeout=30,
)
r.raise_for_status()
print(r.json()) # {"is_ai_generated": True, "confidence": 1.0}

ตัวอย่าง JavaScript (Fetch)​

const form = new FormData();
form.append("audio", file); // a File or Blob

const resp = await fetch(
"https://api.iapp.co.th/v3/store/audio/tts/detect",
{
method: "POST",
headers: { "apikey": "YOUR_API_KEY" },
body: form,
}
);
const result = await resp.json();
// { is_ai_generated: true, confidence: 1.0 }

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

Python​

import requests
import json

url = "https://api.iapp.co.th/v3/store/audio/tts"
headers = {
"apikey": "YOUR_API_KEY",
"Content-Type": "application/json"
}
data = {
"text": "สวัสดีครับ น้องไข่ต้ม เวอร์ชั่น 3 มาพร้อมเสียงที่เป็นธรรมชาติมากขึ้น"
}

response = requests.post(url, headers=headers, json=data)
with open("output.wav", "wb") as f:
f.write(response.content)
print("Audio saved to output.wav")

JavaScript (Node.js)​

const axios = require("axios")
const fs = require("fs")

const url = "https://api.iapp.co.th/v3/store/audio/tts"
const config = {
headers: {
"apikey": "YOUR_API_KEY",
"Content-Type": "application/json"
},
responseType: "arraybuffer"
}
const data = {
text: "สวัสดีครับ น้องไข่ต้ม เวอร์ชั่น 3 มาพร้อมเสียงที่เป็นธรรมชาติมากขึ้น"
}

axios.post(url, data, config)
.then((response) => {
fs.writeFileSync("output.wav", response.data)
console.log("Audio saved to output.wav")
})
.catch((error) => console.error(error))

JavaScript (Fetch API)​

Endpoint สตรีม PCM ดิบ ให้ใส่ส่วนหัว WAV ก่อนเล่น:

async function playThaiTTS(text) {
const resp = await fetch("https://api.iapp.co.th/v3/store/audio/tts", {
method: "POST",
headers: {
"apikey": "YOUR_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({ text, speed: 1.0 })
});
if (!resp.ok) throw new Error(`TTS failed: ${resp.status}`);
const pcm = new Uint8Array(await resp.arrayBuffer());
const wav = pcmToWav(pcm, 24000, 1);
const url = URL.createObjectURL(new Blob([wav], { type: "audio/wav" }));
new Audio(url).play();
}

function pcmToWav(pcm, sampleRate, channels) {
const byteRate = sampleRate * channels * 2;
const buf = new ArrayBuffer(44 + pcm.byteLength);
const v = new DataView(buf);
const write = (o, s) => [...s].forEach((c, i) => v.setUint8(o + i, c.charCodeAt(0)));
write(0, "RIFF"); v.setUint32(4, 36 + pcm.byteLength, true);
write(8, "WAVE"); write(12, "fmt ");
v.setUint32(16, 16, true); v.setUint16(20, 1, true);
v.setUint16(22, channels, true); v.setUint32(24, sampleRate, true);
v.setUint32(28, byteRate, true); v.setUint16(32, channels * 2, true);
v.setUint16(34, 16, true); write(36, "data");
v.setUint32(40, pcm.byteLength, true);
new Uint8Array(buf, 44).set(pcm);
return buf;
}

Python — การโคลนเสียง​

import requests, wave

with open("reference.wav", "rb") as f:
files = {"ref_audio": ("reference.wav", f, "audio/wav")}
data = {
"text": "สวัสดีครับ วันนี้ทดสอบการโคลนเสียง",
"speed": "1.0",
"ref_text": "ฮัลโหล สวัสดีครับ ผมชื่อไข่ต้ม",
}
r = requests.post(
"https://api.iapp.co.th/v3/store/audio/tts/clone",
headers={"apikey": "YOUR_API_KEY"},
data=data, files=files, stream=True, timeout=60,
)
r.raise_for_status()

with wave.open("cloned.wav", "wb") as wf:
wf.setnchannels(1); wf.setsampwidth(2); wf.setframerate(24000)
for chunk in r.iter_content(chunk_size=None):
if chunk:
wf.writeframes(chunk)
print("Saved cloned.wav")

PHP​

<?php
$curl = curl_init();

$data = json_encode([
"text" => "สวัสดีครับ น้องไข่ต้ม เวอร์ชั่น 3 มาพร้อมเสียงที่เป็นธรรมชาติมากขึ้น"
]);

curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.iapp.co.th/v3/store/audio/tts',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $data,
CURLOPT_HTTPHEADER => array(
'apikey: YOUR_API_KEY',
'Content-Type: application/json'
),
));

$response = curl_exec($curl);
curl_close($curl);

file_put_contents("output.wav", $response);
echo "Audio saved to output.wav";
?>

Swift​

import Foundation

let url = URL(string: "https://api.iapp.co.th/v3/store/audio/tts")!
var request = URLRequest(url: url, timeoutInterval: Double.infinity)
request.addValue("YOUR_API_KEY", forHTTPHeaderField: "apikey")
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpMethod = "POST"

let body: [String: Any] = [
"text": "สวัสดีครับ น้องไข่ต้ม เวอร์ชั่น 3"
]
request.httpBody = try? JSONSerialization.data(withJSONObject: body)

let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data else {
print(String(describing: error))
return
}
// Save or play audio data
try? data.write(to: URL(fileURLWithPath: "output.wav"))
print("Audio saved to output.wav")
}
task.resume()

Kotlin​

val client = OkHttpClient()
val mediaType = "application/json".toMediaType()
val body = """{"text": "สวัสดีครับ น้องไข่ต้ม เวอร์ชั่น 3"}""".toRequestBody(mediaType)

val request = Request.Builder()
.url("https://api.iapp.co.th/v3/store/audio/tts")
.post(body)
.addHeader("apikey", "YOUR_API_KEY")
.addHeader("Content-Type", "application/json")
.build()

val response = client.newCall(request).execute()
// Handle audio response

Java​

OkHttpClient client = new OkHttpClient().newBuilder().build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType,
"{\"text\": \"สวัสดีครับ น้องไข่ต้ม เวอร์ชั่น 3\"}");

Request request = new Request.Builder()
.url("https://api.iapp.co.th/v3/store/audio/tts")
.method("POST", body)
.addHeader("apikey", "YOUR_API_KEY")
.addHeader("Content-Type", "application/json")
.build();

Response response = client.newCall(request).execute();
// Handle audio response

Dart​

import 'dart:convert';
import 'package:http/http.dart' as http;
import 'dart:io';

void main() async {
var url = Uri.parse('https://api.iapp.co.th/v3/store/audio/tts');
var headers = {
'apikey': 'YOUR_API_KEY',
'Content-Type': 'application/json'
};
var body = jsonEncode({
'text': 'สวัสดีครับ น้องไข่ต้ม เวอร์ชั่น 3'
});

var response = await http.post(url, headers: headers, body: body);

if (response.statusCode == 200) {
File('output.wav').writeAsBytesSync(response.bodyBytes);
print('Audio saved to output.wav');
} else {
print('Error: ${response.statusCode}');
}
}

Go​

package main

import (
"bytes"
"encoding/json"
"io"
"net/http"
"os"
)

func main() {
url := "https://api.iapp.co.th/v3/store/audio/tts"

data := map[string]string{
"text": "สวัสดีครับ น้องไข่ต้ม เวอร์ชั่น 3",
}
jsonData, _ := json.Marshal(data)

req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("apikey", "YOUR_API_KEY")
req.Header.Set("Content-Type", "application/json")

client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()

audioData, _ := io.ReadAll(resp.Body)
os.WriteFile("output.wav", audioData, 0644)
}

คุณสมบัติและความสามารถ​

การปรับข้อความอัจฉริยะ​

V3 ปรับองค์ประกอบข้อความต่างๆ โดยอัตโนมัติ:

ประเภทอินพุตเอาต์พุต (ขณะพูด)
ตัวเลข1,234.56"หนึ่งพันสองร้อยสามสิบสี่จุดห้าหก"
วันที่27/01/2569"วันที่ยี่สิบเจ็ดมกราคมสองพันห้าร้อยหกสิบเก้า"
สกุลเงิน฿1,500"หนึ่งพันห้าร้อยบาท"
เวลา14:30"สิบสี่นาฬิกาสามสิบนาที"
เปอร์เซ็นต์25%"ยี่สิบห้าเปอร์เซ็นต์"

การจัดการภาษาอัตโนมัติ​

V3 ตรวจจับและจัดการข้อความผสมไทย-อังกฤษโดยอัตโนมัติ โดยไม่จำเป็นต้องเลือกโหมดภาษา:

Hello and Welcome! ยินดีต้อนรับสู่ iApp Technology

รหัสข้อผิดพลาด​

รหัสสถานะคำอธิบายวิธีแก้ไข
400คำขอไม่ถูกต้อง - รูปแบบ JSON ไม่ถูกต้องตรวจสอบไวยากรณ์ JSON
402เครดิตไม่เพียงพอเพิ่มเครดิต
413เพย์โหลดใหญ่เกินไปข้อความเกิน 10,000 ตัวอักษร
429เกินขีดจำกัดอัตราตรวจสอบ ขีดจำกัดคีย์ API
503บริการไม่พร้อมใช้งานปัญหาชั่วคราว, ลองอีกครั้งภายหลัง

คู่มือการย้ายข้อมูล​

จาก V2 ไป V3​

ด้านV2V3
Content-Typemultipart/form-dataapplication/json
เนื้อหาคำขอข้อมูลฟอร์มเนื้อหา JSON
โหมดภาษาจำเป็น (TH / TH_MIX_EN)ตรวจจับอัตโนมัติ
อักขระสูงสุดไม่มีขีดจำกัด10,000
คุณภาพเสียงWAV มาตรฐานWAV 24 kHz
Endpoint/v3/store/speech/text-to-speech/kaitom/v3/store/audio/tts

คำขอ V2 (เก่า):

curl -X POST 'https://api.iapp.co.th/v3/store/speech/text-to-speech/kaitom' \
--header 'apikey: YOUR_API_KEY' \
--form 'text="สวัสดีครับ"' \
--form 'language="TH"'

คำขอ V3 (ใหม่):

curl -X POST 'https://api.iapp.co.th/v3/store/audio/tts' \
--header 'apikey: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{"text": "สวัสดีครับ"}'

จาก V1 ไป V3​

ด้านV1V3
MethodGETPOST
คำขอพารามิเตอร์ Queryเนื้อหา JSON
ตัวเลือกเสียงKaitom V1, CeeKaitom V3
รูปแบบเอาต์พุตMP3/WAVWAV (24 kHz)
Endpoint/v3/store/speech/text-to-speech/kaitom/v1/v3/store/audio/tts

ข้อจำกัด​

  • รองรับภาษาไทยและอังกฤษ (เสียงเริ่มต้น); โคลนเสียงรองรับเฉพาะภาษาไทยเท่านั้น
  • เสียงเริ่มต้น: Kaitom V3 (ชาย) การโคลนเสียงช่วยให้คุณใช้เสียงอ้างอิงใดก็ได้
  • ความยาวต่อคำขอที่แนะนำ: ประมาณ 1,000 ตัวอักษรไทย (ข้อความที่ยาวกว่าจะถูกแบ่งส่วนอัตโนมัติ, ทำให้เกิดความล่าช้า)
  • เอาต์พุต: PCM โมโน 16 บิต ดิบ @ 24 kHz (ต้องใส่ส่วนหัว WAV ฝั่งไคลเอ็นต์)
  • เสียงอ้างอิงสำหรับการโคลน: ≤ 15 วินาที, แนะนำ 8–12 วินาทีของเสียงโมโนที่ชัดเจน
  • ขีดจำกัดอัตรา: 100 คำขอ/วินาที ต่อคีย์ API

แนวทางปฏิบัติที่ดีที่สุด​

  1. ใช้เครื่องหมายวรรคตอนที่ถูกต้อง เพื่อให้การหยุดและการลงเสียงเป็นธรรมชาติ
  2. ใช้ประโยคสนทนา เพื่อให้ผลลัพธ์เป็นธรรมชาติที่สุด
  3. ทดสอบด้วยข้อความส่วนเล็กๆ ก่อนประมวลผลข้อความขนาดใหญ่
  4. ถอดเสียงชื่อแบรนด์หรือตัวย่อ เป็นอักษรไทยล่วงหน้า หากคุณต้องการการออกเสียงที่เฉพาะเจาะจง (เช่น ส่ง ไอแอป แทน iApp)
  5. ตรวจสอบจำนวนอักขระ เพื่อให้อยู่ภายในขีดจำกัด 10,000 ตัวอักษร

AI ที่มีความรับผิดชอบ​

เสียงทุกเสียงที่สร้างโดย endpoint เสียงเริ่มต้น และ โคลนเสียง จะฝัง AudioSeal (Meta, MIT-licensed) ซึ่งเป็นลายน้ำประสาทที่ไม่สามารถได้ยินได้ สิ่งนี้ช่วยให้เครื่องมือตรวจสอบความถูกต้องของเนื้อหาในภายหลัง — และ endpoint /v3/store/audio/tts/detect ด้านบน — สามารถระบุเสียงสังเคราะห์ที่สร้างโดย V3 ได้, เพื่อลดการใช้คุณสมบัติการโคลนเสียงในทางที่ผิด

ลายน้ำนี้:

  • ไม่สามารถได้ยิน (ประมาณ −30 dBFS ที่เหลืออยู่)
  • ทนทาน ต่อการเข้ารหัสซ้ำ MP3 / OPUS, การแปลงรูปแบบ, และการสุ่มตัวอย่างใหม่
  • ไม่ ทนทานต่อการเข้ารหัสซ้ำด้วย Neural-codec หรือการลบโดยเจตนา — ถือว่าเป็นสัญญาณ AI ที่มีความรับผิดชอบ, ไม่ใช่ DRM ที่ป้องกันการปลอมแปลง

หากคุณดำเนินการแพลตฟอร์มที่เผยแพร่เสียงที่ผู้ใช้สร้างขึ้น เราขอแนะนำให้ตรวจสอบคลิปที่อัปโหลดเป็นระยะๆ ผ่าน /v3/store/audio/tts/detect เป็นสัญญาณหนึ่งในหลายๆ สัญญาณสำหรับการกลั่นกรองสื่อสังเคราะห์

ราคา​

ชื่อบริการ AI APIEndpointราคาแบบ On-Premise
Thai TTS V3 (เสียงน้องไข่ต้ม)/v3/store/audio/tts1 IC ต่อ 400 ตัวอักษรติดต่อเรา
Thai Voice Cloning V3/v3/store/audio/tts/clone1 IC ต่อ 400 ตัวอักษรติดต่อเรา
การตรวจจับลายน้ำ AI/v3/store/audio/tts/detectฟรีติดต่อเรา

ดูเพิ่มเติม​

  • Text-to-Speech V2 - เวอร์ชันก่อนหน้าพร้อมการเลือกโหมดภาษา
  • Text-to-Speech V1 - API แบบ GET แบบเดิมพร้อมเสียง Kaitom V1 และ Cee
  • Speech-to-Text - แปลงเสียงเป็นข้อความ