API uputstvo za Text to Speech

, 16-09-2025

API je dostupan tek nakon što dopunite svoj račun.

JSON API glasovi https://speechgen.io/index.php?r=api/voices.

Preko API-ja su dostupne 2 opcije za glasovni prenos teksta:

1 opcija - brzi glasovni prenos kratkih tekstova.
2 opcija - postavljanje zadatka za glasovni prenos.

Primeri integracije

Saznajte kako da pojednostavite kreiranje glasovnog sadržaja integracijom SpeechGen.io sa servisom za automatizaciju MAKE. Ovaj vodič pokriva automatizaciju procesa pretvaranja teksta u govor, čineći generisanje glasovnog sadržaja za različite aplikacije jednostavnijim i efikasnijim.

1 opcija - brzi glasovni prenos kratkih tekstova

URL za varijantu 1: https://speechgen.io/index.php?r=api/text

Tekst se šalje API-ju, a vi dobijate trenutne rezultate.

Ova opcija ima maksimalno ograničenje od 2000 karaktera. Takođe, maksimalno 2 promene glasa. Ako se prekorače ograničenja, dobićete grešku (status = -1).

Format zahteva

$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, ];

Obavezni parametri:

'token' - 'SekretKeyInYourProfile' 'email' - 'yourMail@gmail.com' 'voice' - 'Glas' 'text' - 'Tekst za pretvaranje u govor'

Opcioni parametri:

'format' - format rezultujuće datoteke, podrazumevano = mp3, moguće vrednosti ( 'mp3', 'wav', 'ogg') 'speed' - brzina reprodukcije, podrazumevano 1, (opseg od 0.1 do 2.0) 'pitch'- visina glasa, podrazumevano 0, (opseg od -20 do 20) 'emotion' - emocija glasa, podrazumevano 'good', moguće vrednosti ( 'good', 'evil', 'neutral'). 'pause_sentence' - veličina pauze između rečenica u milisekundama. 'pause_paragraph' - veličina pauze između pasusa u milisekundama. 'bitrate'=>48000 - Bitrate od 8000 do 192000 Hz.

Emocija nije dostupna za sve glasove, pogledajte ovde.

Odgovor dolazi u JSON formatu:

{ "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" }

Opis:

"id" - jedinstveni ID glasa "status" - trenutni status glasovnog prenosa. Dostupne su 3 vrednosti: 0 - u obradi 1 - uspešno završeno -1 - greška "file" - putanja do audio datoteke, dostupna ako je status= 1 "file_cors" - putanja do audio datoteke CORS "error" - tekst greške, u slučaju da je status = -1 "parts" - broj glasovnih prenosa "parts_done" - broj završenih delova "duration" - trajanje audio datoteke u sekundama, dostupno ako je status = 1 "format" - format audio datoteke "balans" - preostali limit na računu "cost" - troškovi glasovnog prenosa. (povećava se kako se delovi glasa obrađuju)

Primer glasovnog prenosa kratkog teksta u PHP varijanti 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/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);

Opcija 2 je postavljanje zadatka za glasovni prenos teksta.

URL za opciju 2: https://speechgen.io/index.php?r=api/longtext

Korak 1: Tekst se šalje API-ju i dobija se jedinstveni ID glasa (id).
Korak 2:  Zahteva se rezultat obrade slanjem identifikatora obrade (id).

Ova metoda nema ograničenja i omogućava obradu teksta do 1.000.000 karaktera. Obrada se vrši po prioritetu (prvi dođe, prvi se usluži) i može trajati od 1 do nekoliko minuta, u zavisnosti od dužine teksta.

Format zahteva

$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, ];

Obavezni parametri:

'token' - 'SekretKeyInYourProfile' 'email' - 'yourMail@gmail.com' 'voice' - 'Glas' 'text' - 'Tekst'

Opcioni parametri:

'format' - format rezultujuće datoteke, podrazumevano = mp3, moguće vrednosti( 'mp3', 'wav', 'ogg') 'speed' - brzina, podrazumevano 1, (opseg od 0.1 do 2.0) 'pitch'- visina glasa, podrazumevano 0, (opseg od -20 do 20) 'emotion' - emocionalna obojenost, podrazumevano 'good', moguće vrednosti ( 'good', 'evil', 'neutral'). 'pause_sentence' - veličina pauze između rečenica u milisekundama. 'pause_paragraph' - veličina pauze između pasusa u milisekundama. 'bitrate'=>48000 - Bitrate od 8000 do 192000 Hz.

Nije dostupno za sve glasove, pogledajte ovde.

Odgovor dolazi u JSON formatu:

{ "id":"4153594", "status":"0", "parts":"5", "parts_done":"0", "format":"mp3", "error":"", "balans":"3331.2720000314", "cost":"0.00" }

Opis:

"id" - jedinstveni ID glasa "status" - trenutni status glasovnog prenosa. Dostupne su 2 vrednosti: 1 - zadatak je uspešno dodat -1 - greška "error" - tekst greške, u slučaju da je status = -1 "parts" - broj glasovnih prenosa "parts_done" - broj završenih delova "format" - format audio datoteke "balans" - preostali limit na računu "cost" - troškovi glasovnog prenosa. (povećava se kako se delovi glasa obrađuju)

Korak 2. Nakon kreiranja zadatka i dobijanja identifikatora (id), mora se poslati zahtev na https://speechgen.io/index.php?r=api/result, da bi se saznali rezultati.

Format zahteva

$data = [ 'token'=>'SekretKeyInYourProfile', 'email'=>'yourMail@gmail.com', 'id'=>4153594, ];

Obavezni parametri:

'token' - SekretKeyInYourProfile 'email' - yourMail@gmail.com 'id' - Jedinstveni ID glasa dobijen u koraku 1

Odgovor dolazi u JSON formatu:

{ "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" }

Opis:

"id" - jedinstveni ID glasa "status" - trenutni status glasovnog prenosa. Dostupne su 3 vrednosti: 0 - u toku 1 - uspešno završeno -1 - greška "file" - putanja do audio datoteke, dostupna ako je status = 1 "error" - tekst greške, u slučaju da je status = -1 "parts" - broj glasovnih prenosa "parts_done" - broj završenih delova "duration" - trajanje audio datoteke u sekundama, dostupno ako je status = 1 "format" - format audio datoteke "balans" - preostali limit na računu "cost" - troškovi glasovnog prenosa. (povećava se kako se delovi glasa obrađuju) "cuts" - Niz fragmenata, ako se koristi tag "cut" u tekstu

Primer glasovnog prenosa kratkog testa u PHP varijanti 2

//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); }

Koristimo cookies kako bismo osigurali najbolje iskustvo na našoj veb stranici. Saznajte više: Politika privatnosti

Prihvatite Cookies