08-09-2025 , 08-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 opties voor tekst-naar-spraak beschikbaar via de API:
1 optie - snelle spraakweergave van korte teksten.
2 optie - instellen van een spraakweergavetaak.
Ontdek hoe u de creatie van spraakinhoud kunt stroomlijnen door SpeechGen.io te integreren met de automatiseringsservice MAKE. Deze handleiding behandelt de automatisering van tekst-naar-spraakprocessen, waardoor het eenvoudiger en efficiënter wordt om spraakinhoud te genereren voor diverse toepassingen.
URL voor variant 1: https://speechgen.io/index.php?r=api/text
Deze optie heeft een maximumlimiet 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' - 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').
'pause_sentence' - The size of the pause between sentences in milliseconds.
'pause_paragraph' - The size of the pause between paragraphs in milliseconds.
'bitrate'=>48000 - Bitrate from 8000 to 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 vanaf 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" - duur van het audiospoor in seconden, beschikbaar indien status = 1
"format" - audiobestandsformaat
"balans" - limietbalans
"cost" - kosten van spraakweergave. (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 wordt verkregen (id).
Stap 2: Vraag het resultaat van de dubbing op door de dubbing-identifier (id) te sturen.
Deze methode heeft geen beperkingen en maakt het mogelijk om teksten tot 1.000.000 tekens te dubben. De dubbing gebeurt 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' - 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').
'pause_sentence' - The size of the pause between sentences in milliseconds.
'pause_paragraph' - The size of the pause between paragraphs in milliseconds.
'bitrate'=>48000 - Bitrate from 8000 to 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 vanaf 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" - het saldo van de accountlimieten
"cost" - kosten van spraakweergave. (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 vanaf 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" - duur van het audiospoor in seconden, beschikbaar indien status = 1
"format" - audiobestandsformaat
"balans" - het saldo van de accountlimieten
"cost" - kosten van spraakweergave. (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