Skip to content

Latest commit

 

History

History
216 lines (178 loc) · 11.3 KB

TTS.md

File metadata and controls

216 lines (178 loc) · 11.3 KB

Движки Text-To-Speech (TTS)

Конфиг прописывается после запуска команды mycroft-config edit user.

Подробные инструкции по настройке и ссылки на сайты можно найти в документации Mycroft по TTS.

Сравнение локальных движков

Название Русский Лицензия Пример
eSpeak 💔 плохо ✅ GPL v3
eSpeak NG ? ✅ GPL v3
Coqui TTS ? ✅ MPL v2
FA TTS ? ✅ LGPL v3
MaryTTS нет? ✅ LGPL v3
Mimic 1 ? ✅ BSD-like
Mimic 2 ? ✅ Apache v2
Mozilla TTS ? ✅ MPL v2
RHVoice ✅ да ✅ LGPL v2.1 SoundCloud
Silero ✅ да ✅ AGPL v3 SoundCloud
SOVA ✅ да ✅ Apache v2
SpdSay ✅ да ✅ GPL v2

Сравнение облачных сервисов

Название Русский Стоимость Пример
Amazon Polly ✅ да 💰 платно: 0,4-1,6 ¢ (0,29—1,15 ₽) за 1000 символов
Google TTS ✅ да ✅ бесплатно
IBM Watson ❌ нет 💰 платно: 2,14 ¢ (1,53 ₽) за 1000 символов
Microsoft Azure ? ?
Microsoft Bing ? ?
Responsive Voice ✅ да ?
VK Cloud ✅ да 💰 платно: 1 ₽ за 1000 символов SoundCloud
Yandex Cloud ✅ да 💰 платно: 0,18—1,2 ₽ за 1000 символов SoundCloud

Что выбрать?

  • Самая быстрая настройка: Google TTS, голос Гугл-переводчика.
  • Самый качественный голос в облаке: Yandex Cloud с голосами Филипп (filipp) или Алёна (alena).
  • Самая лучшая локальная генерация: RHVoice

eSpeak

Поддержка русского формально заявлена, но на практике очень сложно понимать речь. Даже замена файла словаря (ru_dict) на улучшенную версию практически не улучгает ситуацию.

RHVoice

Плюсы:

  • Локальная работа
  • Быстрый ответ
  • Нет проблем с установкой, независимо от платформы
  • Неплохое качество голосов

Минусы:

  • Большой репозиторий с кодом и долгая установка из исходников
  • Озвучка числительных только как количественных, но не как порядковых

Установка:

sudo apt-get install scons libspeechd-dev
git clone --recurse-submodules https://github.com/RHVoice/RHVoice.git ~/RHVoice
cd ~/RHVoice
scons
sudo scons install
sudo ldconfig
mycroft-pip install mycroft-plugin-rhvoice

Базовый конфиг будет выглядеть так, подробный см. в репозитории плагина:

{
  "lang": "ru-ru",
  "tts": {
    "module": "rhvoice"
  }
}

Модели для русского языка:

Актуальный список см. на сайте RHVoice.

Silero

Модели на Pytorch для генерации голоса.

Проблемы:

  • Нужен Pytorch 1.10+, его сложно собрать под многие платформы (для RPi 4 есть инструкция).
  • Долгая генерация, на RPi 4 выходит 10-15 секунд для одной фразы для v2, возможно в v3 всё значительно лучше.
  • Не умеет читать знак минуса - и числа, нужна дополнительная конвертация в текст (пример).

Установка:

  • идёт работа над плагином

Конфиг будет выглядеть примерно вот так:

{
  "lang": "ru-ru",
  "tts": {
    "module": "silero",
    "silero": {
      "lang": "ru",
      "model": "v3_1_ru",
      "voice": "eugene",
      "rate": 8000
    }
  }
}

Голоса для русского языка:

Актуальный список см. в репозитории Silero.

SpdSay

Высокоуровневая обёртка для генерации голоса. Для линукса использует eSpeak NG.

Проблемы:

  • Не может сказать две фразы подряд (например, текущую погоду, а потом прогноз), проглатывает первую и озвучивает только вторую.
  • Не умеет читать знак минуса -, считая его служебным и заглатывая после него ещё и число.

Установка:

sudo apt-get install speech-dispatcher

Конфиг будет выглядеть примерно вот так:

{
  "lang": "ru-ru",
  "stt": {
    "module": "spdsay",
    "spdsay": {
      "lang": "ru",
      "voice": "child_male"
    }
  }
}

Возможные голоса: male1, male2, male3, female1, female2, female3, child_male, child_female. К сожалению, другие параметры, доступные в самом SpdSay (rate, pitch, pitch-range), через настройки задать невозможно.

VK Cloud

Неплохой и достаточно быстрый в настройке способ. Требует постоянного подключения к интернету, а также наличия аккаунта в облаке VK. При регистрации даётся 100 рублей (можно получить до 3000 на два месяца для тестирования), дальше требует оплаты.

Плюсы:

  • Можно задать скорость речи (0,75-1,75), рекомендую указывать что-то в диапазоне 1-1,2 (пример для 1.15)

Проблемы:

  • Только один голос (вроде бы тот же, что у Маруси)
  • Достаточно большие задержки при генерации

Установка: mycroft-pip install mycroft-plugin-vk-cloud

Конфиг будет выглядеть примерно вот так:

{
  "lang": "ru-ru",
  "tts": {
    "module": "vk",
    "yandex": {
      "service_token": "YOUR_SERVICE_TOKEN",
      "tempo": 1.1
    }
  }
}

См. также VK Cloud STT.

Yandex SpeechKit

Качественный и достаточно быстрый в настройке способ. Требует постоянного подключения к интернету, а также наличия аккаунта в облаке Яндекса. Первый месяц бесплатно, после этого требует оплаты.

Есть премиальные и обычные голоса. Премиальные намного качественнее, но и дороже примерно в 10 раз. Их два:

  • Филипп (filipp) — мужской голос (пример)
  • Алёна (alena) — женский голос (пример)

Обычных голосов больше, но многие из них звучат не очень приятно. Субъективно лучшие варианты:

  • Ермил (ermil) — мужской голос (пример)
  • Элис (alyss) — женский голос (пример)
  • Оксана (oksana) — женский голос (пример)

Ссылки:

В случае использования Яндекса голоса Филиппа итоговый вариант конфига будет выглядеть примерно вот так:

{
  "lang": "ru-ru",
  "tts": {
    "module": "yandex",
    "yandex": {
      "lang": "ru-RU",
      "api_key": "YOUR_API_KEY",
      "voice": "filipp",
      "emotion": "good"
    }
  }
}

См. также Yandex SpeechKit STT.