Действия

TTS. Руководство пользователя: различия между версиями

Материал из Флора AI

Нет описания правки
Строка 31: Строка 31:
|-
|-
| colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small>
| colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small>
| colspan="2" style="width: 50%" |<small>{ models: [model1,...,modelN] }</small>
| colspan="2" style="width: 50%" |<small><code>{ models: [model1,...,modelN] }</code></small>
|-
|-
! style="color:blue;width: 15%" |'''GET/tts/dictionary/export'''
! style="color:blue;width: 15%" |'''GET/tts/dictionary/export'''
! colspan="3" style="width: 85%" |Выгрузка пользовательского словаря ударений
! colspan="3" style="width: 85%" |<small>Выгрузка пользовательского словаря ударений.</small>
|-
|-
| colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small>
| colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small>
Строка 40: Строка 40:
|-
|-
! style="color:blue;width: 15%" |'''GET/tts/dictionary/get'''
! style="color:blue;width: 15%" |'''GET/tts/dictionary/get'''
! colspan="3" style="width: 85%" |Выгрузка пользовательского словаря ударений в виде json
! colspan="3" style="width: 85%" |<small>Выгрузка пользовательского словаря ударений в виде json.</small>
|-
|-
| colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small>
| colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small>
| colspan="2" style="width: 50%" |<small>[ [   "слово",   "замена слова с удар+ением"],</small>
| colspan="2" style="width: 50%" |<small><code>[</code></small>  <small><code>[   "слово",   "замена слова с удар+ением"],</code></small>


<small>[   "слово2",   "замена слова2 с удар+ением"],</small>
<small><code>[   "слово2",   "замена слова2 с удар+ением"],</code></small>


<small>...</small>
<small><code>...</code></small>


<small>...]</small>
<small><code>]</code></small>
|-
|-
! style="color:green;width: 15%" |'''POST/tts/dictionary/import'''
! style="color:green;width: 15%" |'''POST/tts/dictionary/import'''
! colspan="3" style="width: 85%" |Загрузка пользовательского словаря ударений <small>Текущий словарь будет переписан</small>
! colspan="3" style="width: 85%" |<small>Загрузка пользовательского словаря ударений. Текущий словарь будет переписан.</small>
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>'''csv file''' - файл строк со словом и его интерперетацией с ударением</small>
* <small>'''csv file''' - файл строк со словом и его интерперетацией с ударением</small>
| colspan="2" style="width: 50%" |<small>{</small>
| colspan="2" style="width: 50%" |<small><code>{</code></small>


<small>  "error": 0,</small>
<small><code>  "error": 0,</code></small>


<small>  "message": "сообщение о статусе результата"</small>
<small><code>  "message": "сообщение о статусе результата"</code></small>


<small>}</small>
<small><code>}</code></small>
|-
|-
! style="color:green;width: 15%" |'''POST/tts/dictionary/put'''
! style="color:green;width: 15%" |'''POST/tts/dictionary/put'''
! colspan="3" style="width: 85%" |Загрузка пользовательского словаря ударений в виде json <small>Текущий словарь будет переписан</small>
! colspan="3" style="width: 85%" |<small>Загрузка пользовательского словаря ударений в виде json. Текущий словарь будет переписан.</small>
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>'''json''' -строка json следующего вида:</small>
* <small>'''json''' -строка json следующего вида:</small>


<small>[ [   "слово",   "замена слова с удар+ением" ],</small>
<small><code>[</code></small>


<small>[ "слово2",   "замена слова2 с удар+ением" ],</small>
<small><code>[   "слово",   "замена слова с удар+ением" ],</code></small>


<small>...</small>
<small><code>[ "слово2",   "замена слова2 с удар+ением" ],</code></small>


<small>...]</small>
<small><code>...</code></small>
| colspan="2" style="width: 50%" |<small>{</small>


<small>  "error": 0,</small>
<small><code>]</code></small>
| colspan="2" style="width: 50%" |<small><code>{</code></small>


<small>  "message": "сообщение о статусе результата"</small>
<small><code>  "error": 0,</code></small>


<small>}</small>
<small><code>  "message": "сообщение о статусе результата"</code></small>
 
<small><code>}</code></small>
|-
|-
! style="color:green;width: 15%" |'''POST/tts/normalize'''
! style="color:green;width: 15%" |'''POST/tts/normalize'''
! colspan="3" style="width: 85%" |Нормализация текста - <small>перевод цифр в слова и расстановка ударений (ударения только в нормализованной части фразы) например "в понедельник 10.10.2025" -> "в понедельник дес+ятого октябр+я дв+е т+ысячи дв+адцать п+ятого г+ода"</small>
! colspan="3" style="width: 85%" |<small>Нормализация текста - перевод цифр в слова и расстановка ударений (ударения только в нормализованной части фразы), например "в понедельник 10.10.2025" -> "в понедельник дес+ятого октябр+я дв+е т+ысячи дв+адцать п+ятого г+ода".</small>
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
* <small>'''text''' - фраза для нормалимзации</small>
* <small>'''text''' - фраза для нормалимзации</small>
| style="width: 50%" |<small>{</small>
| style="width: 50%" |<small><code>{</code></small>


<small>  "error": 0,</small>
<small><code>  "error": 0,</code></small>


<small>  "message": "success",</small>
<small><code>  "message": "success",</code></small>


<small>  "text": "нормализованный текст"</small>
<small><code>  "text": "нормализованный текст"</code></small>


<small>}</small>
<small><code>}</code></small>
|
|
|-|-
|-|-
! style="color:green;width: 15%" |'''POST/tts/synthesize/{id}'''
! style="color:green;width: 15%" |'''POST/tts/synthesize/{id}'''
! colspan="3" style="width: 85%" |Синтез звукового файла <small>из текста для фраз большого размера - тип запроса "POST" позволяет отправку больших текстов</small>
! colspan="3" style="width: 85%" |<small>Синтез звукового файла из текста для фраз большого размера - тип запроса "POST" позволяет отправку больших текстов.</small>
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |
Строка 118: Строка 120:
|-
|-
! style="color:blue;width: 15%" |'''GET/tts/synthesize/{id}'''
! style="color:blue;width: 15%" |'''GET/tts/synthesize/{id}'''
! colspan="3" style="width: 85%" |Синтез звукового файла <small>из текста небольшого размера - для совместимости с предыдущими версями</small>
! colspan="3" style="width: 85%" |<small>Синтез звукового файла из текста небольшого размера - для совместимости с предыдущими версиями.</small>
|-
|-
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |

