Действия

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

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

Нет описания правки
Нет описания правки
 
(не показаны 33 промежуточные версии 4 участников)
Строка 1: Строка 1:
===== '''Общее описание''' =====
===== '''Общее описание''' =====
Сервис предназначен для преобразования текста в речь. Входными данными для сервиса является текст, результатом работы будет аудио файл в формате *.wav.
Сервис предназначен для преобразования текста в речь. Входными данными для сервиса является текст, результатом работы будет аудиофайл.




====='''Термины и определения'''=====
====='''Термины и определения'''=====
Text To Speech Server (TTS)– сервис синтеза речи.
Text-to-speech server (TTS) – сервис синтеза речи.


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


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


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




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


Ответ сервиса представляет собой JSON-документ в кодировке UTF-8 или двоичный файл. Содержимое документа зависит от результата выполнения запроса. При наличии ошибки в качестве ответа вернется переменная error=1 и описание в переменной message. Для удобства проверки методов по ссылке http://АДРЕС:6186 будет отображен интерфейс swagger со всеми методами с возможностью их проверки.
Ответ сервиса представляет собой JSON или текстовый документ в кодировке UTF-8, или двоичный файл.  
 
Содержимое документа зависит от результата выполнения запроса. При наличии ошибки в качестве ответа вернется переменная error=1 и описание в переменной message. Для удобства проверки методов по ссылке http://АДРЕС:6186 будет отображен интерфейс Swagger со всеми методами с возможностью их проверки.
 
{| class="wikitable" style="width: 110%"
|+''Описание методов API''
! style="color:blue;width: 15%" |'''GET/tts/'''
! 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>
| 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>
|-
! 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>
|-
! 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>
| style="width: 50%" |<small><code>{</code></small>
 
<small><code>  "error": 0,</code></small>


{| class="wikitable"
<small><code>  "message": "сообщение о статусе результата"</code></small>
|+
 
!Метод
<small><code>}</code></small>
!Тип
!Описание
!Входные параметры
!Ответ
|-
|-
|/tts/
! style="color:green;width: 15%" |'''POST/tts/normalize'''
|GET
! colspan="2" style="width: 85%" |<small>Нормализация текста — перевод цифр в слова и расстановка ударений (ударения только в нормализованной части фразы), например «в понедельник 10.10.2025» -> «в понедельник дес+ятого октябр+я две т+ысячи дв+адцать п+ятого г+ода».</small>
|Вывод списка моделей
|-
| -
| colspan="2" style="width: 50%" |
|<code>{ models: [model1,...,modelN] }</code>
* <small>'''text''' — фраза для нормализации.</small>
|}
| style="width: 50%" |<small><code>{</code></small>
 
<small><code>  "error": 0,</code></small>
 
<small><code>  "message": "success",</code></small>
 
<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>
 
<small>  "phrases": [ "фраза 1", "фраза 2", ....  "фраза N"  ] }</small>
|-
! style="color:green;width: 15%" |'''POST/tts/synthesize/{id}'''
! colspan="2" style="width: 85%" |<small>Синтез звукового файла из текста для фраз большого размера — тип запроса «POST» позволяет отправку больших текстов.</small><small><small>'''ВНИМАНИЕ''': аналогичный метод GET теперь отсутствует.</small>
|-
| colspan="2" style="width: 50%" |
* <small>'''ID''' — имя модели</small>
* <small>'''text''' — текст синтезируемой фразы</small>
* <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 со всеми методами с возможностью их проверки.

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

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

...

]

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

  "error": 0,

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

}

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

[

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

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

...

]

{

  "error": 0,

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

}

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

  "error": 0,

  "message": "success",

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

}

POST/tts/revoice/{revoicer} Модификация или искажение голоса
  • wav — аудиофайл для обработки.
  • revoicer — модель модификации голоса.
wav файл с модифицированным (искаженным) голосом.
GET/tts/revoicers Перечень моделей модификации или искажения голоса. Модели поставляются только в составе дистрибутива. Модель distortion — искажение голоса, делает голос неузнаваемым и речь неразборчивой.
Входные параметры отсутствуют [  "distortion" ]
GET/tts/split Разбивка текста на фразы. Текст из нескольких предложений разбивает на отдельные фразы. Фразы отдаёт списком.
  • text - текст для обработки
{  "error": 0,

  "message": "success",

  "phrases": [ "фраза 1", "фраза 2", ....  "фраза N" ] }

POST/tts/synthesize/{id} Синтез звукового файла из текста для фраз большого размера — тип запроса «POST» позволяет отправку больших текстов.ВНИМАНИЕ: аналогичный метод GET теперь отсутствует.
  • ID — имя модели
  • text — текст синтезируемой фразы
  • rate — скорость речи
  • pitch — высота (тон)
  • volume — громкость
  • frequency — частота дискретизации (по умолчанию 22050 Гц)
  • format - формат файла результата (wav, opus, ogg, mp3)
  • link - если 1, то вернуть только ссылку на файл
файл с синтезированой фразой
GET/license/check Проверка лицензии
Входные параметры отсутствуют Пример неограниченной лицензии:

{

   "error": 0,
   "uuid": "362e51300b1029f9b45fb8d58b2a91bf",    
   "remaining_licenses": "infinity",
   "threshold": 0

}

Пример ограниченной лицензии:

{

   "error": 0,
   "uuid": "362e51300b1029f9b45fb8d58b2a91bf",    
   "remaining_licenses": 100,
   "threshold": 100

}