<<< Back

TTS structure update


SergeJey (2018-11-09 19:08:33):

Сегодняшние обновления связаны с переделками работы функций say,sayto,sayreply и ask.

Основные тезисы:

  1. всё переделано на обработку событий (SAY,SAYTO,ASK). событие SAYREPLY не используется, т.к. оно автоматически преобразуется в SAYTO или SAY.
  2. за обработку событий отвечает модуль terminals и движки синтеза речи
  3. в настройках терминалов появились две новые опции "может принимать уведомления от системы" и "Минимальный уровень важности сообщений" (если не задан, то используется общесистемный)
  4. в терминалах необходимо что б был представлен сам сервер под именем MAIN (если его нет, то он сам создаться при первом запуске пользовательского интерфейса) -- в нём важно, что б был прописан IP-адрес сервера (тоже автоматически прописывается) -- без этого не будет работать синтез речи на терминалах типа DLNA и Chromecast.

Если не вдаваться в технические детали, то с точки зрения пользователя появилась поддержка голосовых уведомлений, синтезированных любым установленным движком, на любом терминале, который поддерживает проигрывание медиа. Менять что-то в своих сценариях, использующих функции семейства say, не нужно. Я проверял это на связке Windows TTS + колонка Google Home, но в теории всё должно работать и на других комбинациях.

Немного подробностей как это работает (на примере say, для sayto и ask работает похожим образом):

  1. Инициируется событие SAY
  2. Модуль терминалов его обрабатывает и пытается передать команду генерации речи на терминалы, для которых включен приём уведомлений и поддерживается "нативно" (например MajorDroid) -- если нативного синтеза на терминале нет, то он пропускается.
  3. Модуль синтеза речи обрабатывает событие SAY, генерит кэшированный медиа-файл и инициирует событие SAY_CACHED_READY
  4. Модуль терминалов ловит событие SAY_CACHED_READY и выбирает терминалы, для которых включен приём уведомлений и поддерживается проигрывание медиа -- для таких терминалов через модуль app_player отправляется команда проиграть закэшированный файл с речью

Чего пока нет:

(3)
 
tarasfrompir (2018-11-09 22:36:04):

ну как по мне с терминалами перестарался ......
и вот это тоже вопрос - в настройках терминалов появились две новые опции "может принимать уведомления от системы" и "Минимальный уровень важности сообщений" (если не задан, то используется общесистемный)
если я не хочу туда передавать сей - то я и сейту туда не передам ? или как?

(0)
 
tarasfrompir (2018-11-09 22:41:56):

и вообще гугл хом мини не отвечает ни с включеным сообщением ни без него ни на сей и ни на сейту

(0)
 
Xor (2018-11-09 22:49:40):

Немного не по теме: .заметил, что phvoice генерит кэш wav, а win tts делает сначала wav, а потом конвертит в mp3. Много времени теряется. Попробовал в sapi.js остановиться тоже на кэшировании только в wav. Но у меня Madplayer wav-файлы не заиграл. Это нормально? Я нашёл плеер для командной строки dlc, который поддерживает и wav, и mp3, и ogg (последний-для telegram). Внимание, вопрос - использование mp3- формата -- принципиально для говорилки в Мажордоме или можно wav использовать?

(0)
 
tarasfrompir (2018-11-09 22:50:29):

и блин ну капец - будет молчать - откуда у меня на 7 винде х32 будет ТТС - его в априори не поставиш - потому что с этим беда....(нет ну поигратся - так канечно).....
Но теперь все естественно молчит - хоть 1000 модулей с ттс для винды ставь пока винда сама не начнет говорить - то нехрен там делать...

(0)
 
tarasfrompir (2018-11-09 22:52:40):

ТЕПЕРЬ ВОПРОС - что мне делать на х32 7 винде ?
При чем гугл хом тоже молчит ибо ТТС отсутстувет - дебмес молчит как партизан...

(0)
 
SergeJey (2018-11-09 22:55:19):

sayto передаёт независимо от галочки "может принимать уведомления", но видимо с учётом уровня важности (это один из параметров sayto, хотя возможно и лишний).
для гуглхоума надо убедиться, что на нём включена галочка что может принимать уведомления и может проигрывать аудио с типом плеера хромкаст.

давайте без паники и "блин капец". если что-то не работает, то надо разбираться почему. виндовый ттс вообще не при чём -- его ставить не нужно, система должна работать с любым ттс -- будьто яндекс или rhvoice и на любой операционке. в текущем виде добавилось куча нового логирования в debmes, связанного с терминалами -- можно там сначало посмотреть, что происходит. так же убедиться, что кроме ядра были и соответствующие модули обновлены.

(0)
 
tarasfrompir (2018-11-09 23:03:25):

без паники - смотри - что получается -
} elseif ($event == 'SAYTO' || $event == 'ASK') {
$terminal_rec = array();
if ($details['destination']) {
if (!$terminal_rec = getTerminalsByName($details['destination'], 1)[0]) {
$terminal_rec = getTerminalsByHost($details['destination'], 1)[0];
}
}
if (!$terminal_rec['ID']) {
return false;
}
if ($event == 'ASK') {
$details['level']=9999;
}
$this->terminalSay($terminal_rec, $details['message'], $details['level']);
тоесть вызываем функцию терминал сей -
а терминал функция сей говорит только в гхн и мажордроид. (код приводить не буду)
А где остальные терминалы ? (хочу понять )
И вообще вопрос - терминалы это адресные устройства - только для сейту ? или еще и для функции сей ...? А ЭТО ОЧЕНЬ МНОГО ОЗНАЧАЕТ ?
Чисто для себя - ну чтобы понять куда движемся

(0)
 
tarasfrompir (2018-11-09 23:06:22):

скринов скидывать не буду но гугл хромкастом настроен и минимальное сообщений по уровню стоит 1 и сейту делал с уровнем 1

(0)
 
SergeJey (2018-11-09 23:07:49):

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

терминалы не только для sayto, но и для say -- любой терминал становится точкой вещания уведомлений, если данная опция включена.

(0)
 
SergeJey (2018-11-09 23:08:43):

в общем давай в чат и в личку, будем разбираться там, почему не работает.

(0)
 
Xor (2018-11-09 23:30:30):

tarasfrompir (2018-11-09 22:50:29):
и блин ну капец - будет молчать - откуда у меня на 7 винде х32 будет ТТС - его в априори не поставиш - потому что с этим беда....(нет ну поигратся - так канечно).....

Спорное утверждение, мягко говоря

(0)
 
tarasfrompir (2018-11-09 23:36:43):

переходи в терминал... а спорно - не спорно - то я например с яндексом не могу работать - так теперь все забыть о мажорике ?

(0)
 
tarasfrompir (2018-11-10 08:58:11):

блин в телеграм

(0)
 
Xor (2018-11-11 00:23:37):

В альфе в настройке win TTS не сохраняется галка USE_CACHE

(0)
 
SergeJey (2018-11-11 00:28:46):

её надо убрать просто ) там сейчас всегда кэш используется.

(0)
 

Please login to leave comments. Join us!