08-09-2025 , 16-09-2025
API тек шотыңызға ақша салғаннан кейін қолжетімді болады.
JSON API дауыстары https://speechgen.io/index.php?r=api/voices.
API арқылы 2 мәтінді дыбыстау опциясы қолжетімді:
1-нұсқа - қысқа мәтіндерді жылдам дыбыстау.
2-нұсқа - дыбыстау тапсырмасын орнату.
SpeechGen.io-ны MAKE автоматтандыру қызметімен біріктіру арқылы дыбыстық мазмұн жасауды қалай оңтайландыру керектігін біліңіз. Бұл нұсқаулық мәтінді дыбыстау процестерін автоматтандыруды қамтиды, бұл әртүрлі қолданбалар үшін дыбыстық мазмұнды жасауды жеңілдетеді және тиімдірек етеді.
1-нұсқаға арналған URL: https://speechgen.io/index.php?r=api/text
Бұл нұсқада 2000 таңбаға дейінгі шектеу бар. Сондай-ақ, дауысты 2 рет өзгертуге болады. Егер шектеулер асып кетсе, сіз қате аласыз (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' - 'Сіздің профиліңіздегі құпия кілт'
'email' - 'сіздіңПоштаңыз@gmail.com'
'voice' - 'Дауыс'
'text' - 'Мәтінді дыбыстауға арналған мәтін'
'format' - нәтижелік файлдың пішімі, әдепкі бойынша = mp3, мүмкін болатын мәндер ('mp3', 'wav', 'ogg')
'speed' - ойнату жылдамдығы, әдепкі бойынша 1, (0.1-ден 2.0-ге дейінгі диапазон)
'pitch'- дауыс биіктігі, әдепкі бойынша 0, (-20-дан 20-ға дейінгі диапазон)
'emotion' - дауыс эмоциясы, әдепкі бойынша 'жақсы', мүмкін болатын мәндер ('жақсы', 'жаман', 'бейтарап').
'pause_sentence' - сөйлемдер арасындағы үзіліс мөлшері миллисекундпен.
'pause_paragraph' - абзацтар арасындағы үзіліс мөлшері миллисекундпен.
'bitrate'=>48000 - 8000-нан 192000 Гц-ге дейінгі битрейт.
Эмоция барлық дауыстар үшін қолжетімді емес, мұнда қараңыз.
{
"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" - бірегей дауыс идентификаторы
"status" - ағымдағы дыбыстау мәртебесі. 3 мәннен қолжетімді:
    0  - процесс
    1  - сәтті аяқталды
    -1 - қате
"file" - аудио файл жолы, status= 1 болғанда қолжетімді
"file_cors" - аудио файл жолы CORS
"error" - қате мәтіні, егер status = -1 болса
"parts"  - дыбыстаулар саны
"parts_done" - аяқталған бөліктер саны
"duration"  - аудио файлдың ұзақтығы секундпен, status = 1 болғанда қолжетімді
"format" - аудио файл пішімі
"balans" - лимит балансы
"cost" - дыбыстау құны. (дауыс бөліктері дубляждалған сайын артады)
$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-қадам: Мәтін API-ге жіберіледі және бірегей дауыс идентификаторы (id) алынады.
2-қадам: Дубляж нәтижесін дубляж идентификаторын (id) жіберу арқылы сұраңыз.
Бұл әдісте шектеулер жоқ және 1 000 000 таңбаға дейінгі мәтінді дубляждауға мүмкіндік береді. Дубляж басымдылық ретімен (бірінші келген бірінші қызмет етеді) жүзеге асырылады және мәтіннің ұзақтығына байланысты 1-ден бірнеше минутқа дейін созылуы мүмкін.
$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' - 'Сіздің профиліңіздегі құпия кілт'
'email' - 'сіздіңПоштаңыз@gmail.com'
'voice' - 'Дауыс'
'text' - 'Мәтін'
'format' - нәтижелік файлдың пішімі, әдепкі бойынша = mp3, мүмкін болатын мәндер ('mp3', 'wav', 'ogg')
'speed' - жылдамдық, әдепкі бойынша 1, (0.1-ден 2.0-ге дейінгі диапазон)
'pitch'- дауыс биіктігі, әдепкі бойынша 0, (-20-дан 20-ға дейінгі диапазон)
'emotion' - эмоционалды бояу, әдепкі бойынша 'жақсы', мүмкін болатын мәндер ('жақсы', 'жаман', 'бейтарап').
'pause_sentence' - сөйлемдер арасындағы үзіліс мөлшері миллисекундпен.
'pause_paragraph' - абзацтар арасындағы үзіліс мөлшері миллисекундпен.
'bitrate'=>48000 - 8000-нан 192000 Гц-ге дейінгі битрейт.
Барлық дауыстар үшін қолжетімді емес, мұнда қараңыз.
{
"id":"4153594",
"status":"0",
"parts":"5",
"parts_done":"0",
"format":"mp3",
"error":"",
"balans":"3331.2720000314",
"cost":"0.00"
}
"id" - бірегей дауыс идентификаторы
"status" - ағымдағы дыбыстау мәртебесі. 2 мәннен қолжетімді:
    1  - тапсырма сәтті қосылды
    -1 - қате
"error" - қате мәтіні, егер status = -1 болса
"parts"  - дыбыстаулар саны
"parts_done" - аяқталған бөліктер саны
"format" - аудио файл пішімі
"balans" - есептік жазба лимиттерінің балансы
"cost" - дыбыстау құны. (дауыс бөліктері дубляждалған сайын артады)
2-қадам. Тапсырманы жасап, идентификаторды (id) алғаннан кейін, нәтижесін білу үшін https://speechgen.io/index.php?r=api/result мекенжайына сұрау жіберілуі керек.
$data = [
	'token'=>'SekretKeyInYourProfile',
	'email'=>'yourMail@gmail.com',
	'id'=>4153594, 
];
'token' - Сіздің профиліңіздегі құпия кілт
'email' - сіздіңПоштаңыз@gmail.com
'id' - 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" - бірегей дауыс идентификаторы
"status" - ағымдағы дыбыстау мәртебесі. 3 мәннен қолжетімді:
    0  - ортасында
    1  - сәтті аяқталды
    -1 - қате
"file" - аудио файл жолы, status = 1 болғанда қолжетімді
"error" - қате мәтіні, егер status = -1 болса
"parts"  - дыбыстаулар саны
"parts_done" - аяқталған бөліктер саны
"duration"  - аудио файлдың ұзақтығы секундпен, status = 1 болғанда қолжетімді
"format" - аудио файл пішімі
"balans" - есептік жазба лимиттерінің балансы
"cost" - дыбыстау құны. (дауыс бөліктері дубляждалған сайын артады)
"cuts" - фрагменттер массиві, егер мәтінде "cut" тегі қолданылса
//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);
}