08-09-2025 , 16-09-2025
API hanya tersedia setelah Anda mengisi saldo akun.
Suara API JSON https://speechgen.io/index.php?r=api/voices.
Ada 2 pilihan sulih suara teks yang tersedia melalui API:
Opsi 1 - sulih suara cepat untuk teks pendek.
Opsi 2 - mengatur tugas sulih suara.
Temukan cara menyederhanakan pembuatan konten suara dengan mengintegrasikan SpeechGen.io dengan layanan otomatisasi MAKE. Panduan ini mencakup otomatisasi proses text-to-speech, membuatnya lebih mudah dan efisien untuk menghasilkan konten suara untuk berbagai aplikasi.
URL untuk varian 1: https://speechgen.io/index.php?r=api/text
Opsi ini memiliki batas maksimum 2000 karakter. Dan juga maksimum 2 perubahan suara. Jika batas terlampaui, Anda akan mendapatkan kesalahan (status = -1).
$data = [
'token'=>'SekretKeyInYourProfile',
'email'=>'yourMail@gmail.com',
'voice'=>'John',
'text'=>"Text for text to Speech",
'format'=>'mp3',
'speed'=>1.1,
'pitch'=>0.8,
'emotion'=>'good',
'pause_sentence'=>300,
'pause_paragraph'=>400,
'bitrate'=>48000,
];
'token' - 'SekretKeyDiProfilAnda'
'email' - 'emailAnda@gmail.com'
'voice' - 'Suara'
'text' - 'Teks untuk Text to Speech'
'format' - format file hasil, default = mp3, nilai yang mungkin ( 'mp3', 'wav', 'ogg')
'speed' - kecepatan pemutaran, default 1, (rentang dari 0.1 hingga 2.0)
'pitch'- nada suara, default 0, (rentang dari -20 hingga 20)
'emotion' - emosi suara, default 'good', nilai yang mungkin ( 'good', 'evil', 'neutral').
'pause_sentence' - Ukuran jeda antar kalimat dalam milidetik.
'pause_paragraph' - Ukuran jeda antar paragraf dalam milidetik.
'bitrate'=>48000 - Bitrate dari 8000 hingga 192000 Hz.
Emosi Tidak tersedia untuk semua suara, lihat di sini.
{
"id":"4153594",
"status":"0",
"file":"result.mp3",
"file_cors":"result_cors.mp3",
"parts":"5",
"parts_done":"2",
"duration":"0",
"format":"mp3",
"error":"",
"balans":"3331.2720000314",
"cost":"0.06"
}
"id" - ID suara unik
"status" - status sulih suara saat ini. Tersedia dari 3 nilai:
0 - proses
1 - selesai dengan sukses
-1 - kesalahan
"file" - jalur file audio, tersedia jika status= 1
"file_cors" - jalur file audio CORS
"error" - teks kesalahan, jika terjadi, jika status = -1
"parts" - jumlah sulih suara
"parts_done" - jumlah bagian yang selesai
"duration" - durasi file audio dalam detik, tersedia jika status = 1
"format" - format file audio
"balans" - batas saldo
"cost" - biaya sulih suara. (bertambah seiring dubbing bagian suara)
$data = [
'token' => '123456',
'email' => 'mail@mail.com',
'voice' => 'John',
'text' => "Text",
'format' => 'mp3',
'speed' => 1.1,
'pitch' => 0,
'emotion' => 'good',
];
$url = "https://speechgen.io/index.php?r=api/text";
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
$response = curl_exec($ch);
var_dump($response);
$response = json_decode($response, true);
if (curl_errno($ch)) {
var_dump("Connection error with text recognition server, " . curl_error($ch));
} else {
var_dump($response);
if ($response["status"] == 1) {
//Copy
echo " ok " . $response["file"];
copy($response["file"], 'Filename.' . $response["format"]);
} else {
//Error, no voiceover possible
echo $response["error"];
}
}
curl_close($ch);
Langkah 1: Teks dikirim ke API dan ID suara unik diperoleh (id).
Langkah 2: Minta hasil dubbing dengan mengirimkan pengenal dubbing (id).
Metode ini tidak memiliki batasan dan memungkinkan dubbing teks hingga 1.000.000 karakter. Dubbing dilakukan berdasarkan urutan prioritas (siapa cepat dia dapat) dan dapat memakan waktu dari 1 hingga beberapa menit, tergantung pada panjang teks.
$data = [
'token'=>'SekretKeyInYourProfile',
'email'=>'yourMail@gmail.com',
'voice'=>'John',
'text'=>"Text",
'format'=>'mp3',
'speed'=>1.1,
'pitch'=>0.8,
'emotion'=>'good',
'pause_sentence'=>300,
'pause_paragraph'=>400,
'bitrate'=>48000,
];
'token' - 'SekretKeyDiProfilAnda'
'email' - 'emailAnda@gmail.com'
'voice' - 'Suara'
'text' - 'Teks'
'format' - format file hasil, default = mp3, nilai yang mungkin( 'mp3', 'wav', 'ogg')
'speed' - kecepatan, default 1, (rentang dari 0.1 hingga 2.0)
'pitch'- nada suara, default 0, (rentang dari -20 hingga 20)
'emotion' - pewarnaan emosional, default 'good', nilai yang mungkin ( 'good', 'evil', 'neutral').
'pause_sentence' - Ukuran jeda antar kalimat dalam milidetik.
'pause_paragraph' - Ukuran jeda antar paragraf dalam milidetik.
'bitrate'=>48000 - Bitrate dari 8000 hingga 192000 Hz.
Tidak tersedia untuk semua suara, lihat di sini.
{
"id":"4153594",
"status":"0",
"parts":"5",
"parts_done":"0",
"format":"mp3",
"error":"",
"balans":"3331.2720000314",
"cost":"0.00"
}
"id" - ID suara unik
"status" - status sulih suara saat ini. Tersedia dari 2 nilai:
1 - tugas berhasil ditambahkan
-1 - kesalahan
"error" - teks kesalahan, jika terjadi, jika status = -1
"parts" - jumlah sulih suara
"parts_done" - jumlah bagian yang selesai
"format" - format file audio
"balans" - saldo batas akun
"cost" - biaya sulih suara. (bertambah seiring dubbing bagian suara)
Langkah 2. Setelah membuat tugas dan mendapatkan pengenal (id), permintaan harus dikirim ke https://speechgen.io/index.php?r=api/result, untuk mengetahui hasilnya.
$data = [
'token'=>'SekretKeyInYourProfile',
'email'=>'yourMail@gmail.com',
'id'=>4153594,
];
'token' - SekretKeyDiProfilAnda
'email' - emailAnda@gmail.com
'id' - ID suara unik yang diperoleh pada langkah 1
{
"id":"4153594",
"status":"0",
"file":"result.mp3",
"cuts":["result_1.mp3","result_2.mp3",...],
"parts":"5",
"parts_done":"0",
"format":"mp3",
"error":"",
"balans":"3331.2720000314",
"cost":"0.00"
}
"id" - ID suara unik
"status" - status sulih suara saat ini. Tersedia dari 3 nilai:
0 - sedang berlangsung
1 - selesai dengan sukses
-1 - kesalahan
"file" - jalur file audio, tersedia jika status = 1
"error" - teks kesalahan, jika terjadi, jika status = -1
"parts" - jumlah sulih suara
"parts_done" - jumlah bagian yang selesai
"duration" - durasi file audio dalam detik, tersedia jika status = 1
"format" - format file audio
"balans" - batas saldo akun
"cost" - biaya sulih suara. (bertambah seiring dubbing bagian suara)
"cuts" - Array fragmen, jika tag "cut" digunakan dalam teks
//STEP 1
$data = [
'token' => '123456',
'email' => 'mail@mail.com',
'voice' => 'John',
'text' => "Text",
'format' => 'mp3',
'speed' => 1.1,
'pitch' => 0,
'emotion' => 'good',
];
$url = "https://speechgen.io/index.php?r=api/longtext";
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
$response = curl_exec($ch);
var_dump($response);
$response = json_decode($response, true);
$resultId = 0;
if (curl_errno($ch)) {
var_dump("Error in connecting to the text recognition server, " . curl_error($ch));
} else {
var_dump($response);
if ($response["status"] == 1) {
//Copy
echo " ok " . $response["file"];
copy($response["file"], 'FileName.' . $response["format"]);
} elseif ($response["status"] == 0) {
//Remember the voice ID, and ask for the result later
$resultId = $response["id"];
} else {
//Error, no voiceover possible
echo $response["error"];
}
}
curl_close($ch);
//STEP 2
// Every minute we make a query-check of the result
if($resultId){
$data = [
'token'=>'123456',
'email'=>'mail@mail.com',
'id'=>$resultId,
];
$url = "https://speechgen.io/index.php?r=api/result";
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
$response = curl_exec($ch);
var_dump($response);
$response = json_decode($response,true);
if (curl_errno($ch)) {
var_dump("Error in connecting to the text recognition server, ".curl_error($ch));
}else{
var_dump($response);
if($response["status"] == 1){
//Copy
echo " ok ".$response["file"];
copy($response["file"], 'FileMane.' . $response["format"]);
}elseif($response["status"] == 0){
//Not ready yet, we will ask for the result later
echo "In process...";
}else{
//Error, no voiceover possible
echo $response["error"];
}
}
curl_close($ch);
}
Grup obrolan internasional di Telegram @speechgen
Dukungan personal di Telegram @speechgen_alex