Действия

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

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

Строка 34: Строка 34:
|-
|-
! style="color:blue;width: 15%" |'''GET/tts/dictionary/export'''
! style="color:blue;width: 15%" |'''GET/tts/dictionary/export'''
! colspan="3" style="width: 85%" |<small>Вывод списка моделей.</small>
! colspan="3" style="width: 85%" |Выгрузка пользовательского словаря ударений
|-
|-
| 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>простой текст - строки с словом и его интерперетацией с ударением</small>
|-
|-
! style="color:blue;width: 15%" |'''GET/tts/dictionary/get'''
! style="color:blue;width: 15%" |'''GET/tts/dictionary/get'''
! colspan="3" style="width: 85%" |<small>Вывод списка моделей.</small>
! colspan="3" style="width: 85%" |Выгрузка пользовательского словаря ударений в виде json
|-
|-
| 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>[ [   "слово",   "замена слова с удар+ением"],</small>
 
<small>[   "слово2",   "замена слова2 с удар+ением"],</small>
 
<small>...</small>
 
<small>...]</small>
|-
|-
! style="color:blue;width: 15%" |'''POST/tts/dictionary/import'''
! style="color:blue;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%" |<small>Входные параметры отсутствуют</small>
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |<small>{ models: [model1,...,modelN] }</small>
* <small>'''csv file''' - файл строк со словом и его интерперетацией с ударением</small>
| colspan="2" style="width: 50%" |<small>{</small>
 
<small>  "error": 0,</small>
 
<small>  "message": "сообщение о статусе результата"</small>
 
<small>}</small>
|-
|-
! style="color:blue;width: 15%" |'''POST/tts/dictionary/put'''
! style="color:blue;width: 15%" |'''POST/tts/dictionary/put'''
! colspan="3" style="width: 85%" |<small>Вывод списка моделей.</small>
! colspan="3" style="width: 85%" |Загрузка пользовательского словаря ударений в виде json <small>Текущий словарь будет переписан</small>
|-
|-
| colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small>
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |<small>{ models: [model1,...,modelN] }</small>
* <small>'''json''' -строка json следующего вида:</small>
 
<small>[ [   "слово",   "замена слова с удар+ением" ],</small>
 
<small>[ "слово2",   "замена слова2 с удар+ением" ],</small>
 
<small>...</small>
 
<small>...]</small>
| colspan="2" style="width: 50%" |<small>{</small>
 
<small>  "error": 0,</small>
 
<small>  "message": "сообщение о статусе результата"</small>
 
<small>}</small>
|-
|-
! style="color:blue;width: 15%" |'''POST/tts/normalize'''
! style="color:blue;width: 15%" |'''POST/tts/normalize'''
! colspan="3" style="width: 85%" |<small>Вывод списка моделей.</small>
! colspan="3" style="width: 85%" |Нормализация текста - <small>перевод цифр в слова и расстановка ударений (ударения только в нормализованной части фразы) например "в понедельник 10.10.2025" -> "в понедельник дес+ятого октябр+я дв+е т+ысячи дв+адцать п+ятого г+ода"</small>
|-
|-
| colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small>
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |<small>{ models: [model1,...,modelN] }</small>
* <small>'''text''' - фраза для нормалимзации</small>
| style="width: 50%" |<small>{</small>
 
<small>  "error": 0,</small>
 
<small>  "message": "success",</small>
 
<small>  "text": "нормализованный текст"</small>
 
<small>}</small>
|
|-|-
|-|-
! style="color:blue;width: 15%" |'''POST/tts/normalize'''
! style="color:blue;width: 15%" |'''POST/tts/synthesize/{id}'''
! colspan="3" style="width: 85%" |<small>Вывод списка моделей.</small>
! colspan="3" style="width: 85%" |Синтез звукового файла <small>из текста для фраз большого размера - тип запроса "POST" позволяет отправку больших текстов</small>
|-
|-
| colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small>
| colspan="2" style="width: 50%" |
| colspan="2" style="width: 50%" |<small>{ models: [model1,...,modelN] }</small>
* <small>'''ID''' - имя модели</small>
 
* <small>'''text''' - текст синтезируемой фразы</small>
 
* <small>'''rate''' - скорость речи</small>
 
* <small>'''pitch''' - высота (тон)</small>
 
* <small>'''volume''' - громкость</small>
| style="width: 50%" |<small>wav файл с синтезированой фразой</small>
|
|-
|-
! style="color:blue;width: 15%" |'''GET/tts/synthesize/{id}'''
! colspan="3" style="width: 85%" |Синтез звукового файла <small>из текста небольшого размера - для совместимости с предыдущими версями</small>
|-
|-
! style="color:blue;width: 15%" |'''POST/tts/normalize'''
| colspan="2" style="width: 50%" |
! colspan="3" style="width: 85%" |<small>Вывод списка моделей.</small>
* <small>'''ID''' - имя модели</small>
|-
 
| colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small>
* <small>'''text''' - текст синтезируемой фразы</small>
| colspan="2" style="width: 50%" |<small>{ models: [model1,...,modelN] }</small>
 
|-
* <small>'''rate''' - скорость речи</small>
 
* <small>'''pitch''' - высота (тон)</small>
 
* <small>'''volume''' - громкость</small>
| style="width: 50%" |<small>wav файл с синтезированой фразой</small>
|
|}
|}



Версия от 18:14, 21 октября 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 файл с синтезированой фразой


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



]

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

  "error": 0,

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

}

/tts/dictionary/put POST загрузка пользовательского словаря ударений в виде json [
 [
   "слово",
   "замена слова с удар+ением"
 ],
 [
   "слово2",
   "замена слова2 с удар+ением"
 ],
 ...
 ...



]

{

  "error": 0,

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

}

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

  "error": 0,

  "message": "success",

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

}

POST

/tts/synthesize/{id}

POST

/tts/synthesize/{id}

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


Методы POST заменяют пользовательский словарь, а не дополняют его