Aimyvoice TTS
Aimyvoice — модель синтеза речи от компании Just AI. Модель отличается:
- высокой скоростью работы
- потоковым режимом для генерации длинных текстов
- поддержкой SSML для тонкой настройки произношения
- возможностью создания производных голосов с предустановленным словарём произношений
Aimyvoice использует Caila как платформу для хостинга, и модель доступна:
- В виде отдельного продукта Сайт Aimyvoice
- Также в виде сервиса в Caila Модель Aimyvoice
Тестирование голоса
Голоса можно протестировать на странице сервиса.
Голос можно выбрать из списка или задать параметры синтеза в формате JSON.
Подключение по API
Обращаться к сервису синтеза речи можно стандартным для всех Caila-сервисов образом.
Кроме того, для TTS-сервисов есть ещё два специализированных адаптера.
Caila API
HTTP TTS
POST https://app.caila.io/api/mlpgate/account/just-ai/model/aimyvoice-facade/tts
— в этом методе все параметры: название голоса и параметры кодирования должны передаваться в теле запроса. В ответ выдаётсяapplication/octet-stream
в LINEAR16_PCM кодировке (а не JSON).
Пример запроса:
POST https://app.caila.io/api/mlpgate/account/just-ai/model/aimyvoice-facade/tts
{
"text": "Привет",
"voice": "Tatiana",
"outputAudioSpec": {
"audioEncoding": "LINEAR16_PCM",
"sampleRateHertz": 8000,
"chunkSizeKb": 1
}
}
GRPC processSynthesis
Метод для выполнения синтеза по GRPC. На вход метод получает те же данные, что и предыдущие два метода. В ответ возвращается поток чанков, каждый из которых содержит небольшой фрагмент аудио в PCM формате.
rpc processSynthesis(ClientTtsRequestProto) returns (stream ClientTtsResponseProto)
О том, как подключиться к Caila по GRPC, читайте здесь
Настройка произношения
Aimyvoice поддерживает богатый набор разметки для управления звучанием.
Попробуйте синтезировать такой текст:
<break time="0.8s" breath="1" breath_power="0.8" breath_dura="1.2"/>
Мой дядя <break time="1s"/> самых честных правил. <break time="250ms"/> Когда не в шутку занемог.
<break time="0.5s"/> Он уважать себя заставил. И лучше выдумать не мог.
Подробнее о разметке читайте в оригинальной документации по Aimyvoice
Создание производных голосов
В Caila вы можете создать производный голос путём настройки словаря произношений и некоторых других параметров голоса. Давайте рассмотрим, как это можно сделать.
Создайте датасет на сайте https://caila.io/workspace/dataset с типом json/tts-dictionary.
Наполните датасет правилами.
Обучите сервис на сайте https://caila.io/catalog/just-ai/aimyvoice-custom с вашими правилами.
Полученный производный сервис можно протестировать в Моём пространстве.
Найти сервис вы сможете на вкладке Сервисы/Обученные.