ðĢïļ āļĢāļ°āļāļāđāļāļĨāļāļāđāļāļāļ§āļēāļĄāļ āļēāļĐāļēāđāļāļĒāđāļāđāļāđāļŠāļĩāļĒāļāļāļđāļ (TTS)
ðĢïļ Thai Text-to-Speech (TTS)
āļĒāļīāļāļāļĩāļāđāļāļāļĢāļąāļāļŠāļđāđ Thai Text-to-Speech API āļāļĨāļīāļāļ āļąāļāļāđ AI āļāļĩāđāļāļąāļāļāļēāđāļāļĒāļāļĢāļīāļĐāļąāļ āđāļāđāļāļāļāđāđāļāļāđāļāđāļĨāļĒāļĩ āļāļģāļāļąāļ API āļāļāļāđāļĢāļēāđāļāļĨāļāļāđāļāļāļ§āļēāļĄāļ āļēāļĐāļēāđāļāļĒāđāļĨāļ°āļ āļēāļĐāļēāļāļąāļāļāļĪāļĐāđāļāđāļāđāļŠāļĩāļĒāļ āļāļđāļāļāļĩāđāļāļąāļāļāļđāđāļāđāļāļāļĢāļĢāļĄāļāļēāļāļī āļāđāļ§āļĒāļāļ§āļēāļĄāđāļĄāđāļāļĒāļģāđāļĨāļ°āļāļ§āļēāļĄāđāļĢāđāļ§āļŠāļđāļ āļāļĢāļīāļāļēāļĢāļāļĩāđāļĢāļāļāļĢāļąāļāļāļĢāļ°āđāļĒāļāļ āļēāļĐāļēāđāļāļĒ-āļāļąāļāļāļĪāļĐāļāļŠāļĄ āđāļĨāļ°āļĄāļĩāļāļąāļ§āđāļĨāļ·āļāļāđāļŠāļĩāļĒāļāļŦāļĨāļēāļĒāđāļāļ

