Skip to content

Silero TTS backend service. Can be used with Home Assistant and Rhasspy.

License

Notifications You must be signed in to change notification settings

dummylabs/Silero-TTS-Service

Repository files navigation

Contributors Stargazers Issues MIT License

Silero TTS Service

Содержание

Установка сервера

Установка через Docker:

Выполните команду:

docker run -p 9898:9898 -e NUMBER_OF_THREADS=4 -e LANGUAGE='ru' -e SAMPLE_RATE=48000 --name tts_silero -d navatusein/silero-tts-service

Установка через Docker Compose:

Создайте файл docker-compose.yml и перенесите в него содержимое:

version: '3'

services:
  silero-tts-service:
    image: "navatusein/silero-tts-service"
    container_name: "silero-tts-service"
    ports:
      - "9898:9898"
    restart: unless-stopped
    environment:
      NUMBER_OF_THREADS: 4
      LANGUAGE: ru
      SAMPLE_RATE: 48000

Выполните команду:

docker-compose up

Настройки сервера

Все настройки сервера передаются как параметры окружения docker контейнеру при запуске.

Количество ядер для обработки речи NUMBER_OF_THREADS:

NUMBER_OF_THREADS: 4 

Количество потоков от 1 до количества ядер процессора сервера.
По умолчанию: 4

Язык синтеза речи LANGUAGE:

LANGUAGE: 'ru' 

По умолчанию: ru

Поддерживаемые языки, с доступными для них голосами:

Язык Код языка Поддерживаемые голоса
Русский ru aidar baya kseniya xenia eugene random
Українська uk mykyta random

Частота дискретизации SAMPLE_RATE:

SAMPLE_RATE: 48000 

Возможние значения: 48000, 24000, 8000
По умолчанию: 48000


Параметры утилиты sox SOX_PARAM:

SOX_PARAM: 'reverb 50 50 10' # Добавляет эхо на речь

По умолчанию: Пустой

Выходной файл проходит через утилиту sox. Ей можно передать параметры, чтобы наложить эффекты на речь: поднять тембр, добавить эхо, бас буст включить.

Ссылка на документацию утилиты sox: https://linux.die.net/man/1/sox


Исправление обрубания окончания фразы HA_FIX:

HA_FIX: True 

Может принимать значения: True False
По умолчанию: False

Исправляет ошибку, при которой Home Assistant не договаривает конец фразы. Добавляет секунду молчания в конец речи.


Настройка в Home Assistant

В файле configuration.yaml добавьте запись:

tts:
  - platform: marytts
    host: localhost # Адрес сервера
    port: 9898
    codec: WAVE_FILE
    voice: xenia # Имя голоса который хотите использовать.
    language: ru # Не используется. Настройки языка указываются в настройках сервера.

Настройка в Rhasspy Assistant

  1. В настройках, в разделе Text to Speech. Выберете модуль MarryTTS.
  2. Примените настройки Rhasspy Assistant (он перезагрузиться).
  3. Укажите адрес вашего сервера с путём /process.
  4. Нажмите на кнопку Refresh.
  5. В списке доступных голосов, выберите голос который вам нужно.
  6. Примените настройки Rhasspy Assistant (он перезагрузиться).

RhasspyConfig


Функциональные возможности

Нормализация цифр

Сервис умеет переводить цифры в текст.
Пример:

Текст с цифрой 1.

Нормализация Пример 1


Склонение существительных после цифры

Сервис умеет склонять существительных после цифр.
Для этого слово которое нужно склонить после цифры, возьмите в тег <d>слово<\d>.
Пример:

У меня было 15 <d>яблоко</d>.

Склонение Пример 1

Если нужно склонить несколько слов, то каждое нужно брать в тег <d>слово<\d> отдельно.

Мне осталось работать 15 <d>рабочий</d> <d>день</d>.

Склонение Пример 2


Произношение транслита

Сервис умеет произносить транслит.
Пример:

Lorem ipsum dolor sit amet.

Транслит Пример 1


SSML

С помощью SSML вы можете управлять паузами и просодией синтезированной речи.

<p>
  Когда я просыпаюсь, <prosody rate="x-slow">я говорю довольно медленно</prosody>.
  Потом я начинаю говорить своим обычным голосом,
  <prosody pitch="x-high"> а могу говорить тоном выше </prosody>,
  или <prosody pitch="x-low">наоборот, ниже</prosody>.
  Потом, если повезет – <prosody rate="fast">я могу говорить и довольно быстро.</prosody>
  А еще я умею делать паузы любой длины, например две секунды <break time="2000ms"/>.
  <p>
    Также я умею делать паузы между параграфами.
  </p>
  <p>
    <s>И также я умею делать паузы между предложениями</s>
    <s>Вот например как сейчас</s>
  </p>
</p>

SSML Пример 1

About

Silero TTS backend service. Can be used with Home Assistant and Rhasspy.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 97.7%
  • Makefile 2.3%