08-09-2025 , 16-09-2025
Az API csak akkor érhető el, ha feltöltötte a számláját.
JSON API hangok: https://speechgen.io/index.php?r=api/voices.
Az API-n keresztül 2féle szöveges hangosítási lehetőség érhető el:
1. lehetőség - gyors hangosítás rövid szövegekhez.
2. lehetőség - hangosítási feladat beállítása.
Fedezze fel, hogyan egyszerűsítheti a hangtartalom-előállítást a SpeechGen.io és a MAKE automatizálási szolgáltatás integrálásával. Ez az útmutató a szövegből hanggá alakítási folyamatok automatizálását ismerteti, megkönnyítve és hatékonyabbá téve a hangtartalom előállítását különféle alkalmazásokhoz.
URL az 1. variánshoz: https://speechgen.io/index.php?r=api/text
Ez a lehetőség maximum 2000 karakteres limitet tartalmaz. Továbbá maximum 2 hangváltást tesz lehetővé. Ha a limiteket túllépi, hibát kap (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' - 'Hang'
'text' - 'Szöveg a szövegből hanggá alakításhoz'
'format' - a kimeneti fájl formátuma, alapértelmezetten = mp3, lehetséges értékek ('mp3', 'wav', 'ogg')
'speed' - lejátszási sebesség, alapértelmezetten 1, (tartomány: 0.1-től 2.0-ig)
'pitch'- hangmagasság, alapértelmezetten 0, (tartomány: -20-tól 20-ig)
'emotion' - a hang érzelmi töltete, alapértelmezetten 'good', lehetséges értékek ('good', 'evil', 'neutral').
'pause_sentence' - a szünet mérete a mondatok között ezredmásodpercben.
'pause_paragraph' - a szünet mérete a bekezdések között ezredmásodpercben.
'bitrate'=>48000 - Bitráta 8000-től 192000 Hz-ig.
Az érzelmek nem minden hanghoz elérhetők, itt megnézheti.
{
"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" - egyedi hangazonosító
"status" - a hangosítás aktuális állapota. 3 érték lehetséges:
0 - folyamatban
1 - sikeresen befejezett
-1 - hiba
"file" - az audio fájl elérési útja, elérhető ha status= 1
"file_cors" - audio fájl elérési útja CORS
"error" - hibaüzenet, hiba esetén, ha status = -1
"parts" - a hangosítások száma
"parts_done" - a befejezett részek száma
"duration" - az audio fájl időtartama másodpercben, elérhető ha status = 1
"format" - az audio fájl formátuma
"balans" - a limit egyenlege
"cost" - a hangosítás költségei. (növekszik, ahogy a hangrészek fel lesznek mondva)
$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);
1. lépés: A szöveget elküldi az API-nak, és megkapja az egyedi hangazonosítót (id).
2. lépés: Kérje le a felmondás eredményét a felmondási azonosító (id) elküldésével.
Ez a módszer nem rendelkezik korlátozásokkal, és akár 1 000 000 karakteres szöveg felmondását is lehetővé teszi. A felmondás prioritási sorrendben történik (first come, first served), és a szöveg hosszától függően 1-től több percig is eltarthat.
$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' - 'Hang'
'text' - 'Szöveg'
'format' - a kimeneti fájl formátuma, alapértelmezetten = mp3, lehetséges értékek ('mp3', 'wav', 'ogg')
'speed' - sebesség, alapértelmezetten 1, (tartomány: 0.1-től 2.0-ig)
'pitch'- hangmagasság, alapértelmezetten 0, (tartomány: -20-tól 20-ig)
'emotion' - érzelmi színeződés, alapértelmezetten 'good', lehetséges értékek ('good', 'evil', 'neutral').
'pause_sentence' - a szünet mérete a mondatok között ezredmásodpercben.
'pause_paragraph' - a szünet mérete a bekezdések között ezredmásodpercben.
'bitrate'=>48000 - Bitráta 8000-től 192000 Hz-ig.
Nem minden hanghoz elérhető, itt megnézheti.
{
"id":"4153594",
"status":"0",
"parts":"5",
"parts_done":"0",
"format":"mp3",
"error":"",
"balans":"3331.2720000314",
"cost":"0.00"
}
"id" - egyedi hangazonosító
"status" - a hangosítás aktuális állapota. 2 érték lehetséges:
1 - a feladat sikeresen hozzáadva
-1 - hiba
"error" - hibaüzenet, hiba esetén, ha status = -1
"parts" - a hangosítások száma
"parts_done" - a befejezett részek száma
"format" - az audio fájl formátuma
"balans" - a számla limitjeinek egyenlege
"cost" - a hangosítás költségei. (növekszik, ahogy a hangrészek fel lesznek mondva)
2. lépés. A feladat létrehozása és az azonosító (id) megszerzése után egy kérést kell küldeni a https://speechgen.io/index.php?r=api/result címre az eredmény lekérdezéséhez.
$data = [
'token'=>'SekretKeyInYourProfile',
'email'=>'yourMail@gmail.com',
'id'=>4153594,
];
'token' - SekretKeyInYourProfile
'email' - yourMail@gmail.com
'id' - az 1. lépésben kapott egyedi hangazonosító
{
"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" - egyedi hangazonosító
"status" - a hangosítás aktuális állapota. 3 érték lehetséges:
0 - folyamatban
1 - sikeresen befejezett
-1 - hiba
"file" - az audio fájl elérési útja, elérhető ha status = 1
"error" - hibaüzenet, hiba esetén, ha status = -1
"parts" - a hangosítások száma
"parts_done" - a befejezett részek száma
"duration" - az audio fájl időtartama másodpercben, elérhető ha status = 1
"format" - az audio fájl formátuma
"balans" - a számla limitjeinek egyenlege
"cost" - a hangosítás költségei. (növekszik, ahogy a hangrészek fel lesznek mondva)
"cuts" - töredékek tömbje, ha a "cut" címkét használják a szövegben
//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);
}