08-09-2025 , 16-09-2025
Ang API ay magagamit lamang pagkatapos mong pondohan ang iyong account.
JSON API voices https://speechgen.io/index.php?r=api/voices.
Mayroong 2 pagpipilian sa voice-over ng teksto na magagamit sa pamamagitan ng API:
1 pagpipilian - mabilis na voice-over ng maiikling teksto.
2 pagpipilian - pagtatakda ng isang voice-over task.
Tuklasin kung paano pasimplehin ang paglikha ng nilalaman ng boses sa pamamagitan ng pagsasama ng SpeechGen.io sa automation service na MAKE. Saklaw ng gabay na ito ang automation ng mga proseso ng text-to-speech, na ginagawang mas simple at mas mahusay ang pagbuo ng nilalaman ng boses para sa iba't ibang mga aplikasyon.
URL para sa variant 1: https://speechgen.io/index.php?r=api/text
Ang pagpipiliang ito ay may maximum na limitasyon na 2000 karakter. At pati na rin ang maximum na 2 pagbabago ng boses. Kung lalampas sa mga limitasyon, makakakuha ka ng error (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' - 'SekretKeyInYourProfile'
'email' - 'yourMail@gmail.com'
'voice' - 'Boses'
'text' - 'Teksto para sa Text to Speech'
'format' - format ng nagreresultang file, default = mp3, posibleng mga halaga ( 'mp3', 'wav', 'ogg')
'speed' - bilis ng pag-playback, default 1, (saklaw mula 0.1 hanggang 2.0)
'pitch'- tono ng boses, default 0, (saklaw mula -20 hanggang 20)
'emotion' - emosyon ng boses, default 'good', posibleng mga halaga ( 'good', 'evil', 'neutral').
'pause_sentence' - Ang laki ng paghinto sa pagitan ng mga pangungusap sa milliseconds.
'pause_paragraph' - Ang laki ng paghinto sa pagitan ng mga talata sa milliseconds.
'bitrate'=>48000 - Bitrate mula 8000 hanggang 192000 Hz.
Emosyon Hindi magagamit para sa lahat ng boses, tingnan dito.
{
"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" - natatanging voice ID
"status" - kasalukuyang status ng voiceover. Magagamit mula sa 3 halaga:
0 - proseso
1 - nakumpleto nang matagumpay
-1 - error
"file" - path ng audio file, magagamit kung status= 1
"file_cors" - path ng audio file CORS
"error" - teksto ng error, kung sakali, kung status = -1
"parts" - bilang ng mga voiceover
"parts_done" - bilang ng mga pirasong nakumpleto
"duration" - tagal ng audio file sa segundo, magagamit kung status = 1
"format" - format ng audio file
"balans" - limitasyon ng balanse
"cost" - gastos sa voiceover. ( tumataas habang ang mga bahagi ng boses ay na-dub)
$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);
Hakbang 1: Ang teksto ay ipinapadala sa API at nakakakuha ng isang natatanging voice ID (id).
Hakbang 2: Hilingin ang resulta ng dubbing sa pamamagitan ng pagpapadala ng identifier ng dubbing (id).
Ang pamamaraang ito ay walang mga limitasyon at nagbibigay-daan sa pag-dub ng teksto hanggang 1,000,000 karakter. Ang pag-dub ay nagaganap ayon sa priyoridad (unang dumating, unang nagsilbi) at maaaring tumagal mula 1 hanggang ilang minuto, depende sa haba ng teksto.
$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' - 'SekretKeyInYourProfile'
'email' - 'yourMail@gmail.com'
'voice' - 'Boses'
'text' - 'Teksto'
'format' - format ng nagreresultang file, default = mp3, posibleng mga halaga( 'mp3', 'wav', 'ogg')
'speed' - bilis, default 1, (saklaw mula 0.1 hanggang 2.0)
'pitch'- tono ng boses, default 0, (saklaw mula -20 hanggang 20)
'emotion' - emosyonal na pangkulay, default 'good', posibleng mga halaga ( 'good', 'evil', 'neutral').
'pause_sentence' - Ang laki ng paghinto sa pagitan ng mga pangungusap sa milliseconds.
'pause_paragraph' - Ang laki ng paghinto sa pagitan ng mga talata sa milliseconds.
'bitrate'=>48000 - Bitrate mula 8000 hanggang 192000 Hz.
Hindi magagamit para sa lahat ng boses, tingnan dito.
{
"id":"4153594",
"status":"0",
"parts":"5",
"parts_done":"0",
"format":"mp3",
"error":"",
"balans":"3331.2720000314",
"cost":"0.00"
}
"id" - natatanging voice ID
"status" - kasalukuyang status ng voiceover. Magagamit mula sa 2 halaga:
1 - matagumpay na naidagdag ang task
-1 - error
"error" - teksto ng error, kung sakali, kung status = -1
"parts" - bilang ng mga voiceover
"parts_done" - bilang ng mga pirasong nakumpleto
"format" - format ng audio file
"balans" - ang balanse ng mga limitasyon ng account
"cost" - gastos sa voiceover. ( tumataas habang ang mga bahagi ng boses ay na-dub)
Hakbang 2. Pagkatapos lumikha ng isang task at makakuha ng isang identifier (id), isang kahilingan ang dapat ipadala sa https://speechgen.io/index.php?r=api/result, upang malaman ang resulta.
$data = [
'token'=>'SekretKeyInYourProfile',
'email'=>'yourMail@gmail.com',
'id'=>4153594,
];
'token' - SekretKeyInYourProfile
'email' - yourMail@gmail.com
'id' - Natatanging voice ID na nakuha sa hakbang 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" - natatanging voice ID
"status" - kasalukuyang status ng voiceover. Magagamit mula sa 3 halaga:
0 - nasa proseso
1 - nakumpleto nang matagumpay
-1 - error
"file" - path ng audio file, magagamit kung status = 1
"error" - teksto ng error, kung sakali, kung status = -1
"parts" - bilang ng mga voiceover
"parts_done" - bilang ng mga pirasong nakumpleto
"duration" - tagal ng audio file sa segundo, magagamit kung status = 1
"format" - format ng audio file
"balans" - ang balanse ng mga limitasyon ng account
"cost" - gastos sa voiceover. ( tumataas habang ang mga bahagi ng boses ay na-dub)
"cuts" - Array ng mga fragment, kung ang "cut" tag ay ginamit sa teksto
//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);
}