Для доступа к API необходимо пополнить баланс и скопировать Api_key из меню настроек аккаунта.
Стоимость использования согласно общим тарифам.
API-ключ не имеют срока действия для простоты аутентификации, но в целях безопасности есть возможность перегенерировать ключ в личном кабинете.
Полученный API-ключ указывается в header для дальнейшей работы.
Оглавление
Получение списка голосов
Сначала получим список доступных голосов с доступными параметрами. Эти параметры потребуется для дальнейшей отправки текста на синтез.
Параметры:
‘server’=> ‘Сервер используемой нейросети 0-7, где 0 все голоса’
‘Authorization: Bearer <API-KEY>’
Пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
header('Content-type: application/json'); $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'https://apihost.ru/api/v1/speaker', CURLOPT_RETURNTRANSFER => 1, CURLOPT_POSTFIELDS => json_encode(array('server'=> 1)), CURLOPT_HTTPHEADER => array( 'Authorization: Bearer <API-KEY>', 'Content-Type: application/json', ), )); $response = curl_exec($curl); curl_close($curl); echo $response; |
Результат:
Результатом выполнения данного запроса будет список голосов:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
{ "speaker": [ { "id": "34", "speaker": "Филип", "lang": "ru-RU", "gender": "male" }, ... ], "lang": [ { "value": "ru-RU", "lang": "Русский" } ], "emotion": [] } |
“speaker”: [..] – Основные данные голоса.
“id” – Уникальный идентификатор голоса.
“speaker” – Имя голоса.
“lang” – Поддерживаемый язык.
“gender” – Принадлежность к мужскому или женскому полу.
“lang”: […] – Поддерживаемые языки всех голосов в данном сервисе.
“value” – ISO код языка.
“lang” – Наименование языка.
“emotion”: [..] – данный параметр определяет имеют ли голоса эмоциональный окрас в запрошенном сервисе, в случае отсутствия, пустой.
Пример кода на Python для получения списка голосов в colab.research.google.com
Отправка текста на синтез
После того как параметры интересующего голоса получены, можно выполнить отправку текста на сервер синтеза.
Параметры:
‘lang’=> ‘Язык голоса в формате ISO.’
‘speaker’=> ‘Уникальный идентификатор голоса.’
’emotion’=> ‘Эмоциональная окраска голоса, в случае отсутствия, пусто.’
‘text’=> ‘Текст который требуется озвучить’
‘rate’=> ‘Скорость чтения текста’
‘pitch’=> ‘Тон голоса’
‘type’=> ‘Выходной формат файла’
‘pause’=> ‘Длина паузы 0-5, “0” – без паузы. “1” – 0.1 сек. “2” – 0.2 сек. итд.’
‘Authorization: Bearer <API-KEY>’
Пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
$curl = curl_init(); $json = json_encode(array('data' => array(array( 'lang' =>'ru-RU', // Язык голоса 'speaker'=> '1011', // Уникальный идентификатор 'emotion' =>'neutral', // Эмоции голоса 'text' => 'Привет мир', // Текст 'rate' => '1.0', // Скорость 'pitch' => '1.0', // Тон голоса 'type' => 'mp3', // Формат файла на выходе 'pause' => '0' // Длина паузы. )))); echo '<br/>'.$json.'</br>'; curl_setopt_array($curl, array( CURLOPT_URL => 'https://apihost.ru/api/v1/synthesize', CURLOPT_RETURNTRANSFER => 1, CURLOPT_POSTFIELDS => $json, CURLOPT_HTTPHEADER => array( 'Authorization: Bearer <API-KEY>', 'Content-Type: application/json', ), )); $response = curl_exec($curl); curl_close($curl); echo $response; |
Результат:
Результатом успешного выполнения запроса получаем json формата:
1 |
{"status":205,"process":"s7uYvkRvK1","hold":5686.17} |
Расшифровка полученного ответа в примере выше:
“status”:205 – Данный статус означает, что текст начал синтезироваться.
“process”:”s7uYvkRvK1″ – Уникальный идентификатор для запроса на проверку готовности файла.
“hold”:5686.17 – Остаток баланса.
Проверка готовности файла
Текст, отправленный на сервер, синтезируется от 5 секунд и более в зависимости от длины, загруженности сервера, и выбранной нейросети.
Для получения ссылки на готовый файла нужно периодически проверять задание на готовность.
Параметры:
‘process’=> ‘Уникальный идентификатор полученный при отправке запроса на синтез’
‘Authorization: Bearer <API-KEY>’
Пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
$curl = curl_init(); $json = json_encode(array('process' => 'lczyJPsWjc')); curl_setopt_array($curl, array( CURLOPT_URL => 'https://apihost.ru/api/v1/process', CURLOPT_RETURNTRANSFER => 1, CURLOPT_POSTFIELDS => $json, CURLOPT_HTTPHEADER => array( 'Authorization: Bearer 2mCqdkJhlabpq0lZs9ITTh4qfkuIjrqV', 'Content-Type: application/json', ), )); $response = curl_exec($curl); curl_close($curl); echo $response; |
Результат:
Результатом успешного выполнения запроса будет ссылка для скачивания озвученного текста.
1 |
{"status":200,"message":"https:\/\/apihost.ru\/storage\/tmp\/6125d3f2f3755467481224.mp3"} |
Расшифровка полученного ответа в примере выше:
“status”:200 – Данный статус означает, что текст в речь успешно преобразован.
“message”:”https:\/\/apihost.ru\/storage\/tmp\/6125d3f2f3755467481224.mp3″ – Ссылка на готовый файл.
Если получен status 205 – файл не готов, пожалуйста, проверьте файл на готовность через 5 секунд.
1 |
{"status":205} |
Использование Text To Speech API позволяет озвучивать текст длиной до 1 000 000 символов. Озвучка происходит в потоковом режиме и может занимать от 5 секунд до нескольких минут в зависимости от длинны текста.
Пример кода на Python для отправки текста и проверки запроса в colab.research.google.com
Готовый пример использования API на PHP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
<?php header('Content-type: application/json'); ///////Получение списка голосов/////// $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'https://apihost.ru/api/v1/speaker', CURLOPT_RETURNTRANSFER => 1, CURLOPT_POSTFIELDS => json_encode(array('server'=> 1)), CURLOPT_HTTPHEADER => array( 'Authorization: Bearer 1mCqdkJhlabpq0lZs2ITTh4qfkuIjrqV', 'Content-Type: application/json', ), )); $response = curl_exec($curl); curl_close($curl); echo $response; ///////Отправка на сервер синтеза/////// $curl = curl_init(); $json = json_encode(array('data' => array(array( 'lang' =>'ru-RU', // язык голососа 'speaker'=> '1011', // Уникальный индефикатор 'emotion' =>'neutral', // эмоции голоса 'text' => 'Привет мир', // Текст 'rate' => '1.0', // Скорость 'pitch' => '1.0', // Тон голоса 'type' => 'mp3', // Формат файла на выходе 'pause' => '0' // длина паузы. )))); echo '<br/>'.$json.'</br>'; curl_setopt_array($curl, array( CURLOPT_URL => 'https://apihost.ru/api/v1/synthesize', CURLOPT_RETURNTRANSFER => 1, CURLOPT_POSTFIELDS => $json, CURLOPT_HTTPHEADER => array( 'Authorization: Bearer 1mCqdkJhlabpq0lZs2ITTh4qfkuIjrqV', 'Content-Type: application/json', ), )); $response = curl_exec($curl); curl_close($curl); echo $response; ///////Получение ссылки на скачивание/////// $curl = curl_init(); $json = json_encode(array('process' => 'lczyJPsWjc')); curl_setopt_array($curl, array( CURLOPT_URL => 'https://apihost.ru/api/v1/process', CURLOPT_RETURNTRANSFER => 1, CURLOPT_POSTFIELDS => $json, CURLOPT_HTTPHEADER => array( 'Authorization: Bearer 1mCqdkJhlabpq0lZs2ITTh4qfkuIjrqV', 'Content-Type: application/json', ), )); $response = curl_exec($curl); curl_close($curl); echo $response; |