Страница 2 из 2

Re: [Библиотека] использования Яндекс.Станции в качестве терминала (синтез речи и управление)

Добавлено: Сб апр 18, 2020 6:56 pm
S_Nick
dengi.76 писал(а): Сб апр 18, 2020 11:46 am S_Nick Здравствуйте ! Не могли бы Вы подсказать, как можно сделать очерёдность сообщений Алисы, а то сейчас если приходит два сообщения то первое из них "съедается". Спасибо.
Средствами Станции не думаю, что это возможно реализовать, никаких API в открытом доступе нет. Яндекс держит платформу закрытой.
Нужно реализовывать средствами MJDM. Единственный способ приходящий в голову, рассчитывать примерное время проговаривания текста и на это время делать паузу, перед следующей отправкой.

Паузу можно очень приблизительно рассчитать так:

Код: Выделить всё

$command = "Раз два три";
$pause = ceil(mb_strlen(str_replace(array('Повтори за мной:', ' '), '', $command)) * 5 / 48);
Но это не панацея, например, если отправить Алисе команду цифрами "1 2 3", она и будет проговаривать как текст "Раз два три", а код рассчитает паузу исходя из 3 символов.

Конечно можно реализовать и более сложный алгоритм, но всё равно это будет один большой "костыль".

Станцию можно использовать в параллели с основным голосовым выводом MJDM, но не в замен. Для вывода редких сообщений, к примеру, времени каждый час, изменения погоды, пробок на дорогах и тд.

В общем. Создать очередь сообщений на данный момент нельзя.

Re: [Библиотека] использования Яндекс.Станции в качестве терминала (синтез речи и управление)

Добавлено: Сб апр 18, 2020 6:59 pm
dengi.76
S_Nick писал(а): Сб апр 18, 2020 6:56 pm
dengi.76 писал(а): Сб апр 18, 2020 11:46 am S_Nick Здравствуйте ! Не могли бы Вы подсказать, как можно сделать очерёдность сообщений Алисы, а то сейчас если приходит два сообщения то первое из них "съедается". Спасибо.
Средствами Станции не думаю, что это возможно реализовать, никаких API в открытом доступе нет. Яндекс держит платформу закрытой.
Нужно реализовывать средствами MJDM. Единственный способ приходящий в голову, рассчитывать примерное время проговаривания текста и на это время делать паузу, перед следующей отправкой.

Паузу можно очень приблизительно рассчитать так:

Код: Выделить всё

$command = "Раз два три";
$pause = ceil(mb_strlen(str_replace(array('Повтори за мной:', ' '), '', $command)) * 5 / 48);
Но это не панацея, например, если отправить Алисе команду цифрами "1 2 3", она и будет проговаривать как текст "Раз два три", а код рассчитает паузу исходя из 3 символов.

Конечно можно реализовать и более сложный алгоритм, но всё равно это будет один большой "костыль".

Станцию можно использовать в параллели с основным голосовым выводом MJDM, но не в замен. Для вывода редких сообщений, к примеру, времени каждый час, изменения погоды, пробок на дорогах и тд.

В общем. Создать очередь сообщений на данный момент нельзя.
Спасибо за подробный ответ !