08-09-2025 , 16-09-2025
API-en er kun tilgjengelig etter at du har fylt på kontoen din.
JSON API-stemmer https://speechgen.io/index.php?r=api/voices.
Det er 2 tekst-til-tale-alternativer tilgjengelig via API-en:
1. alternativ - rask stemmlegging av korte tekster.
2. alternativ - innstilling av en stemmleggingsoppgave.
Oppdag hvordan du kan effektivisere opprettelsen av stemmeinnhold ved å integrere SpeechGen.io med automasjonstjenesten MAKE. Denne guiden dekker automatisering av tekst-til-tale-prosesser, noe som gjør det enklere og mer effektivt å generere stemmeinnhold for ulike applikasjoner.
URL for alternativ 1: https://speechgen.io/index.php?r=api/text
Dette alternativet har en maksimal grense på 2000 tegn. Og også et maksimum på 2 stemmeendringer. Hvis grensene overskrides, får du en feil (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' - 'SekretNøkkelIProfilenDin'
'email' - 'dinMail@gmail.com'
'voice' - 'Stemme'
'text' - 'Tekst for tekst til tale'
'format' - format på resultatfilen, standard = mp3, mulige verdier ('mp3', 'wav', 'ogg')
'speed' - avspillingshastighet, standard 1, (område fra 0.1 til 2.0)
'pitch'- stemmehøyde, standard 0, (område fra -20 til 20)
'emotion' - stemmeemosjon, standard 'god', mulige verdier ('god', 'ond', 'nøytral').
'pause_sentence' - Størrelsen på pausen mellom setninger i millisekunder.
'pause_paragraph' - Størrelsen på pausen mellom avsnitt i millisekunder.
'bitrate'=>48000 - Bitrate fra 8000 til 192000 Hz.
Følelser er ikke tilgjengelig for alle stemmer, se her.
{
"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" - unik stemme-ID
"status" - gjeldende status for stemmlegging. Tilgjengelig fra 3 verdier:
0 - prosess
1 - fullført vellykket
-1 - feil
"file" - lydfilbane, tilgjengelig hvis status= 1
"file_cors" - lydfilbane CORS
"error" - feiltekst, i tilfelle, hvis status = -1
"parts" - antall stemmlegginger
"parts_done" - antall fullførte deler
"duration" - varighet på lydfilen i sekunder, tilgjengelig hvis status = 1
"format" - lydfilformat
"balans" - grensebalanse
"cost" - kostnader for stemmlegging. (økes etter hvert som stemmedelene dubbes)
$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);
Steg 1: Teksten sendes til API-en og en unik stemme-ID (id) oppnås.
Steg 2: Be om resultatet av dubbingen ved å sende dubbing-identifikatoren (id).
Denne metoden har ingen begrensninger og tillater dubbing av tekst opp til 1 000 000 tegn. Dubbingen skjer i prioritert rekkefølge (førstemann til mølla) og kan ta fra 1 til flere minutter, avhengig av tekstens lengde.
$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' - 'SekretNøkkelIProfilenDin'
'email' - 'dinMail@gmail.com'
'voice' - 'Stemme'
'text' - 'Tekst'
'format' - format på resultatfilen, standard = mp3, mulige verdier ('mp3', 'wav', 'ogg')
'speed' - hastighet, standard 1, (område fra 0.1 til 2.0)
'pitch'- stemmehøyde, standard 0, (område fra -20 til 20)
'emotion' - emosjonell fargelegging, standard 'god', mulige verdier ('god', 'ond', 'nøytral').
'pause_sentence' - Størrelsen på pausen mellom setninger i millisekunder.
'pause_paragraph' - Størrelsen på pausen mellom avsnitt i millisekunder.
'bitrate'=>48000 - Bitrate fra 8000 til 192000 Hz.
Ikke tilgjengelig for alle stemmer, se her.
{
"id":"4153594",
"status":"0",
"parts":"5",
"parts_done":"0",
"format":"mp3",
"error":"",
"balans":"3331.2720000314",
"cost":"0.00"
}
"id" - unik stemme-ID
"status" - gjeldende status for stemmlegging. Tilgjengelig fra 2 verdier:
1 - oppgave lagt til vellykket
-1 - feil
"error" - feiltekst, i tilfelle, hvis status = -1
"parts" - antall stemmlegginger
"parts_done" - antall fullførte deler
"format" - lydfilformat
"balans" - kontogrensenes balanse
"cost" - kostnader for stemmlegging. (økes etter hvert som stemmedelene dubbes)
Steg 2. Etter å ha opprettet en oppgave og fått en identifikator (id), må en forespørsel sendes til https://speechgen.io/index.php?r=api/result, for å finne resultatet.
$data = [
'token'=>'SekretKeyInYourProfile',
'email'=>'yourMail@gmail.com',
'id'=>4153594,
];
'token' - SekretNøkkelIProfilenDin
'email' - dinMail@gmail.com
'id' - Unik stemme-ID oppnådd i steg 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" - unik stemme-ID
"status" - gjeldende status for stemmlegging. Tilgjengelig fra 3 verdier:
0 - pågår
1 - fullført vellykket
-1 - feil
"file" - lydfilbane, tilgjengelig hvis status = 1
"error" - feiltekst, i tilfelle, hvis status = -1
"parts" - antall stemmlegginger
"parts_done" - antall fullførte deler
"duration" - varighet på lydfilen i sekunder, tilgjengelig hvis status = 1
"format" - lydfilformat
"balans" - kontogrensenes balanse
"cost" - kostnader for stemmlegging. (økes etter hvert som stemmedelene dubbes)
"cuts" - Array av fragmenter, hvis "cut"-taggen brukes i teksten
//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);
}