Skip to content

artem-webdev/rhvoice-rest

This branch is 36 commits behind Aculeasis/rhvoice-rest:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

d02631f · Nov 22, 2019
Oct 20, 2018
Oct 15, 2019
Oct 12, 2018
Oct 11, 2019
Oct 11, 2019
Oct 11, 2019
Oct 11, 2019
Oct 11, 2019
Oct 15, 2019
Oct 1, 2018
Oct 13, 2019
Sep 11, 2018
Oct 14, 2018
Nov 22, 2019
Sep 8, 2018
Oct 13, 2019

Repository files navigation

Docker Pulls Build Status Build status

Это веб-сервис на основе flask и синтезатора речи RHVoice. Благодаря REST API его легко интегрировать в качестве TTS-провайдера.

Docker

Через скрипт docker_starter

Запуск\обновление из хаба: ./rhvoice_rest.py --upgrade

Полное описание тут

Готовые докеры

  • aarch64 docker run -d -p 8080:8080 aculeasis/rhvoice-rest:arm64v8
  • armv7l docker run -d -p 8080:8080 aculeasis/rhvoice-rest:arm32v7
  • x86_64 docker run -d -p 8080:8080 aculeasis/rhvoice-rest:amd64

Сборка и запуск докера

git clone https://github.com/Aculeasis/rhvoice-rest
cd rhvoice-rest
# Указать Dockerfile под целевую архитектуру
docker build -t rhvoice-rest -f Dockerfile.arm64v8 .
docker run -d -p 8080:8080 rhvoice-rest

Dockerfile.arm64v8 использует заранее собранный rhvoice-wrapper-bin (зеро часто не хватает памяти на сборку), для полной сборки используйте Dockerfile.arm64v8.src

API

http://SERVER/say?
text=<текст>
& voice=<
         aleksandr|anna|elena|irina| # Russian
         alan|bdl|clb|slt| # English
         spomenka| # Esperanto
         natia| # Georgian
         azamat|nazgul| # Kyrgyz
         talgat| # Tatar
         anatol|natalia # Ukrainian
         >
& format=<wav|mp3|opus|flac>
& rate=0..100
& pitch=0..100
& volume=0..100

SERVER - Адрес и порт rhvoice-rest. При дефолтной установке на локалхост будет localhost:8080. Конечно, вы можете установить сервер rhvoice-rest на одной машине а клиент на другой. Особенно актуально для слабых одноплатников.

text - URL-encoded строка. Обязательный параметр.

voice - Голос из RHVoice полный список. anna используется по умолчанию и в качестве альтернативного спикера.

format - Формат возвращаемого файла. По умолчанию mp3.

rate - Темп речи. По умолчанию 50.

pitch - Высота голоса. По умолчанию 50.

volume - Громкость голоса. По умолчанию 50.

Нативный запуск

Для начала нужно установить зависимости:

pip3 install flask pymorphy2 rhvoice-wrapper

Собрать и установить RHVoice или установить rhvoice-wrapper-bin предоставляющий библиотеки и данные RHVoice. Второй вариант рекомендуется для Windows т.к. не требует сборки.

И еще рядом с app.py положить tools из RHVoice-dictionary.

Для поддержки mp3, opus и flac нужно установить lame, opus-tools и flac

Устновка скриптом на debian-based дистрибутивах в качестве сервиса

git clone https://github.com/Aculeasis/rhvoice-rest
cd rhvoice-rest
chmod +x install.sh
sudo ./install.sh

Статус сервиса sudo systemctl status rhvoice-rest.service

Особенности запуска в Windows

Нужно задать пути через переменные окружения. Если вы используете rhvoice-wrapper-bin то первые 2 задавать не нужно:

RHVOICELIBPATH до RHVoice.dll той же архитектуры что и питон и RHVOICEDATAPATH до папки с languages и voices. По умолчанию они ставятся в C:\Program Files (x86)\RHVoice\data

Не обязательно: LAMEPATH, OPUSENCPATH и FLACPATH для поддержки соответствующих форматов.

Протестировано на Windows 10 и Python 3.6.

Настройки

Все настройки задаются через переменные окружения, до запуска скрипта или при создании докер-контейнера (через -e):

  • RHVOICELIBPATH: Путь до библиотеки RHVoice. По умолчанию RHVoice.dll в Windows и libRHVoice.so в Linux.
  • RHVOICEDATAPATH: Путь до данных RHVoice. По умолчанию /usr/local/share/RHVoice.
  • THREADED: Количество запущенных процессов синтеза, определяет количество запросов которые могут быть обработаны одновременно. Если > 1 генераторы будут запущены в качестве отдельных процессов что существенно увеличит потребление памяти. Рекомендуемое максимальное значение 1.5 * core count. По умолчанию 1.
  • LAMEPATH: Путь до lame или lame.exe, если файл не найден поддержка mp3 будет отключена. По умолчанию lame.
  • OPUSENCPATH: Путь до opusenc или opusenc.exe, если файл не найден поддержка opus будет отключена. По умолчанию opusenc.
  • FLACPATH: Путь до flac или flac.exe, если файл не найден поддержка flac будет отключена. По умолчанию flac.
  • RHVOICE_DYNCACHE: Если задано и не равно no, disable или false кэширует результат запроса на время его генерации. Включается автоматически вместе с RHVOICE_FCACHE.
  • RHVOICE_FCACHE: Если задано и не равно no, disable или false будет включен файловый кэш. Чтение из кэша почти не увеличивает скорость реакции, но значительно уменьшает время загрузки всех данных. Может некорректно работать в Windows. По умолчанию кэш отключен.
  • RHVOICE_FCACHE_LIFETIME: Если кэш включен задает время жизни файлов кэша в часах, исчисляется от времени последнего доступа к файлу. Если FS смонтирована с noatime (а почти всегда это так) то atime будет обновляться принудительно. Может некорректно работать в Windows. По умолчанию 0 (файлы кэша живут вечно).
  • CHUNKED_TRANSFER: Если задано и не равно no, disable или false включает Chunked transfer encoding. По умолчанию отключен.

Проверка

http://localhost:8080/say?text=Привет

http://localhost:8080/say?text=Привет%20еще%20раз&format=opus

http://localhost:8080/say?text=Kaj%20mi%20ankaŭ%20parolas%20Esperanton&voice=spomenka&format=opus

Интеграция

Links

About

RHVoice REST API

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 94.4%
  • Shell 4.9%
  • Batchfile 0.7%