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.
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.
URL per a la variant 1: https://speechgen.io/index.php?r=api/text
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).
$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' - 'Veu'
'text' - 'Text per a Text a Veu'
'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í.
{
"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" - 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)
$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);
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.
$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' - 'Veu'
'text' - 'Text'
'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í.
{
"id":"4153594",
"status":"0",
"parts":"5",
"parts_done":"0",
"format":"mp3",
"error":"",
"balans":"3331.2720000314",
"cost":"0.00"
}
"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.
$data = [
'token'=>'SekretKeyInYourProfile',
'email'=>'yourMail@gmail.com',
'id'=>4153594,
];
'token' - SekretKeyInYourProfile
'email' - yourMail@gmail.com
'id' - ID de veu únic obtingut al pas 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" - 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
//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);
}
Xat internacional de Telegram @speechgen
Suport personal en Telegram @speechgen_alex