Текст в речь (Text To Speech) через HTTP

Возникла задача сделать веб сервис для IP АТС Freeswitch, который будет возвращать текст в виде wav/mp3 потока, что, собственно и было сделано.

Можно создать несколько потоков (по URL) определив в каждом нужный голос и его основные параметры. Каждый поток асинхронный. Каждый запрос обрабатывается асинхронно.

У службы следующие параметры командной строки:

  • /config – GUI для настройки потоков.
  • /app – запустить службу в режиме приложения (можно тестить).
  • /install – установить в качестве службы Windows.
  • /uninstall – удалить службу.

Имя службы: ttshttp.

Использование

Первым делом настраиваем потоки, запустив службу с командной строкой /config. Нажимаем добавить поток и указываем все параметры:

Все параметры надеюсь ясны. Единственное что может стать трудностью это URL. Вот примеры:

  • http://*:7789/maxim/ – слушать все входящие подключения на любой IP сервера, порт 7789 и путь /maxim/, при это URL http://192.168.1.2:7789/tatyana/ будет проигнорирован службой;
  • http://192.168.1.2:7789/maxim/ – привязывает ожидание запросов к определенному IP сервера на котором запущена служба (если несколько IP);
  • На дном порту могут висеть два потока, они должны различаться по путям. Например, http://*:7789/maxim/ и http://*:7789/tatyana/;

Теперь пример запроса:

, где:

  • text – это текст сообщения, которое необходимо обработать;
  • rate – (необязательный) скорость воспроизведения. Значения могут быть от -10 до 10;
  • vol – (необязательный) громкость.

Протестировать можно в любом браузере.

Freeswitch и text-to-speech

Служба была написана для использования совместно с Freeswitch, поэтому вот пример использования:

При вызове номера 12345 freeswitch проговорит нужную фразу.

Сама служба здесь: ttshttp (x86, x64)

Для работы нужен Framework 4.0 и установленный голос, если стандартный голос Windows не подходит. Распространяется как есть. Если что-то будет не сложно доделать могу доделать.

UPD: Добавлена опция формата выдачи – WAV/MP3 и MIME тип возвращаемый сервисом. Обновленная служба по той же ссылке.

UPD (2017-09-30): Добавлена обработка HEAD, которая возвращает что файл был изменен и в основной запрос возвращаются заголовки блокирующие кеширование. Исправлена обработка запроса, которая могла закрыть подключение до конца отправки данных, что приводило к “обрыву” файла.

3 мысли о “Текст в речь (Text To Speech) через HTTP”

  1. Добрый день. А как с вами связаться по е-мейл?
    Я сейчас попробую потестировать это приложение, а вообще я понял что вы можете сделать и нечто посерьезнее, например rss-читалку…

    1. Этот проект разрабатывался для IP АТС. Ничего серьезнее пока не понадобилось. Если что-то будет добавляться, то проект будет обновляться на сайте.

      1. Ясно. Хорошо, спасибо. Интересный модуль.
        А я пробовал искать Rss-приемник с передачей в Sapi, и не смог найти ни одного такого решения. Хотя на Гитхабе и в линукс-конференциях попадались с простой реализацией. А вот под винду – увы и ах.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.