Skip to main content

🗣️ Thai Text-to-Speech V1 (เสียงน้องไข่ต้ม & เสียงคุณซี)

1 ICต่อ 400 ตัวอักษร
v1.0 Active GET /v3/store/speech/text-to-speech

ยินดีต้อนรับสู่ Thai Text-to-Speech API V1 เวอร์ชันนี้มีตัวเลือกเสียงสองแบบผ่าน API แบบ GET ที่เรียบง่าย:

  • เสียงน้องไข่ต้ม - เสียงผู้ชาย
  • เสียงคุณซี - เสียงดาราหญิง (@ceemeagain)
iApp Text to Speech API V1

ทดลองใช้งาน

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

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

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

    • การร้องขอ GET แบบง่าย
    • การประมวลผลที่รวดเร็ว (น้อยกว่า 1 วินาที)
    • การสร้างเสียงที่เป็นธรรมชาติ
    • รองรับข้อความผสมภาษาไทย-อังกฤษ
  3. คุณสมบัติหลัก

    • การสังเคราะห์เสียงที่เป็นธรรมชาติ
    • รองรับภาษาผสม (ไทย-อังกฤษ)
    • ตัวเลือกเสียงสองแบบ (เสียงน้องไข่ต้ม & เสียงคุณซี)
    • รองรับอิโมจิ
    • การแปลงตัวเลข วันที่ และค่าสกุลเงิน
    • ความเร็วในการประมวลผลที่รวดเร็ว
  4. ความปลอดภัยและการปฏิบัติตามกฎ

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

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

V2 พร้อมใช้งานแล้ว

กำลังมองหาคุณภาพเสียงที่ดีขึ้นอยู่ใช่ไหม? ลองใช้ Text-to-Speech V2 พร้อมเสียงน้องไข่ต้มที่ปรับปรุงแล้ว

API Endpoints

EndpointMethodคำอธิบายค่าใช้จ่าย
/v3/store/speech/text-to-speech/kaitom/v1
Legacy: /thai-tts-kaitom/tts
GETThai TTS พร้อมเสียงน้องไข่ต้ม V11 IC ต่อ 400 ตัวอักษร
/v3/store/speech/text-to-speech/cee
Legacy: /thai-tts-cee/tts
GETThai TTS พร้อมเสียงคุณซี1 IC ต่อ 400 ตัวอักษร

ตัวอย่างด่วน

เสียงน้องไข่ต้ม V1

คำขอ:

curl --location --request GET 'https://api.iapp.co.th/v3/store/speech/text-to-speech/kaitom/v1?text=สวัสดีครับ' \
--header 'apikey: YOUR_API_KEY'

การตอบกลับ:

เสียงคุณซี

คำขอ:

curl --location --request GET 'https://api.iapp.co.th/v3/store/speech/text-to-speech/cee?text=สวัสดีค่ะเสียงซีสังเคราะห์มาแล้วค่ะ' \
--header 'apikey: YOUR_API_KEY'

การตอบกลับ:

note

แทนที่พารามิเตอร์ text ด้วยข้อความที่คุณต้องการ รูปแบบเอาต์พุตจะแตกต่างกัน: MP3 สำหรับเสียงน้องไข่ต้ม, WAV สำหรับเสียงคุณซี

การอ้างอิง API

Endpoint Text-to-Speech (เสียงน้องไข่ต้ม V1)

  • Endpoint: GET https://api.iapp.co.th/v3/store/speech/text-to-speech/kaitom/v1
  • พารามิเตอร์ที่จำเป็น:
    • apikey: คีย์ API ของคุณ (เฮดเดอร์)
    • text: ข้อความที่จะแปลงเป็นเสียง (พารามิเตอร์คิวรี)
  • รูปแบบเอาต์พุต: MP3

Endpoint Text-to-Speech (เสียงคุณซี)

  • Endpoint: GET https://api.iapp.co.th/v3/store/speech/text-to-speech/cee
  • พารามิเตอร์ที่จำเป็น:
    • apikey: คีย์ API ของคุณ (เฮดเดอร์)
    • text: ข้อความที่จะแปลงเป็นเสียง (พารามิเตอร์คิวรี)
  • รูปแบบเอาต์พุต: WAV

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

Python

เสียงน้องไข่ต้ม V1

import requests

