Перейти к основному содержимому

Aimyvoice TTS

Aimyvoice — модель синтеза речи от компании Just AI. Модель отличается:

  • высокой скоростью работы
  • потоковым режимом для генерации длинных текстов
  • поддержкой SSML для тонкой настройки произношения
  • возможностью создания производных голосов с предустановленным словарём произношений

Aimyvoice использует Caila как платформу для хостинга, и модель доступна:

Тестирование голоса

Голоса можно протестировать на странице сервиса.

Голос можно выбрать из списка или задать параметры синтеза в формате 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 с вашими правилами.

Полученный производный сервис можно протестировать в Моём пространстве.

Найти сервис вы сможете на вкладке Сервисы/Обученные.