NEWS
Драйвер sayit
-
А как определять с кем говоришь? `
Ну это я так для примера :), сейчас пока мы не умеем определять. Но вот с утра погоду рассказать женским голосом, а новости мужским. Думаю по интересней будет.
@Bluefox:Это и сейчас возможно - разговаривать разными голосами. `
Это как? В настройках менять?
@Bluefox:Либо использовать 2 инстанции или использовать задания "голос;текст" `
Мне понятней громкость;голос;текст -
Это как? В настройках менять? `
Одну инстанцию настроить на женский (например sayit.0), одну на мужской (например sayit.1)
@vtec:Мне понятней громкость;голос;текст `
Если ivona настроена, то можно ввести"ru-RU_AZ_Female;Женский голос"
"ru-RU_AZ_Male;Мужской голос"
Мужской голос на ивоне работает только с последней версией sayit.
-
Одну инстанцию настроить на женский (например sayit.0), одну на мужской (например sayit.1) `
А возможно одну инстанцию настроить на системный аудио выход, а вторую на sonos? Это я к чему, купил (еще идут почтой) я sonos play1 2шт..Получится ли 3 зоны (system + 2шт. sonos play1)? В скрипте придется прописывать два раза sayit.0 и sayit.1?
-
А возможно одну инстанцию настроить на системный аудио выход, а вторую на sonos? Это я к чему, купил (еще идут почтой) я sonos play1 2шт.. `
Да.
@vtec:Получится ли 3 зоны (system + 2шт. sonos play1)? В скрипте придется прописывать два раза sayit.0 и sayit.1? `
Да.
3885_soundtouchapi_discovery_v1.1.0.pdf
3885_soundtouchapi_webservices_v1.1.0.pdf -
Железо Cubieboard2, установка системы из wiKi, звук получаю из выхода для наушников.
Настройка драйвера.
!

При попытке воспроизвести сообщение: проигрывается звук извещения, а само сообщение - нет.При этом в логе следующее
!

Через некоторое время лог дополняется!

Если выключить извещение, то короткие фразы произносит без проблем, а вот состоящее из двух отдельных фраз ошибка аналогичная.Произносится только первая.
Где чего покрутить :?:
-
Таймаут можно поставить 5-10, а вот продолжительность увеличивайте до продолжительности самой длинной фразы. `
Но ведь, когда я отключаю звук извещения, то исчезают настройки длительности
filename="Скриншот 2015-10-05 07.32.13.png" index="1">~~
А проблема с двумя фразами остается
filename="Скриншот 2015-10-05 07.37.11_new.png" index="0">~~ -
Это означает, что устройство занято.
Нужно выставить длительность извещения больше на 1-2 сек, чем длительность самого извещения (например, если извещение длится 3 сек, то длительность извещения лучше выставить 5 сек).
Таймаут извещения это через какое время повторно воспроизводить извещение.
-
У меня Cubietruck. Это мои настройки, воспроизводит и по 2, и по 3 записи подряд. `
Но ведь судя по объяснению автора
@Bluefox:Длительность извещения - через сколько секунд после начала вступительного звука (извещения - например ТаДа) начать воспроизводить фразу.
0 - значит сразу начать с текста и ТаДа не проигрывать. Хотя на некоторых системах может проиграться только ТаДа. `
В вашей ситуации голосовое сообщение будет проиграно через 15 секунд после начала вступительного звука, т.е появится большая пауза между вступлением и самим сообщением.И это не объясняет занятость устройства при произнесении нескольких фраз.
Попробовал настройки spectrekr, отрабатывает вступительный звук, и через 10 секунд идет фраза. Т.е очень долгая пауза. Но ошибками сыпать перестала. Насчет нескольких фраз подряд буду пробовать позже
-
Ну чтож…
Попробовал несколько фраз, запустив скрипт
var idSayIt = "sayit.0.tts.text"; { setState (idSayIt, 'Прогноз погоды на сегодня: '+getState("forecast.today").val); setState (idSayIt, 'Прогноз погоды на завтра: '+getState("forecast.tomorrow").val); setState (idSayIt, 'Прогноз погоды на послезавтра: '+getState("forecast.dayAfterTomorrow").val); }Получил следующие ошибки.

Понял что у драйвера нет буфера на входе - то о чем просил electric69 в первом посте этой темы.Соответственно нужно контролировать переменную sayit.0.tts.playing и запускать следующую фразу только после установки ее в false.
Я пока так делать не умею :(
Покажите пожалуйста пример.
-
@kID:Ну чтож…
Попробовал несколько фраз, запустив скрипт
var idSayIt = "sayit.0.tts.text"; { setState (idSayIt, 'Прогноз погоды на сегодня: '+getState("forecast.today").val); setState (idSayIt, 'Прогноз погоды на завтра: '+getState("forecast.tomorrow").val); setState (idSayIt, 'Прогноз погоды на послезавтра: '+getState("forecast.dayAfterTomorrow").val); }Получил следующие ошибки.
filename="Скриншот 2015-10-06 20.33.06.png" index="0">~~
Понял что у драйвера нет буфера на входе - то о чем просил electric69 в первом посте этой темы.Соответственно нужно контролировать переменную sayit.0.tts.playing и запускать следующую фразу только после установки ее в false.
Я пока так делать не умею :(
Покажите пожалуйста пример. `
Я так понимаю с последним обновление должно быть исправлено, сам не проверял еще. -
Получить значение
getState('sayit.0.tts.playing').val, а дальше или через условие, или через цикл ждать. `
Ни в коем случае не через цикл. Это не ардуино.В последней версии javascript появилось:
setState (idSayIt, 'Прогноз погоды на сегодня: '+getState("forecast.today").val,); setStateDelayed (idSayIt, 'Прогноз погоды на завтра: '+getState("forecast.tomorrow").val,10000); setStateDelayed (idSayIt, 'Прогноз погоды на послезавтра: '+getState("forecast.dayAfterTomorrow").val, 20000);
