API-instructie voor Tekst naar Spraak

, 16-09-2025

De API is alleen beschikbaar nadat u uw account heeft gefinancierd.

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

Er zijn 2 tekst-naar-spraakopties beschikbaar via de API:

Optie 1 - snelle spraakweergave van korte teksten.
Optie 2 - instellen van een spraakweergavetaak.

Integratievoorbeelden

Ontdek hoe u de creatie van spraakinhoud kunt stroomlijnen door SpeechGen.io te integreren met de automatiseringsservice MAKE. Deze gids behandelt de automatisering van tekst-naar-spraakprocessen, waardoor het eenvoudiger en efficiënter wordt om spraakinhoud te genereren voor verschillende toepassingen.

Optie 1 - snelle spraakweergave van korte teksten

URL voor variant 1: https://speechgen.io/index.php?r=api/text

Tekst wordt naar de API gestuurd, u krijgt direct resultaat.

Deze optie heeft een maximale limiet van 2000 tekens. En ook maximaal 2 stemwijzigingen. Als de limieten worden overschreden, krijgt u een foutmelding (status = -1).

Aanvraagformaat

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

Verplichte parameters:

'token' - 'SekretKeyInYourProfile' 'email' - 'yourMail@gmail.com' 'voice' - 'Stem' 'text' - 'Tekst voor tekst naar spraak'

Optionele parameters:

'format' - formaat van het resulterende bestand, standaard = mp3, mogelijke waarden ('mp3', 'wav', 'ogg') 'speed' - afspeelsnelheid, standaard 1, (bereik van 0,1 tot 2,0) 'pitch'- stemtoonhoogte, standaard 0, (bereik van -20 tot 20) 'emotion' - emotie van de stem, standaard 'goed', mogelijke waarden ('goed', 'kwaad', 'neutraal'). 'pause_sentence' - De grootte van de pauze tussen zinnen in milliseconden. 'pause_paragraph' - De grootte van de pauze tussen paragrafen in milliseconden. 'bitrate'=>48000 - Bitrate van 8000 tot 192000 Hz.

Emotie niet beschikbaar voor alle stemmen, kijk hier.

Het antwoord komt in JSON:

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

Beschrijving:

"id" - unieke stem-ID "status" - huidige spraakweergavestatus. Beschikbaar uit 3 waarden: 0 - proces 1 - succesvol voltooid -1 - fout "file" - audiospoorpad, beschikbaar indien status= 1 "file_cors" - audiospoorpad CORS "error" - fouttekst, in geval van, indien status = -1 "parts" - aantal spraakweergaven "parts_done" - aantal voltooide stukken "duration" - audiospoorduur in seconden, beschikbaar indien status = 1 "format" - audiobestandsformaat "balans" - limietbalans "cost" - spraakweergavekosten. (wordt verhoogd naarmate de stemdelen worden gedubd)

Voorbeeld van een korte tekst-naar-spraak in PHP variant 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);

Optie 2 is het instellen van een spraakweergavetaak voor de tekst.

URL voor optie 2: https://speechgen.io/index.php?r=api/longtext

Stap 1: Tekst wordt naar de API gestuurd en een unieke stem-ID (id) wordt verkregen.
Stap 2:  Vraag het resultaat van de dubbing op door de dubbing-identifier (id) te sturen.

Deze methode heeft geen beperkingen en maakt tekst-dubbing mogelijk van maximaal 1.000.000 tekens. De dubbing vindt plaats op volgorde van prioriteit (wie het eerst komt, wie het eerst maalt) en kan van 1 tot enkele minuten duren, afhankelijk van de lengte van de tekst.

Aanvraagformaat

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

Verplichte parameters:

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

Optionele parameters:

'format' - formaat van het resulterende bestand, standaard = mp3, mogelijke waarden ('mp3', 'wav', 'ogg') 'speed' - snelheid, standaard 1, (bereik van 0,1 tot 2,0) 'pitch'- stemtoonhoogte, standaard 0, (bereik van -20 tot 20) 'emotion' - emotionele kleuring, standaard 'goed', mogelijke waarden ('goed', 'kwaad', 'neutraal'). 'pause_sentence' - De grootte van de pauze tussen zinnen in milliseconden. 'pause_paragraph' - De grootte van de pauze tussen paragrafen in milliseconden. 'bitrate'=>48000 - Bitrate van 8000 tot 192000 Hz.

Niet beschikbaar voor alle stemmen, kijk hier.

Het antwoord komt in JSON:

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

Beschrijving:

"id" - unieke stem-ID "status" - huidige spraakweergavestatus. Beschikbaar uit 2 waarden: 1 - taak succesvol toegevoegd -1 - fout "error" - fouttekst, in geval van, indien status = -1 "parts" - aantal spraakweergaven "parts_done" - aantal voltooide stukken "format" - audiobestandsformaat "balans" - de balans van de accountlimieten "cost" - spraakweergavekosten. (wordt verhoogd naarmate de stemdelen worden gedubd)

Stap 2. Na het aanmaken van een taak en het verkrijgen van een identifier (id), moet een aanvraag worden gestuurd naar https://speechgen.io/index.php?r=api/result, om het resultaat te achterhalen.

Aanvraagformaat

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

Verplichte parameters:

'token' - SekretKeyInYourProfile 'email' - yourMail@gmail.com 'id' - Unieke stem-ID verkregen in stap 1

Het antwoord komt in JSON:

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

Beschrijving:

"id" - unieke stem-ID "status" - huidige spraakweergavestatus. Beschikbaar uit 3 waarden: 0 - bezig 1 - succesvol voltooid -1 - fout "file" - audiospoorpad, beschikbaar indien status = 1 "error" - fouttekst, in geval van, indien status = -1 "parts" - aantal spraakweergaven "parts_done" - aantal voltooide stukken "duration" - audiospoorduur in seconden, beschikbaar indien status = 1 "format" - audiobestandsformaat "balans" - de balans van de accountlimieten "cost" - spraakweergavekosten. (wordt verhoogd naarmate de stemdelen worden gedubd) "cuts" - Array van fragmenten, indien de "cut" tag wordt gebruikt in de tekst

Voorbeeld van een korte tekst-naar-spraak in PHP variant 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); }

We gebruiken cookies om ervoor te zorgen dat u de beste ervaring op onze website krijgt. Meer informatie: privacybeleid

Accepteer cookies