08-09-2025 , 16-09-2025
API hanya tersedia selepas anda membiayai akaun anda.
Suara API JSON https://speechgen.io/index.php?r=api/voices.
Terdapat 2 pilihan suara teks yang tersedia melalui API:
1 pilihan - suara pantas untuk teks pendek.
2 pilihan - menetapkan tugasan suara.
Ketahui cara memperkemaskan penciptaan kandungan suara dengan mengintegrasikan SpeechGen.io dengan perkhidmatan automasi MAKE. Panduan ini merangkumi automasi proses text-to-speech, menjadikannya lebih mudah dan cekap untuk menjana kandungan suara untuk pelbagai aplikasi.
Url untuk varian 1: https://speechgen.io/index.php?r=api/text
Pilihan ini mempunyai had maksimum 2000 aksara. Dan juga maksimum 2 perubahan suara. Jika had dilampaui, anda akan mendapat ralat (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' - 'KunciRahsiaDalamProfilAnda'
'email' - 'melAnda@gmail.com'
'voice' - 'Suara'
'text' - 'Teks untuk Text to Speech'
'format' - format fail hasil, lalai = mp3, nilai yang mungkin ( 'mp3', 'wav', 'ogg')
'speed' - kelajuan main balik, lalai 1, (julat dari 0.1 hingga 2.0)
'pitch'- nada suara, lalai 0, (julat dari -20 hingga 20)
'emotion' - emosi suara, lalai 'baik', nilai yang mungkin ( 'baik', 'jahat', 'neutral').
'pause_sentence' - Saiz jeda antara ayat dalam milisaat.
'pause_paragraph' - Saiz jeda antara perenggan dalam milisaat.
'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 suara semasa. Tersedia daripada 3 nilai:
0 - proses
1 - selesai dengan jayanya
-1 - ralat
"file" - laluan fail audio, tersedia jika status= 1
"file_cors" - laluan fail audio CORS
"error" - teks ralat, sekiranya, jika status = -1
"parts" - bilangan suara
"parts_done" - bilangan bahagian yang selesai
"duration" - tempoh fail audio dalam saat, tersedia jika status = 1
"format" - format fail audio
"balans" - had baki
"cost" - kos suara. (ditambah apabila bahagian suara disuarakan)
$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 dihantar ke API dan id suara unik diperoleh(id).
Langkah 2: Minta hasil penyuarahan dengan menghantar pengecam penyuarahan (id).
Kaedah ini tidak mempunyai had dan membenarkan penyuarahan teks sehingga 1,000,000 aksara. Penyuarahan berlaku mengikut keutamaan (siapa cepat dia dapat) dan boleh mengambil masa dari 1 hingga beberapa minit, bergantung 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' - 'KunciRahsiaDalamProfilAnda'
'email' - 'melAnda@gmail.com'
'voice' - 'Suara'
'text' - 'Teks'
'format' - format fail hasil, lalai = mp3, nilai yang mungkin( 'mp3', 'wav', 'ogg')
'speed' - kelajuan, lalai 1, (julat dari 0.1 hingga 2.0)
'pitch'- nada suara, lalai 0, (julat dari -20 hingga 20)
'emotion' - pewarnaan emosi, lalai 'baik', nilai yang mungkin ( 'baik', 'jahat', 'neutral').
'pause_sentence' - Saiz jeda antara ayat dalam milisaat.
'pause_paragraph' - Saiz jeda antara perenggan dalam milisaat.
'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 suara semasa. Tersedia daripada 2 nilai:
1 - tugasan berjaya ditambah
-1 - ralat
"error" - teks ralat, sekiranya, jika status = -1
"parts" - bilangan suara
"parts_done" - bilangan bahagian yang selesai
"format" - format fail audio
"balans" - baki had akaun
"cost" - kos suara. (ditambah apabila bahagian suara disuarakan)
Langkah 2. Selepas mencipta tugasan dan memperoleh pengecam (id), permintaan mesti dihantar ke https://speechgen.io/index.php?r=api/result, untuk mengetahui hasilnya.
$data = [
'token'=>'SekretKeyInYourProfile',
'email'=>'yourMail@gmail.com',
'id'=>4153594,
];
'token' - KunciRahsiaDalamProfilAnda
'email' - melAnda@gmail.com
'id' - ID suara unik yang diperoleh dalam 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 suara semasa. Tersedia daripada 3 nilai:
0 - sedang berjalan
1 - selesai dengan jayanya
-1 - ralat
"file" - laluan fail audio, tersedia jika status = 1
"error" - teks ralat, sekiranya, jika status = -1
"parts" - bilangan suara
"parts_done" - bilangan bahagian yang selesai
"duration" - tempoh fail audio dalam saat, tersedia jika status = 1
"format" - format fail audio
"balans" - baki had akaun
"cost" - kos suara. (ditambah apabila bahagian suara disuarakan)
"cuts" - Siri fragmen, jika tag "potongan" 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);
}