08-09-2025 , 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.
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.
URL voor variant 1: https://speechgen.io/index.php?r=api/text
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).
$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' - 'Stem'
'text' - 'Tekst voor tekst naar spraak'
'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.
{
"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" - 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)
$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);
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.
$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' - 'Stem'
'text' - 'Tekst'
'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.
{
"id":"4153594",
"status":"0",
"parts":"5",
"parts_done":"0",
"format":"mp3",
"error":"",
"balans":"3331.2720000314",
"cost":"0.00"
}
"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.
$data = [
'token'=>'SekretKeyInYourProfile',
'email'=>'yourMail@gmail.com',
'id'=>4153594,
];
'token' - SekretKeyInYourProfile
'email' - yourMail@gmail.com
'id' - Unieke stem-ID verkregen in stap 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" - 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
//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);
}
Internationale Telegram-chat @speechgen
Persoonlijke ondersteuning in Telegram @speechgen_alex