Instruccions de l'API per a Text a Veu
12-09-2025 , 16-09-2025
L'API només està disponible després d'haver finançat el vostre compte.
Veus de l'API JSON https://speechgen.io/index.php?r=api/voices.
Hi ha 2 opcions de veu de text disponibles a través de l'API:
Opció 1 - veu ràpida de textos curts.
Opció 2 - configuració d'una tasca de veu.
Exemples d'integració
Descobriu com agilitzar la creació de contingut de veu integrant SpeechGen.io amb el servei d'automatització MAKE. Aquesta guia cobreix l'automatització dels processos de text a veu, fent que sigui més senzill i eficient generar contingut de veu per a diverses aplicacions.
Opció 1 - veu ràpida de textos curts
URL per a la variant 1: https://speechgen.io/index.php?r=api/text
El text s'envia a l'API, obteniu resultats immediats.
Aquesta opció té un límit màxim de 2000 caràcters. I també un màxim de 2 canvis de veu. Si se superen els límits, obtindreu un error (estat = -1).
Format de la sol·licitud
$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,
];
Paràmetres obligatoris:
'token' - 'SekretKeyInYourProfile'
'email' - 'yourMail@gmail.com'
'voice' - 'Veu'
'text' - 'Text per a Text a Veu'
Paràmetres opcionals:
'format' - format del fitxer resultant, per defecte = mp3, valors possibles ('mp3', 'wav', 'ogg')
'speed' - velocitat de reproducció, per defecte 1, (rang de 0.1 a 2.0)
'pitch'- to de la veu, per defecte 0, (rang de -20 a 20)
'emotion' - emoció de la veu, per defecte 'good', valors possibles ('good', 'evil', 'neutral').
'pause_sentence' - La mida de la pausa entre frases en mil·lisegons.
'pause_paragraph' - La mida de la pausa entre paràgrafs en mil·lisegons.
'bitrate'=>48000 - Bitrate de 8000 a 192000 Hz.
Emoció No disponible per a totes les veus, mireu-ho aquí.
La resposta arriba en 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"
}
Descripció:
"id" - ID de veu únic
"status" - estat actual de la veu. Disponible a partir de 3 valors:
0 - procés
1 - completat amb èxit
-1 - error
"file" - ruta del fitxer d'àudio, disponible si status= 1
"file_cors" - ruta del fitxer d'àudio CORS
"error" - text de l'error, en cas que status = -1
"parts" - nombre de veus
"parts_done" - nombre de peces completades
"duration" - durada del fitxer d'àudio en segons, disponible si status = 1
"format" - format del fitxer d'àudio
"balans" - saldo del límit
"cost" - costos de la veu. (s'incrementa a mesura que es doblen les peces de veu)
Exemple de veu de text curt en 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);
Opció 2: configurar una tasca de veu per al text.
URL per a l'opció 2: https://speechgen.io/index.php?r=api/longtext
Pas 1: El text s'envia a l'API i s'obté un ID de veu únic (id).
Pas 2: Sol·liciteu el resultat del doblatge enviant l'identificador de doblatge (id).
Aquest mètode no té limitacions i permet el doblatge de text de fins a 1.000.000 de caràcters. El doblatge es realitza per ordre de prioritat (primer que arriba, primer que es serveix) i pot trigar d'1 a diversos minuts, depenent de la longitud del text.
Format de la sol·licitud
$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,
];
Paràmetres obligatoris:
'token' - 'SekretKeyInYourProfile'
'email' - 'yourMail@gmail.com'
'voice' - 'Veu'
'text' - 'Text'
Paràmetres opcionals:
'format' - format del fitxer resultant, per defecte = mp3, valors possibles ('mp3', 'wav', 'ogg')
'speed' - velocitat, per defecte 1, (rang de 0.1 a 2.0)
'pitch'- to de la veu, per defecte 0, (rang de -20 a 20)
'emotion' - coloració emocional, per defecte 'good', valors possibles ('good', 'evil', 'neutral').
'pause_sentence' - La mida de la pausa entre frases en mil·lisegons.
'pause_paragraph' - La mida de la pausa entre paràgrafs en mil·lisegons.
'bitrate'=>48000 - Bitrate de 8000 a 192000 Hz.
No disponible per a totes les veus, mireu aquí.
La resposta arriba en JSON:
{
"id":"4153594",
"status":"0",
"parts":"5",
"parts_done":"0",
"format":"mp3",
"error":"",
"balans":"3331.2720000314",
"cost":"0.00"
}
Descripció:
"id" - ID de veu únic
"status" - estat actual de la veu. Disponible a partir de 2 valors:
1 - tasca afegida amb èxit
-1 - error
"error" - text de l'error, en cas que status = -1
"parts" - nombre de veus
"parts_done" - nombre de peces completades
"format" - format del fitxer d'àudio
"balans" - el saldo dels límits del compte
"cost" - costos de la veu. (s'incrementa a mesura que es doblen les peces de veu)
Pas 2. Després de crear una tasca i obtenir un identificador (id), s'ha d'enviar una sol·licitud a https://speechgen.io/index.php?r=api/result, per esbrinar el resultat.
Format de la sol·licitud
$data = [
'token'=>'SekretKeyInYourProfile',
'email'=>'yourMail@gmail.com',
'id'=>4153594,
];
Paràmetres obligatoris:
'token' - SekretKeyInYourProfile
'email' - yourMail@gmail.com
'id' - ID de veu únic obtingut al pas 1
La resposta arriba en 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"
}
Descripció:
"id" - ID de veu únic
"status" - estat actual de la veu. Disponible a partir de 3 valors:
0 - en curs
1 - completat amb èxit
-1 - error
"file" - ruta del fitxer d'àudio, disponible si status = 1
"error" - text de l'error, en cas que status = -1
"parts" - nombre de veus
"parts_done" - nombre de peces completades
"duration" - durada del fitxer d'àudio en segons, disponible si status = 1
"format" - format del fitxer d'àudio
"balans" - saldo del límit
"cost" - costos de la veu. (s'incrementa a mesura que es doblen les peces de veu)
"cuts" - Matriu de fragments, si s'utilitza l'etiqueta "cut" al text
Exemple de veu de prova curta en 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);
}