āļāļāļĨāļāļāđāļāđāđāļĨāļĒ!â
āđāļĢāļīāđāļĄāļāđāļāđāļāđāļāļēāļâ
-
āļāđāļāļāļģāļŦāļāļāđāļāļ·āđāļāļāļāđāļ
- API key āļāļēāļ āđāļāđāļāļāļāđāđāļāļāđāļāđāļĨāļĒāļĩ
- āļāđāļāļāļ§āļēāļĄāļāđāļāļāđāļāđāļēāđāļāđāļāļ āļēāļĐāļēāđāļāļĒāđāļĨāļ°/āļŦāļĢāļ·āļāļ āļēāļĐāļēāļāļąāļāļāļĪāļĐ
- āļāļ§āļēāļĄāļĒāļēāļ§āļāđāļāļāļ§āļēāļĄāļŠāļđāļāļŠāļļāļ: āđāļĄāđāļĄāļĩāļāđāļāļāļģāļāļąāļ
- āļĢāļđāļāđāļāļāđāļāļēāļāđāļāļļāļāļāļĩāđāļĢāļāļāļĢāļąāļ: MP3
-
āđāļĢāļīāđāļĄāļāđāļāļāļĒāđāļēāļāļĢāļ§āļāđāļĢāđāļ§
- āļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāļāļĩāđāļĢāļ§āļāđāļĢāđāļ§ (āļāđāļāļĒāļāļ§āđāļē 1 āļ§āļīāļāļēāļāļĩ)
- āļāļēāļĢāļŠāļĢāđāļēāļāđāļŠāļĩāļĒāļāļāļđāļāļāļĩāđāđāļāđāļāļāļĢāļĢāļĄāļāļēāļāļī
- āļĢāļāļāļĢāļąāļāļāđāļāļāļ§āļēāļĄāļāļŠāļĄāļ āļēāļĐāļēāđāļāļĒ-āļāļąāļāļāļĪāļĐ
-
āļāļļāļāļŠāļĄāļāļąāļāļīāļŦāļĨāļąāļ
- āļāļēāļĢāļŠāļąāļāđāļāļĢāļēāļ°āļŦāđāđāļŠāļĩāļĒāļāļāļđāļāļāļĩāđāđāļāđāļāļāļĢāļĢāļĄāļāļēāļāļī
- āļĢāļāļāļĢāļąāļāļ āļēāļĐāļēāļāļŠāļĄ (āđāļāļĒ-āļāļąāļāļāļĪāļĐ)
- āļĢāļāļāļĢāļąāļāļāļĩāđāļĄāļāļī
- āļāļēāļĢāđāļāļĨāļāļāđāļēāļāļąāļ§āđāļĨāļ āļ§āļąāļāļāļĩāđ āđāļĨāļ°āļŠāļāļļāļĨāđāļāļīāļ
- āļāļąāļ§āđāļĨāļ·āļāļāđāļŠāļĩāļĒāļāļŦāļĨāļēāļĒāđāļāļ
- āđāļ§āļĨāļēāđāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāļāļĩāđāļĢāļ§āļāđāļĢāđāļ§
-
āļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāđāļĨāļ°āļāļēāļĢāļāļāļīāļāļąāļāļīāļāļēāļĄāļāļāļĢāļ°āđāļāļĩāļĒāļ
- āļāļāļīāļāļąāļāļīāļāļēāļĄ GDPR āđāļĨāļ° PDPA
- āđāļĄāđāļĄāļĩāļāļēāļĢāđāļāđāļāļĢāļąāļāļĐāļēāļāđāļāļĄāļđāļĨāļŦāļĨāļąāļāļāļēāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨ
āļāļĢāļļāļāļēāđāļĒāļĩāđāļĒāļĄāļāļĄ iApp AI Portal āđāļāļ·āđāļāļāļđ API key āļāļĩāđāļĄāļĩāļāļĒāļđāđ āļŦāļĢāļ·āļāļāļ API key āđāļŦāļĄāđ
āļāļąāļ§āļāļĒāđāļēāļāđāļāđāļâ
āļāļąāļ§āļāļĒāđāļēāļāļāļģāļāļ:â
- āđāļŠāļĩāļĒāļāđāļāđāļāļāļđāđāļāļēāļĒāļāđāļāļāđāļāđāļāđāļĄ
curl --location --request GET 'https://api.iapp.co.th/thai-tts-kaitom/tts?text=āļŠāļ§āļąāļŠāļāļĩāļāļĢāļąāļ'
--header 'apikey: {YOUR_API_KEY}'
- āđāļŠāļĩāļĒāļ āļāļļāļāļāļĩ āļāļąāļāļĢāļāļ§āļĩāļāđ āļāļĢāļĩāļāļąāļāļ§āļēāļĨāļ§āļāļĻāđ (@ceemeagain)
curl --location --request GET 'https://api.iapp.co.th/thai-tts-cee/tts?text=āļŠāļ§āļąāļŠāļāļĩāļāđāļ°āđāļŠāļĩāļĒāļāļāļĩāļŠāļąāļāđāļāļĢāļēāļ°āļŦāđāļĄāļēāđāļĨāđāļ§āļāđāļ°'
--header 'apikey: {YOUR_API_KEY}'
āļāļąāļ§āļāļĒāđāļēāļāļāļēāļĢāļāļāļāļŠāļāļāļ:â
āđāļāļēāļāđāļāļļāļāđāļāļĨāđāđāļŠāļĩāļĒāļ (āļĢāļđāļāđāļāļ MP3) āļŠāļēāļĄāļēāļĢāļāļāļđāļāļąāļ§āļāļĒāđāļēāļāđāļāļĨāđāđāļŠāļĩāļĒāļāđāļāļēāļāđāļāļļāļāđāļāđāļāļąāļāļāļĩāđ:
- āđāļŠāļĩāļĒāļāđāļāđāļāļāļđāđāļāļēāļĒāļāđāļāļāđāļāđāļāđāļĄ
- āđāļŠāļĩāļĒāļ āļāļļāļāļāļĩ āļāļąāļāļĢāļāļ§āļĩāļāđ āļāļĢāļĩāļāļąāļāļ§āļēāļĨāļ§āļāļĻāđ (@ceemeagain)
āđāļāļĨāļĩāđāļĒāļāļāļēāļĢāļēāļĄāļīāđāļāļāļĢāđāļāđāļāļāļ§āļēāļĄāđāļ URL āļāđāļ§āļĒāļāđāļāļāļ§āļēāļĄāļāļĩāđāļāđāļāļāļāļēāļĢāđāļāļ·āđāļāļāļđāļāļąāļ§āļāļĒāđāļēāļāđāļāļēāļāđāļāļļāļāđāļŠāļĩāļĒāļāļāļĩāđāđāļāļāļāđāļēāļāļāļąāļ āļāļļāļāļāļ°āļāđāļāļāđāļāļīāđāļĄ API key āļāļāļāļāļļāļāđāļāđāļāļŠāđāļ§āļāļŦāļąāļ§āđāļāļ·āđāļāđāļŦāđāđāļāđāļāļēāļāđāļāđ
āļāļļāļāļŠāļĄāļāļąāļāļīāđāļĨāļ°āļāļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļâ
āļāļļāļāļŠāļĄāļāļąāļāļīāļŦāļĨāļąāļâ
- āļāļēāļĢāļŠāļĢāđāļēāļāđāļŠāļĩāļĒāļāļāļđāļāļāļĩāđāđāļāđāļāļāļĢāļĢāļĄāļāļēāļāļī
- āļĢāļāļāļĢāļąāļāļāđāļāļāļ§āļēāļĄāļ āļēāļĐāļēāđāļāļĒ-āļāļąāļāļāļĪāļĐāļāļŠ āļĄ
- āļāļēāļĢāđāļāļĨāļāļāļĩāđāļĄāļāļī
- āļāļēāļĢāļāļąāļāļĢāļđāļāđāļāļāļāļąāļ§āđāļĨāļāđāļĨāļ°āļ§āļąāļāļāļĩāđ
- āļāļąāļ§āđāļĨāļ·āļāļāđāļŠāļĩāļĒāļāļŦāļĨāļēāļĒāđāļāļ
- āļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāļāļĩāđāļĢāļ§āļāđāļĢāđāļ§
āļāļīāļĨāļāđāļāļĩāđāļĢāļāļāļĢāļąāļâ
- āļāđāļāļāļ§āļēāļĄāļ āļēāļĐāļēāđāļāļĒ
- āļāđāļāļāļ§āļēāļĄāļ āļēāļĐāļēāļāļąāļāļāļĪāļĐ
- āļāļĩāđāļĄāļāļī
- āļāļąāļ§āđāļĨāļ
- āļ§āļąāļāļāļĩāđ
- āļāđāļēāļŠāļāļļāļĨāđāļāļīāļ
āļāđāļāļĄāļđāļĨāļāđāļēāļāļāļīāļ APIâ
āļāļļāļāļŠāļīāđāļāļŠāļļāļ Text-to-Speech (āđāļŠāļĩāļĒāļ Kaitom)â
- Endpoint:
GET
https://api.iapp.co.th/thai-tts-kaitom/tts
- āļāļēāļĢāļēāļĄāļīāđāļāļāļĢāđāļāļĩāđāļāļģāđāļāđāļ:
- apikey: API key āļāļāļāļāļļāļ (āļŠāđāļ§āļāļŦāļąāļ§)
- text: āļāđāļāļāļ§āļēāļĄāļāļĩāđāļāļ°āđāļāļĨāļāđāļāđāļāđāļŠāļĩāļĒāļāļāļđāļ (āđāļāļāļŠāļāļāļāļēāļĄ)
āļāļļāļāļŠāļīāđāļāļŠāļļāļ Text-to-Speech (āđāļŠāļĩāļĒāļ Cee)â
- Endpoint:
GET
https://api.iapp.co.th/thai-tts-cee/tts
- āļāļēāļĢāļēāļĄāļīāđāļāļāļĢāđāļāļĩāđāļāļģāđāļāđāļ:
- apikey: API key āļāļāļāļāļļāļ (āļŠāđāļ§āļāļŦāļąāļ§)
- text: āļāđāļāļāļ§āļēāļĄāļāļĩāđāļāļ°āđāļāļĨāļāđāļāđāļāđāļŠāļĩāļĒāļāļāļđāļ (āđāļāļāļŠāļāļāļāļēāļĄ)
āļāļąāļ§āļāļĒāđāļēāļāđāļāđāļâ
Pythonâ
import requests
url = "https://api.iapp.co.th/thai-tts-kaitom/tts"
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)
JavaScriptâ
const axios = require("axios")
const fs = require("fs")
let config = {
method: "get",
url: "https://api.iapp.co.th/thai-tts-kaitom/tts",
params: { text: "āļŠāļ§āļąāļŠāļāļĩāļāļĢāļąāļ" },
headers: { apikey: "YOUR_API_KEY" },
responseType: "arraybuffer",
}
axios(config)
.then((response) => {
fs.writeFileSync("output.mp3", response.data)
})
.catch((error) => console.log(error))
PHPâ
<?php
$url = "https://api.iapp.co.th/thai-tts-kaitom/tts?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);
?>
Swiftâ
import Foundation
let url = URL(string: "https://api.iapp.co.th/thai-tts-kaitom/tts?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/thai-tts-kaitom/tts?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/thai-tts-kaitom/tts?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/thai-tts-kaitom/tts?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}');
}
}
āļāđāļāļāļģāļāļąāļāđāļĨāļ°āđāļāļ§āļāļēāļāļāļāļīāļāļąāļāļīāļāļĩāđāļāļĩāļāļĩāđāļŠāļļāļâ
āļāđāļāļāļģāļāļąāļâ
- āļĢāļāļāļĢāļąāļāđāļāļāļēāļ°āļ āļēāļĐāļēāđāļāļĒāđāļĨāļ°āļ āļēāļĐāļēāļāļąāļāļāļĪāļĐ
- āļĄāļĩāļāļąāļ§āđāļĨāļ·āļāļāđāļŠāļĩāļĒāļāļŠāļāļāđāļāļ:
- Kaitom (āđāļŠāļĩāļĒāļāļāļđāđāļāļēāļĒ)
- Cee (āđāļŠāļĩāļĒāļāļāļđāđāļŦāļāļīāļāļāļēāļĢāļē)
āđāļāļ§āļāļēāļāļāļāļīāļāļąāļāļīāļāļĩāđāļāļĩāļāļĩāđāļŠāļļāļâ
- āđāļāđāđāļāļĢāļ·āđāļāļāļŦāļĄāļēāļĒāļ§āļĢāļĢāļāļāļāļāļāļĒāđāļēāļāļāļđāļāļāđāļāļ
- āļāļģāđāļŦāđāļāļĢāļ°āđāļĒāļāđāļāđāļāļāļĢāļĢāļĄāļāļēāļāļīāđāļĨāļ°āļŠāļāļāļāļēāđāļāđ
- āļāļāļŠāļāļāļāļąāļāļāđāļāļāļ§āļēāļĄāļāļāļēāļāđāļĨāđāļāļāđāļāļ
- āļāļīāļāļēāļĢāļāļēāļāļĢāļīāļāļāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāđāļŦāļĨāļāļāļāđāļŠāļĩāļĒāļāļāļđāļāļāļĩāđāđāļāđāļāļāļĢāļĢāļĄāļāļēāļāļī
āļāļ§āļēāļĄāđāļĄāđāļāļĒāļģāđāļĨāļ°āļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļâ
āļāļ§āļēāļĄāđāļĄāđāļāļĒāļģāđāļāļĒāļĢāļ§āļĄâ
- āļāļļāļāļ āļēāļāđāļŠāļĩāļĒāļāļāļđāļāļāļĩāđāđāļāđāļāļāļĢāļĢāļĄāļāļēāļāļī
- āļāļēāļĢāļāļāļāđāļŠāļĩāļĒāļāļāļĩāđāļāļđāļāļāđāļāļāļŠāļģāļŦāļĢāļąāļāļāļąāđāļāļ āļēāļĐāļēāđāļāļĒāđāļĨāļ°āļ āļēāļĐāļēāļāļąāļāļāļĪāļĐ
- āļāļēāļĢāļāļąāļāļāļēāļĢāļāļąāļ§āđāļĨāļāđāļĨāļ°āļāļąāļāļāļĢāļ°āļāļīāđāļĻāļĐāļāļĒāđāļēāļāđāļŦāļĄāļēāļ°āļŠāļĄ
āļāļ§āļēāļĄāđāļĢāđāļ§āđāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨâ
- āļāđāļāļĒāļāļ§āđāļē 1 āļ§āļīāļāļēāļāļĩāļāđāļāļāļģāļāļ
- āļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāļāļĩāđāļŠāļĄāđāļģāđāļŠāļĄāļāđāļāļĒāđāļĄāđāļāļģāļāļķāļāļāļķāļāļāļ§āļēāļĄāļĒāļēāļ§āļāļāļāļāđāļāļāļ§āļēāļĄ
āļāļąāļāļāļąāļĒāļāļĩāđāļĄāļĩāļāļĨāļāđāļāļāļļāļāļ āļēāļâ
- āļāļēāļĢāļāļąāļāļĢāļđāļāđāļāļāļāđāļāļāļ§āļēāļĄ
- āđāļāļĢāļ·āđāļāļāļŦāļĄāļēāļĒāļ§āļĢāļĢāļāļāļāļ
- āļāļēāļĢāļāļŠāļĄāļ āļēāļĐāļē
- āļāļēāļĢāđāļāđāļāļąāļāļāļĢāļ°āļāļīāđāļĻāļĐ
āļāļĢāļ°āļ§āļąāļāļīâ
āđāļ§āļāļĢāđāļāļąāļ 2.1 (āļāļļāļĨāļēāļāļĄ 2020)â
- āđāļāļīāđāļĄāļāļąāļ§āđāļĨāļ·āļāļāđāļŠāļĩāļĒāļāļāļđāđāļāļēāļĒ Kaitom
- āļāļĢāļąāļāļāļĢāļļāļāļāļ§āļēāļĄāđāļāđāļāļāļĢāļĢāļĄāļāļēāļāļīāļāļāļāđāļŠāļĩāļĒāļāļāļđāļ
āđāļ§āļāļĢāđāļāļąāļ 2.0 (āļāļąāļāļĒāļēāļĒāļ 2020)â
- āđāļāđāļāļēāļĢāļŠāļąāļāđāļāļĢāļēāļ°āļŦāđāđāļāļ Deep Learning
- āđāļāļīāđāļĄāļāļēāļĢāļĢāļāļāļĢāļąāļāļ āļēāļĐāļēāļāļŠāļĄ āđāļāļĒ-āļāļąāļāļāļĪāļĐ
- āļāļĢāļąāļāļāļĢāļļāļāļāļļāļāļ āļēāļāđāļŠāļĩāļĒāļāđāļāļĒāļĢāļ§āļĄ
āđāļ§āļāļĢāđāļāļąāļ 1.0 (āļāļļāļĄāļ āļēāļāļąāļāļāđ 2020)â
- āđāļāļīāļāļāļąāļ§āļāļĢāļąāđāļāđāļĢāļāļāđāļ§āļĒāļāļēāļĢāļŠāļąāļāđāļāļĢāļēāļ°āļŦāđāđāļāļ HMM
- āļĢāļāļāļĢāļąāļāđāļāļāļēāļ°āļ āļēāļĐāļēāđāļāļĒ
āļĢāļēāļāļēâ
āļāļ·āđāļāļāļĢāļīāļāļēāļĢ AI API | Endpoint | IC āļāđāļ Request | On-Premise |
---|---|---|---|
Thai Text To Speech (TTS) | iapp_text_to_speech_v1_cee | 1 IC/400 āļāļąāļāļāļĢāļ° | āļāļīāļāļāđāļāđāļĢāļē |
iapp_text_to_speech_v1_kaitom | 1 IC/400 āļāļąāļāļāļĢāļ° |