Версия от 13:43, 22 октября 2024

Общее описание

Сервис предназначен для преобразования текста в речь. Входными данными для сервиса является текст, результатом работы будет аудио файл в формате *.wav.


Термины и определения

Text To Speech Server (TTS)– сервис синтеза речи.

Модель (голос) - модель нейронной сети, отвечающую за синтез спектрограммы из текста. От модели зависит каким голосом будет синтезирован текст.

Вокодер - модель нейронной сети, отвечающую за синтез аудиоданных из спектрограммы


Swagger UI – интерактивная веб-консоль с кратким описанием методов АPI и возможностью выполнять запросы к сервису TTS в реальном времени



Описание методов API

Запросы осуществляются по протоколу HTTP 1.1 на адрес сервера с доступным сервисом TTS. По умолчанию используется порт 6186/tcp.

Авторизация запросов не требуется. HTTP-запросы должны содержать заголовок "accept: application/json"

Ответ сервиса представляет собой JSON или текстовый документ в кодировке UTF-8, или двоичный файл.

Содержимое документа зависит от результата выполнения запроса. При наличии ошибки в качестве ответа вернется переменная error=1 и описание в переменной message. Для удобства проверки методов по ссылке http://АДРЕС:6186 будет отображен интерфейс swagger со всеми методами с возможностью их проверки.

Описание методов API
GET/tts/ Вывод списка моделей.
Входные параметры отсутствуют { models: [model1,...,modelN] }
GET/tts/dictionary/export Выгрузка пользовательского словаря ударений.
Входные параметры отсутствуют простой текст - строки с словом и его интерперетацией с ударением
GET/tts/dictionary/get Выгрузка пользовательского словаря ударений в виде json.
Входные параметры отсутствуют [ [   "слово",   "замена слова с удар+ением"],

[   "слово2",   "замена слова2 с удар+ением"],

...

]

POST/tts/dictionary/import Загрузка пользовательского словаря ударений. Текущий словарь будет переписан.
  • csv file - файл строк со словом и его интерперетацией с ударением
{

  "error": 0,

  "message": "сообщение о статусе результата"

}

POST/tts/dictionary/put Загрузка пользовательского словаря ударений в виде json. Текущий словарь будет переписан.
  • json -строка json следующего вида:

[

[   "слово",   "замена слова с удар+ением" ],

[ "слово2",   "замена слова2 с удар+ением" ],

...

]

{

  "error": 0,

  "message": "сообщение о статусе результата"

}

POST/tts/normalize Нормализация текста - перевод цифр в слова и расстановка ударений (ударения только в нормализованной части фразы), например "в понедельник 10.10.2025" -> "в понедельник дес+ятого октябр+я дв+е т+ысячи дв+адцать п+ятого г+ода".
  • text - фраза для нормалимзации
{

  "error": 0,

  "message": "success",

  "text": "нормализованный текст"

}

POST/tts/synthesize/{id} Синтез звукового файла из текста для фраз большого размера - тип запроса "POST" позволяет отправку больших текстов.
  • ID - имя модели
  • text - текст синтезируемой фразы
  • rate - скорость речи
  • pitch - высота (тон)
  • volume - громкость
wav файл с синтезированой фразой
GET/tts/synthesize/{id} Синтез звукового файла из текста небольшого размера - для совместимости с предыдущими версиями.
  • ID - имя модели
  • text - текст синтезируемой фразы
  • rate - скорость речи
  • pitch - высота (тон)
  • volume - громкость
wav файл с синтезированой фразой