Синтез по API
Aimyvoice предоставляет HTTP API для синтеза речи голосом из каталога. Так вы можете использовать голоса в сторонних приложениях — например, интегрировать их в голосовых ассистентов.
Запрос
Адрес
POST https://aimyvoice.com/api/v1/synthesize
Заголовки
-
Content-Type
—application/x-www-form-urlencoded
. -
api-key
— токен для доступа к голосу.подсказкаЧтобы получить токен, выберите нужный голос в каталоге и нажмите Подключить по API.
Тело
В теле запроса передайте параметр text
— текст на русском языке, который вы хотите озвучить.
подсказка
В тексте вы можете использовать разметку синтеза речи, чтобы управлять его звучанием:
задавать паузы, ударения, тон и другие особенности произношения.
Требования к тексту:
- Текст должен быть на русском языке. Отдельные слова и словосочетания могут быть на латинице.
- Ограничение на длину: от 1 до 250 символов без учета разметки.
- Допустимые спецсимволы:
€ £ ₽ $ % № # & - — – + * = . , ! ? ; : " ` ' ° \ / ( ) < > « » ± ^
.
Примеры
предупреждение
При отправке запроса текст должен быть закодирован как URL (через percent-encoding).
- Python (requests)
- curl
import requests
# Формирование запроса
url = "https://aimyvoice.com//api/v1/synthesize"
headers = {
"Content-Type": "application/x-www-form-urlencoded",
"api-key": "<api-key>"
}
payload = {
"text": requests.utils.quote('Мой дядя <break time="1s"/> самых честных правил')
}
# Отправка запроса
response = requests.post(url, headers=headers, data=payload)
# Сохранение ответа в аудиофайл
if response.status_code == 200:
with open("result.wav", "wb") as result:
result.write(response.content)
curl --request POST 'https://aimyvoice.com//api/v1/synthesize' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'api-key: <api-key>' \
--data-urlencode 'text=Мой дядя <break time="1s"/> самых честных правил'
Ответ
Если синтез прошел успешно, в ответ придет строка с бинарными данными.
Сохраните содержимое строки в файл с расширением .wav
.
HTTP/1.1 200 OK
Server: nginx/1.16.1
Date: Fri, 19 Nov 2021 12:35:54 GMT
Content-Type: audio/wav
...
(Строка с бинарными данными)