Инструкция для API

, Обновлено 31 января 2024

Инструкции API c примерами на github

API Звукограма на github.

Инструкции

API доступен только после пополнения баланса

Список всех голосов в формате json.

Доступны 2 варианта озвучки текста по API:

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

1 вариант - быстрая озвучка коротких текстов. 

Урл для 1 варианта: https://zvukogram.com/index.php?r=api/text

Текст отправляется на API и сразу получаем результат озвучки. 

У данного варианта есть ограничение - максимум 1000 символов. А также максимум 2 смены голоса. В случае превышения лимитов получим ошибку (status = -1).

Формат запроса

$data = [ 'token'=>'СекретныйКлючДоступныйВЛичномКабинете', 'email'=>'yourMail@gmail.com', 'voice'=>'Владимир', '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' - Размер паузы между предложениями в ms. 'pause_paragraph' - Размер паузы между абзацами в ms. 'bitrate'=>48000 - Битрейт от 8000 до 192000 Hz.

* emotion Доступен не для всех голосов, смотреть здесь

Ответ приходит в 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" - уникальный идентификатор озвучки "status" - текущий статус озвучки. Доступны 2 значения: 1 - завершен успешно -1 - ошибка "file" - путь до аудио файла, доступен если status = 1 "file_cors" - путь до аудио файла CORS "error" - текст ошибки, в случае, если status = -1 " parts" - число фрагментов озвучки "parts_done" - число фрагментов завершенных "duration" - длительность аудио файла в секундах, доступен если status = 1 "format" - формат аудиофайла "balans" - остаток на балансе в токенах "cost" - затраты на озвучку. (увеличивается по мере озвучки фрагментов)

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

$data = [ 'token' => '123456', 'email' => 'mail@mail.com', 'voice' => 'Владимир', 'text' => "Текст который будет озвучен", 'format' => 'mp3', 'speed' => 1.1, 'pitch' => 0, 'emotion' => 'good', ]; $url = "https://zvukogram.com/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("Ошибка соединения с сервером распознавания текстов, " . curl_error($ch)); } else { var_dump($response); if ($response["status"] == 1) { //Скопируем себе файл echo "vse ok " echo " ok " . $response["file"]; copy($response["file"], 'ИмяФайла.' . $response["format"]); } else { //Ошибка, озвучка невозможна echo $response["error"]; } } curl_close($ch);

2 вариант - постановка задачи на озвучку текста.

Урл для 2 варианта: https://zvukogram.com/index.php?r=api/longtext

Шаг 1: Текст отправляется на API и получаем уникальный идентификатор озвучки (id).
Шаг 2:  Запрашиваем результат озвучки , отправив идентификатор озвучки (id).

Данный метод не имеет ограничений и позволяет озвучивать текста до 1000 000 символов. Озвучка происходит в порядке очереди (первый пришел, первый обработан) и может занимать от 1 до нескольких минут в зависимости от длинны текста.

Формат запроса

$data = [ 'token'=>'СекретныйКлючДоступныйВЛичномКабинете', 'email'=>'ВашаПочта@gmail.com', 'voice'=>'Владимир', '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' - Размер паузы между предложениями в ms. 'pause_paragraph' - Размер паузы между абзацами в ms. 'bitrate'=>48000 - Битрейт от 8000 до 192000 Hz.

emotion Доступен не для всех голосов, смотреть здесь

Ответ приходит в JSON:

{ "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://zvukogram.com/index.php?r=api/result, чтобы узнать результат.

Формат запроса

$data = [ 'token'=>'СекретныйКлючДоступныйВЛичномКабинете', 'email'=>'ВашаПочта@gmail.com', 'id'=>4153594, ];

Обязательные параметры:

'token' - СекретныйКлючДоступныйВЛичномКабинете 'email' - ВашаПочта@gmail.com '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" - уникальный идентификатор озвучки "status" - текущий статус озвучки. Доступны 3 значения: 0 - в процессе 1 - завершен успешно -1 - ошибка "file" - путь до аудио файла, доступен если status = 1 "error" - текст ошибки, в случае, если status = -1 "parts" - число фрагментов озвучки "parts_done" - число фрагментов завершенных "duration" - длительность аудио файла в секундах, доступен если status = 1 "format" - формат аудиофайла "balans" - остаток на балансе в токенах "cost" - затраты на озвучку. (увеличивается по мере озвучки фрагментов) "cuts" - Массив фрагментов, если используется тег obrezka в тексте

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

ШАГ 1

//STEP 1 $data = [ 'token' => '123456', 'email' => 'mail@mail.com', 'voice' => 'Владимир', 'text' => "Текст который будет озвучен", 'format' => 'mp3', 'speed' => 1.1, 'pitch' => 0, 'emotion' => 'good', ]; $url = "https://zvukogram.com/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("Ошибка соединения с сервером распознавания текстов, " . 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) { //Запомними идентификатор озвучки, и запросим результат позже $resultId = $response["id"]; } else { //Ошибка, озвучка невозможна echo $response["error"]; } } curl_close($ch);

ШАГ 2

//STEP 2 // Каждую минуту делаем запрос-проверку результата if($resultId){ $data = [ 'token'=>'123456', 'email'=>'mail@mail.com', 'id'=>$resultId, ]; $url = "https://zvukogram.com/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){ //Скопируем себе файл echo " ok ".$response["file"]; copy($response["file"], 'FileMane.' . $response["format"]); }elseif($response["status"] == 0){ //Еще не готово запросим результат позже echo "In process..."; }else{ //Ошибка, озвучка невозможна echo $response["error"]; } } curl_close($ch); }
2024 - Звукограм