url = "https://api.iapp.co.th/v3/store/speech/text-to-speech/kaitom/v1"
headers = {"apikey": "YOUR_API_KEY"}
params = {"text": "สวัสดีครับ"}

response = requests.get(url, headers=headers, params=params)
with open("output.mp3", "wb") as f:
f.write(response.content)

เสียงคุณซี

import requests

url = "https://api.iapp.co.th/v3/store/speech/text-to-speech/cee"
headers = {"apikey": "YOUR_API_KEY"}
params = {"text": "สวัสดีค่ะ"}

response = requests.get(url, headers=headers, params=params)
with open("output.wav", "wb") as f:
f.write(response.content)

JavaScript (Node.js)

เสียงน้องไข่ต้ม V1

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

let config = {
method: "get",
url: "https://api.iapp.co.th/v3/store/speech/text-to-speech/kaitom/v1",
params: { text: "สวัสดีครับ" },
headers: { apikey: "YOUR_API_KEY" },
responseType: "arraybuffer",
}

axios(config)
.then((response) => {
fs.writeFileSync("output.mp3", response.data)
})
.catch((error) => console.log(error))

เสียงคุณซี

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

let config = {
method: "get",
url: "https://api.iapp.co.th/v3/store/speech/text-to-speech/cee",
params: { text: "สวัสดีค่ะ" },
headers: { apikey: "YOUR_API_KEY" },
responseType: "arraybuffer",
}

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

PHP

เสียงน้องไข่ต้ม V1

<?php
$url = "https://api.iapp.co.th/v3/store/speech/text-to-speech/kaitom/v1?text=สวัสดีครับ";
$headers = array('apikey: YOUR_API_KEY');

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
file_put_contents("output.mp3", $response);
curl_close($ch);
?>

เสียงคุณซี

<?php
$url = "https://api.iapp.co.th/v3/store/speech/text-to-speech/cee?text=สวัสดีค่ะ";
$headers = array('apikey: YOUR_API_KEY');

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
file_put_contents("output.wav", $response);
curl_close($ch);
?>

Swift

import Foundation

let url = URL(string: "https://api.iapp.co.th/v3/store/speech/text-to-speech/kaitom/v1?text=สวัสดีครับ&apikey=YOUR_API_KEY")!
var request = URLRequest(url: url, timeoutInterval: Double.infinity)
request.httpMethod = "GET"

let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data else {
print("Error:", String(describing: error))
return
}

// Save the data to an MP3 file
let fileManager = FileManager.default
let outputPath = fileManager.temporaryDirectory.appendingPathComponent("output.mp3")

do {
try data.write(to: outputPath)
print("Audio file saved to:", outputPath.path)
} catch {
print("Failed to save file:", error)
}
}

task.resume()

Kotlin

import okhttp3.OkHttpClient
import okhttp3.Request
import java.io.File
import java.io.FileOutputStream

fun main() {
val client = OkHttpClient()

val request = Request.Builder()
.url("https://api.iapp.co.th/v3/store/speech/text-to-speech/kaitom/v1?text=สวัสดีครับ&apikey=YOUR_API_KEY")
.build()

val response = client.newCall(request).execute()

if (response.isSuccessful) {
// Get response body as bytes
val responseBody = response.body?.bytes()

if (responseBody != null) {
// Save to a file
val outputFile = File("output.mp3")
FileOutputStream(outputFile).use { fos ->
fos.write(responseBody)
println("Audio file saved to: ${outputFile.absolutePath}")
}
} else {
println("Response body is empty.")
}
} else {
println("Request failed with status code: ${response.code}")
}
}

Java

import okhttp3.*;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

public class Main {
public static void main(String[] args) throws IOException {
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
.url("https://api.iapp.co.th/v3/store/speech/text-to-speech/kaitom/v1?text=สวัสดีครับ&apikey=YOUR_API_KEY")
.method("GET", body)
.build();
Response response = client.newCall(request).execute();

if (response.isSuccessful()) {
// Get the response body as bytes
byte[] responseBody = response.body().bytes();

// Save the response to a file
File outputFile = new File("output.mp3");
try (FileOutputStream fos = new FileOutputStream(outputFile)) {
fos.write(responseBody);
System.out.println("Audio file saved to: " + outputFile.getAbsolutePath());
} catch (IOException e) {
System.err.println("Failed to save the file: " + e.getMessage());
}
} else {
System.err.println("Request failed with status code: " + response.code());
}

// Close the response
response.close();
}
}

