API инструкция за преобразуване на текст в реч

, 16-09-2025

API е достъпна само след като сте захранили акаунта си.

JSON API гласове https://speechgen.io/index.php?r=api/voices.

Чрез API са налични 2 опции за озвучаване на текст:

1 опция - бързо озвучаване на кратки текстове.
2 опция - задаване на задача за озвучаване.

Примери за интеграция

Открийте как да оптимизирате създаването на гласово съдържание чрез интегриране на SpeechGen.io с автоматизираната услуга MAKE. Това ръководство обхваща автоматизацията на процесите за преобразуване на текст в реч, което прави генерирането на гласово съдържание за различни приложения по-лесно и по-ефективно.

1 опция - бързо озвучаване на кратки текстове

URL за вариант 1: https://speechgen.io/index.php?r=api/text

Текстът се изпраща към API и получавате незабавни резултати.

Тази опция има максимален лимит от 2000 знака. Също така максимум 2 промени на гласа. Ако лимитите бъдат превишени, ще получите грешка (статус = -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' - емоция на гласа, по подразбиране 'good', възможни стойности ( 'good', 'evil', 'neutral'). 'pause_sentence' - размер на паузата между изреченията в милисекунди. 'pause_paragraph' - размер на паузата между параграфите в милисекунди. 'bitrate'=>48000 - Битрейт от 8000 до 192000 Hz.

Емоцията не е налична за всички гласове, вижте тук.

Отговорът идва в 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" }

Описание:

"id" - уникален ID на гласа "status" - текущ статус на озвучаването. Налични от 3 стойности: 0 - процес 1 - завършен успешно -1 - грешка "file" - път до аудио файла, наличен ако статус= 1 "file_cors" - път до аудио файла CORS "error" - текст на грешката, в случай че статус = -1 "parts" - брой озвучени части "parts_done" - брой завършени части "duration" - продължителност на аудио файла в секунди, наличен ако статус = 1 "format" - формат на аудио файла "balans" - баланс на лимита "cost" - разходи за озвучаване. (увеличава се с озвучаването на части от гласа)

Пример за озвучаване на кратък текст в PHP вариант 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);

Опция 2 е задаване на задача за озвучаване на текст.

URL за опция 2: https://speechgen.io/index.php?r=api/longtext

Стъпка 1: Текстът се изпраща към API и се получава уникален ID на гласа (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' - емоционална окраска, по подразбиране 'good', възможни стойности ( 'good', 'evil', 'neutral'). 'pause_sentence' - размер на паузата между изреченията в милисекунди. 'pause_paragraph' - размер на паузата между параграфите в милисекунди. 'bitrate'=>48000 - Битрейт от 8000 до 192000 Hz.

Не е налично за всички гласове, вижте тук.

Отговорът идва в JSON:

{ "id":"4153594", "status":"0", "parts":"5", "parts_done":"0", "format":"mp3", "error":"", "balans":"3331.2720000314", "cost":"0.00" }

Описание:

"id" - уникален ID на гласа "status" - текущ статус на озвучаването. Налични от 2 стойности: 1 - задачата е добавена успешно -1 - грешка "error" - текст на грешката, в случай че статус = -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' - Уникален ID на гласа, получен в стъпка 1

Отговорът идва в 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" }

Описание:

"id" - уникален ID на гласа "status" - текущ статус на озвучаването. Налични от 3 стойности: 0 - в процес 1 - завършен успешно -1 - грешка "file" - път до аудио файла, наличен ако статус = 1 "error" - текст на грешката, в случай че статус = -1 "parts" - брой озвучени части "parts_done" - брой завършени части "duration" - продължителност на аудио файла в секунди, наличен ако статус = 1 "format" - формат на аудио файла "balans" - баланс на лимита на акаунта "cost" - разходи за озвучаване. (увеличава се с озвучаването на части от гласа) "cuts" - Масив от фрагменти, ако е използван тагът "cut" в текста

Пример за озвучаване на кратък тест във вариант 2 на PHP

//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); }

Използваме Cookie, за да гарантираме, че получавате най-доброто изживяване на нашия уебсайт. Научете повече: Политика за поверителност

Приемане на Cookies