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.81.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 - แปลงเสียงเป็นข้อความ