08-12-2023 , 08-12-2023
API je dostupné len po doplnení vášho účtu.
JSON API hlasy https://speechgen.io/index.php?r=api/voices.
Cez API sú dostupné 2 možnosti dabovania textu:
1 možnosť - rýchle nadabovanie krátkych textov.
2 možnosť - nastavenie úlohy na nadabovanie.
Url pre variant 1: https://speechgen.io/index.php?r=api/text
Táto možnosť má maximálny limit 2000 znakov. A tiež maximálne 2 zmeny hlasu. Ak sú limity prekročené, dostanete chybu (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',
];
'token' - 'SekretKeyInYourProfile'
'email' - 'yourMail@gmail.com'
'voice' - 'Voice'
'text' - 'Text for text to Speech'
'format' - format of the resulting file, by default = mp3, possible values ( 'mp3', 'wav', 'ogg')
'speed' - playback speed, by default 1, (range from 0.1 to 2.0)
'pitch'- voice pitch, by default 0, (range from -20 to 20)
'emotion' - emotion of voice , by default 'good', possible values ( 'good', 'evil', 'neutral').
Emócia Nie je dostupná pre všetky hlasy, pozrite si to tu.
{
"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" - unique voice ID
"status" - current voiceover status. Available from 3 values:
0 - process
1 - completed successfully
-1 - error
"file" - audio file path, available if status= 1
"file_cors" - audio file path CORS
"error" - error text, in the event of, if status = -1
"parts" - number of voiceovers
"parts_done" - number of pieces completed
"duration" - audio file duration in seconds, available if status = 1
"format" - audio file format
"balans" - limit balance
"cost" - voiceover costs. (is increased as the voice parts are dubbed)
$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);
Krok 1: Text je poslaný na API a získava sa jedinečné ID hlasu (id).
Krok 2: Požiadať o výsledok dabovania odoslaním identifikátora dabovania (id).
Táto metóda nemá obmedzenia a umožňuje nadabovanie textu až do 1 000 000 znakov. Nadabovanie prebieha podľa poradia priority (kto prvý príde, ten prvý dabuje) a môže trvať od 1 do niekoľkých minút, v závislosti od dĺžky textu.
$data = [
'token'=>'SekretKeyInYourProfile',
'email'=>'yourMail@gmail.com',
'voice'=>'John',
'text'=>"Text",
'format'=>'mp3',
'speed'=>1.1,
'pitch'=>0.8,
'emotion'=>'good',
];
'token' - 'SekretKeyInYourProfile'
'email' - 'yourMail@gmail.com'
'voice' - 'Voice'
'text' - 'Text'
'format' - format of the resulting file, by default = mp3, possible values( 'mp3', 'wav', 'ogg')
'speed' - speed, by default 1, (range from 0.1 to 2.0)
'pitch'- voice pitch, by default 0, (range from -20 to 20)
'emotion' - emotional coloration, by default 'good', possible values ( 'good', 'evil', 'neutral').
Nie je dostupné pre všetky hlasy, pozrite si to tu.
{
"id":"4153594",
"status":"0",
"parts":"5",
"parts_done":"0",
"format":"mp3",
"error":"",
"balans":"3331.2720000314",
"cost":"0.00"
}
"id" - unique voice ID
"status" - current voiceover status. Available from 2 values:
1 - task added successfully
-1 - error
"error" - error text, in case of, if status = -1
"parts" - number of voiceovers
"parts_done" - number of pieces completed
"format" - audio file format
"balans" - the balance of the account limits
"cost" - voiceover costs. ( is increased as the voice parts are dubbed)
Krok 2. Po vytvorení úlohy a získaní identifikátora (id) musí byť odoslaná požiadavka na https://speechgen.io/index.php?r=api/result, aby ste zistili výsledok.
$data = [
'token'=>'SekretKeyInYourProfile',
'email'=>'yourMail@gmail.com',
'id'=>4153594,
];
'token' - SekretKeyInYourProfile
'email' - yourMail@gmail.com
'id' - Unique voice ID obtained in step 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" - unique voice ID
"status" - current voiceover status. Available from 3 values:
0 - in the midst of
1 - completed successfully
-1 - error
"file" - audio file path, available if status = 1
"error" - error text, in case of, if status = -1
"parts" - number of voiceovers
"parts_done" - number of pieces completed
"duration" - audio file duration in seconds, available if status = 1
"format" - audio file format
"balans" - the balance of the account limits
"cost" - voiceover costs. ( is increased as the voice parts are dubbed)
"cuts" - Array of fragments, if the "cut" tag is used in the text
//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);
}