TTS. Руководство пользователя: различия между версиями
Материал из Флора AI
Нет описания правки Метка: визуальный редактор отключён |
|||
| (не показано 27 промежуточных версий 4 участников) | |||
| Строка 1: | Строка 1: | ||
===== '''Общее описание''' ===== | ===== '''Общее описание''' ===== | ||
Сервис предназначен для преобразования текста в речь. Входными данными для сервиса является текст, результатом работы будет | Сервис предназначен для преобразования текста в речь. Входными данными для сервиса является текст, результатом работы будет аудиофайл. | ||
====='''Термины и определения'''===== | ====='''Термины и определения'''===== | ||
Text | Text-to-speech server (TTS) – сервис синтеза речи. | ||
Модель (голос) | Модель (голос) – модель нейронной сети, отвечающая за синтез спектрограммы из текста. От модели зависит, каким голосом будет синтезирован текст. | ||
Вокодер | Вокодер – модель нейронной сети, отвечающая за синтез аудиоданных из спектрограммы. | ||
Swagger UI – интерактивная веб-консоль с кратким описанием методов API и возможностью выполнять запросы к сервису TTS в реальном времени | |||
Swagger UI – интерактивная веб-консоль с кратким описанием методов | |||
| Строка 23: | Строка 22: | ||
Ответ сервиса представляет собой JSON или текстовый документ в кодировке UTF-8, или двоичный файл. | Ответ сервиса представляет собой JSON или текстовый документ в кодировке UTF-8, или двоичный файл. | ||
Содержимое документа зависит от результата выполнения запроса. При наличии ошибки в качестве ответа вернется переменная error=1 и описание в переменной message. Для удобства проверки методов по ссылке http://АДРЕС:6186 будет отображен интерфейс | Содержимое документа зависит от результата выполнения запроса. При наличии ошибки в качестве ответа вернется переменная error=1 и описание в переменной message. Для удобства проверки методов по ссылке http://АДРЕС:6186 будет отображен интерфейс Swagger со всеми методами с возможностью их проверки. | ||
{| class="wikitable" style="width: 110%" | {| class="wikitable" style="width: 110%" | ||
|+''Описание методов API'' | |+''Описание методов API'' | ||
! style="color:blue;width: 15%" |'''GET/tts/''' | ! style="color:blue;width: 15%" |'''GET/tts/''' | ||
! colspan=" | ! colspan="2" style="width: 85%" |<small>Вывод списка моделей (голосов синтеза).</small> | ||
|- | |||
| colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small> | |||
| style="width: 50%" |<small><code>{ models: [model1,...,modelN] }</code></small> | |||
|- | |||
! style="color:blue;width: 15%" |'''GET/tts/dictionary/export''' | |||
! colspan="2" style="width: 85%" |<small>Выгрузка пользовательского словаря ударений.</small> | |||
|- | |- | ||
| colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small> | | colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small> | ||
| | | style="width: 50%" |<small>простой текст - строки с словом и его интерперетацией с ударением</small> | ||
|- | |- | ||
| | ! style="color:blue;width: 15%" |'''GET/tts/dictionary/get''' | ||
| | ! colspan="2" style="width: 85%" |<small>Выгрузка пользовательского словаря ударений в виде json.</small> | ||
|- | |- | ||
| | | colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small> | ||
| | | style="width: 50%" |<small><code>[</code></small> <small><code>[ "слово", "замена слова с удар+ением"],</code></small> | ||
| | |||
<small><code>[ "слово2", "замена слова2 с удар+ением"],</code></small> | |||
<small><code>...</code></small> | |||
<small><code>]</code></small> | |||
|- | |- | ||
|/tts/ | ! style="color:green;width: 15%" |'''POST/tts/dictionary/import''' | ||
! colspan="2" style="width: 85%" |<small>Загрузка пользовательского словаря ударений. Текущий словарь будет переписан.</small> | |||
|< | |||
|- | |- | ||
| | | colspan="2" style="width: 50%" | | ||
| | * <small>'''csv''' — файл строк со словом и его интерпретацией с ударением.</small> | ||
| style="width: 50%" |<small><code>{</code></small> | |||
<small><code> "error": 0,</code></small> | |||
| | |||
|/ | |||
<small><code> "message": "сообщение о статусе результата"</code></small> | |||
< | <small><code>}</code></small> | ||
|- | |- | ||
|/tts/dictionary/ | ! style="color:green;width: 15%" |'''POST/tts/dictionary/put''' | ||
| | ! colspan="2" style="width: 85%" |<small>Загрузка пользовательского словаря ударений в виде json. Текущий словарь будет переписан.</small> | ||
|- | |||
| | | colspan="2" style="width: 50%" | | ||
* ''' | * <small>'''json''' — строка следующего вида:</small> | ||
<small><code>[</code></small> | |||
" | <small><code>[ "слово", "замена слова с удар+ением" ],</code></small> | ||
<small><code>[ "слово2", "замена слова2 с удар+ением" ],</code></small> | |||
<small><code>...</code></small> | |||
< | <small><code>]</code></small> | ||
]</code> | | style="width: 50%" |<small><code>{</code></small> | ||
|{ | |||
"error": 0, | <small><code> "error": 0,</code></small> | ||
"message": "сообщение о статусе результата" | <small><code> "message": "сообщение о статусе результата"</code></small> | ||
} | <small><code>}</code></small> | ||
|- | |||
! style="color:green;width: 15%" |'''POST/tts/normalize''' | |||
! colspan="2" style="width: 85%" |<small>Нормализация текста — перевод цифр в слова и расстановка ударений (ударения только в нормализованной части фразы), например «в понедельник 10.10.2025» -> «в понедельник дес+ятого октябр+я две т+ысячи дв+адцать п+ятого г+ода».</small> | |||
|- | |- | ||
| | | colspan="2" style="width: 50%" | | ||
* <small>'''text''' — фраза для нормализации.</small> | |||
| style="width: 50%" |<small><code>{</code></small> | |||
| | |||
* '''text''' | |||
|{ | |||
"error": 0, | <small><code> "error": 0,</code></small> | ||
"message": "success", | <small><code> "message": "success",</code></small> | ||
"text": "нормализованный текст" | <small><code> "text": "нормализованный текст"</code></small> | ||
} | <small><code>}</code></small> | ||
|- | |||
! style="color:green;width: 15%" |'''POST/tts/revoice/{revoicer}''' | |||
! colspan="2" style="width: 85%" |<small>Модификация или искажение голоса</small> | |||
|- | |||
| colspan="2" style="width: 50%" | | |||
* <small>'''wav''' — аудиофайл для обработки.</small> | |||
* <small>'''revoicer''' — модель модификации голоса.</small> | |||
| style="width: 50%" |<small>wav файл с модифицированным (искаженным) голосом.</small> | |||
|- | |||
! style="color:blue;width: 15%" |'''GET/tts/revoicers''' | |||
! colspan="2" style="width: 85%" |<small>Перечень моделей модификации или искажения голоса. Модели поставляются только в составе дистрибутива. Модель distortion — искажение голоса, делает голос неузнаваемым и речь неразборчивой.</small> | |||
|- | |||
| colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small> | |||
| style="width: 50%" |<small>[ "distortion" ]</small> | |||
|- | |||
! style="color:blue;width: 15%" |'''GET/tts/split''' | |||
! colspan="2" style="width: 85%" |<small>Разбивка текста на фразы. Текст из нескольких предложений разбивает на отдельные фразы. Фразы отдаёт списком.</small> | |||
|- | |- | ||
| | | colspan="2" style="width: 50%" | | ||
* <small>'''text''' - текст для обработки</small> | |||
| style="width: 50%" |<small>{ "error": 0,</small> | |||
/ | <small> "message": "success",</small> | ||
/tts/synthesize/{id} | <small> "phrases": [ "фраза 1", "фраза 2", .... "фраза N" ] }</small> | ||
|Синтез звукового файла из текста для фраз большого размера | |- | ||
| | ! style="color:green;width: 15%" |'''POST/tts/synthesize/{id}''' | ||
* '''ID''' | ! colspan="2" style="width: 85%" |<small>Синтез звукового файла из текста для фраз большого размера — тип запроса «POST» позволяет отправку больших текстов.</small><small><small>'''ВНИМАНИЕ''': аналогичный метод GET теперь отсутствует.</small> | ||
* '''text''' | |- | ||
| colspan="2" style="width: 50%" | | |||
* '''rate''' | * <small>'''ID''' — имя модели</small> | ||
* '''pitch''' | * <small>'''text''' — текст синтезируемой фразы</small> | ||
* '''volume''' - | * <small>'''rate''' — скорость речи</small> | ||
| | * <small>'''pitch''' — высота (тон)</small> | ||
* <small>'''volume''' — громкость</small> | |||
* <small>'''frequency''' — частота дискретизации (по умолчанию 22050 Гц)</small> | |||
* <small>'''format''' - формат файла результата (wav, opus, ogg, mp3)</small> | |||
* <small>'''link''' - если 1, то вернуть только ссылку на файл</small> | |||
| style="width: 50%" |<small>файл с синтезированой фразой</small> | |||
|- | |- | ||
| | ! style="color:blue;width: 15%" |'''GET/license/check''' | ||
! colspan="2" |<small>Проверка лицензии</small> | |||
| | |||
|- | |- | ||
|} | | colspan="2" |<small>Входные параметры отсутствуют</small> | ||
|<small>Пример '''неограниченной''' лицензии: | |||
</small><code><small>{</small></code> | |||
<code><small>"error": 0,</small></code> | |||
<code><small>"uuid": "362e51300b1029f9b45fb8d58b2a91bf",</small></code> | |||
<code><small>"remaining_licenses": "infinity",</small></code> | |||
<code><small>"threshold": 0</small></code> | |||
<code><small>}</small></code> | |||
<small>Пример '''ограниченной''' лицензии: | |||
</small><code><small>{</small></code> | |||
<code><small>"error": 0,</small></code> | |||
<code><small>"uuid": "362e51300b1029f9b45fb8d58b2a91bf",</small></code> | |||
<code><small>"remaining_licenses": 100,</small></code> | |||
<code><small>"threshold": 100</small></code> | |||
<code><small>}</small></code> | |||
Текущая версия от 11:10, 30 июля 2025
Общее описание
Сервис предназначен для преобразования текста в речь. Входными данными для сервиса является текст, результатом работы будет аудиофайл.
Термины и определения
Text-to-speech server (TTS) – сервис синтеза речи.
Модель (голос) – модель нейронной сети, отвечающая за синтез спектрограммы из текста. От модели зависит, каким голосом будет синтезирован текст.
Вокодер – модель нейронной сети, отвечающая за синтез аудиоданных из спектрограммы.
Swagger UI – интерактивная веб-консоль с кратким описанием методов API и возможностью выполнять запросы к сервису TTS в реальном времени
Описание методов API
Запросы осуществляются по протоколу HTTP 1.1 на адрес сервера с доступным сервисом TTS. По умолчанию используется порт 6186/tcp.
Авторизация запросов не требуется. HTTP-запросы должны содержать заголовок "accept: application/json"
Ответ сервиса представляет собой JSON или текстовый документ в кодировке UTF-8, или двоичный файл.
Содержимое документа зависит от результата выполнения запроса. При наличии ошибки в качестве ответа вернется переменная error=1 и описание в переменной message. Для удобства проверки методов по ссылке http://АДРЕС:6186 будет отображен интерфейс Swagger со всеми методами с возможностью их проверки.
| GET/tts/ | Вывод списка моделей (голосов синтеза). | |
|---|---|---|
| Входные параметры отсутствуют | { models: [model1,...,modelN] }
| |
| GET/tts/dictionary/export | Выгрузка пользовательского словаря ударений. | |
| Входные параметры отсутствуют | простой текст - строки с словом и его интерперетацией с ударением | |
| GET/tts/dictionary/get | Выгрузка пользовательского словаря ударений в виде json. | |
| Входные параметры отсутствуют | [ [ "слово", "замена слова с удар+ением"],
| |
| POST/tts/dictionary/import | Загрузка пользовательского словаря ударений. Текущий словарь будет переписан. | |
|
{
| |
| POST/tts/dictionary/put | Загрузка пользовательского словаря ударений в виде json. Текущий словарь будет переписан. | |
|
{
| |
| POST/tts/normalize | Нормализация текста — перевод цифр в слова и расстановка ударений (ударения только в нормализованной части фразы), например «в понедельник 10.10.2025» -> «в понедельник дес+ятого октябр+я две т+ысячи дв+адцать п+ятого г+ода». | |
|
{
| |
| POST/tts/revoice/{revoicer} | Модификация или искажение голоса | |
|
wav файл с модифицированным (искаженным) голосом. | |
| GET/tts/revoicers | Перечень моделей модификации или искажения голоса. Модели поставляются только в составе дистрибутива. Модель distortion — искажение голоса, делает голос неузнаваемым и речь неразборчивой. | |
| Входные параметры отсутствуют | [ "distortion" ] | |
| GET/tts/split | Разбивка текста на фразы. Текст из нескольких предложений разбивает на отдельные фразы. Фразы отдаёт списком. | |
|
{ "error": 0,
"message": "success", "phrases": [ "фраза 1", "фраза 2", .... "фраза N" ] } | |
| POST/tts/synthesize/{id} | Синтез звукового файла из текста для фраз большого размера — тип запроса «POST» позволяет отправку больших текстов.ВНИМАНИЕ: аналогичный метод GET теперь отсутствует. | |
|
файл с синтезированой фразой | |
| GET/license/check | Проверка лицензии | |
| Входные параметры отсутствуют | Пример неограниченной лицензии:
Пример ограниченной лицензии:
|
|