Dart

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

void main() async {
// Create the GET request
var request = http.Request(
'GET',
Uri.parse(
'https://api.iapp.co.th/v3/store/speech/text-to-speech/kaitom/v1?text=สวัสดีครับ&apikey=YOUR_API_KEY'),
);

// Send the request
http.StreamedResponse response = await request.send();

if (response.statusCode == 200) {
// Save the response to a file
final file = File('output.mp3');
final bytes = await response.stream.toBytes();
await file.writeAsBytes(bytes);

print('Audio file saved to: ${file.path}');
} else {
print('Request failed: ${response.reasonPhrase}');
}
}

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

คุณสมบัติหลัก

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

ตัวเลือกเสียง

เสียงเพศคำอธิบายรูปแบบเอาต์พุต
เสียงน้องไข่ต้ม V1ชายเสียงเด็กผู้ชาย (น้องไข่ต้ม)MP3
เสียงคุณซีหญิงเสียงดารา (@ceemeagain ฉัตรปวีณ์ ตรีชัชวาลวงศ์)WAV

ฟิลด์ที่รองรับ

  • ข้อความภาษาไทย
  • ข้อความภาษาอังกฤษ
  • อิโมจิ
  • ตัวเลข
  • วันที่
  • ค่าสกุลเงิน

ข้อจำกัดและแนวทางปฏิบัติที่ดีที่สุด

ข้อจำกัด

  • รองรับเฉพาะภาษาไทยและภาษาอังกฤษ
  • มีตัวเลือกเสียงสองแบบ (เสียงน้องไข่ต้ม V1 & เสียงคุณซี)
  • API แบบ GET อย่างง่าย (ไม่มีการเลือกโหมดภาษา)
  • รูปแบบเอาต์พุตแตกต่างกันไปตามเสียง

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

  • ใช้อักขระวรรคตอนที่เหมาะสมเพื่อการหยุดพักที่เป็นธรรมชาติ
  • รักษาประโยคให้เป็นธรรมชาติและเหมือนการสนทนา
  • ทดสอบกับข้อความส่วนเล็กๆ ก่อน
  • เลือกเสียงที่เหมาะสมกับการใช้งานของคุณ:
    • เสียงน้องไข่ต้ม V1: ใช้งานทั่วไป, เสียงผู้ชาย
    • เสียงคุณซี: เสียงผู้หญิง, ดึงดูดใจดารา

ความแม่นยำและประสิทธิภาพ

ความแม่นยำโดยรวม

  • คุณภาพเสียงที่เป็นธรรมชาติ
  • การออกเสียงที่ถูกต้องทั้งภาษาไทยและภาษาอังกฤษ
  • การจัดการตัวเลขและอักขระพิเศษได้อย่างถูกต้อง

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

  • น้อยกว่า 1 วินาทีต่อการร้องขอ
  • ประสิทธิภาพที่สม่ำเสมอโดยไม่คำนึงถึงความยาวของข้อความ

อัปเกรดเป็น V2

กำลังมองหาคุณภาพเสียงที่ดีขึ้นอยู่ใช่ไหม? พิจารณาอัปเกรดเป็น Text-to-Speech V2:

คุณสมบัติV1 (GET)V2 (POST)
ตัวเลือกเสียงเสียงน้องไข่ต้ม V1, เสียงคุณซีเสียงน้องไข่ต้ม V2 (ปรับปรุง)
วิธีการGETPOST
โหมดภาษาตรวจจับอัตโนมัติเลือกได้ (TH / TH_MIX_EN)
คุณภาพเสียงดีปรับปรุงแล้ว
ภาษาผสมรองรับรองรับดีขึ้น

ราคา

ชื่อบริการ AI APIEndpointIC ต่อตัวอักษรOn-Premise
Thai Text To Speech V1 (เสียงน้องไข่ต้ม)iapp_text_to_speech_v1_kaitom1 IC/400 ตัวอักษรติดต่อเรา
Thai Text To Speech V1 (เสียงคุณซี)iapp_text_to_speech_v1_cee1 IC/400 ตัวอักษรติดต่อเรา

ดูเพิ่มเติม

  • Text-to-Speech V2 - API แบบ POST ที่ปรับปรุงแล้ว พร้อมเสียงน้องไข่ต้มที่ปรับปรุง
  • Speech-to-Text - แปลงเสียงเป็นข้อความ