JavaScript / Chrome синтез речи - симуляция активации пользователя - PullRequest
0 голосов
/ 12 февраля 2020

Я экспериментирую с API синтеза речи. У меня есть следующий код:

var message = new SpeechSynthesisUtterance("Hello");
window.speechSynthesis.speak(message);

Код работает отлично, однако он работает только тогда, когда пользователь нажал или взаимодействовал с текущей страницей в браузере. Я получаю следующее предупреждение на консоли Chrome при попытке запустить код без предварительного взаимодействия со страницей:

speechSynthesis.speak() without user activation is no longer allowed since M71, around December 2018. See https://www.chromestatus.com/feature/5687444770914304 for more details

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

Я смотрел на симуляцию щелчка страницы с помощью javascript / jquery следующим образом:

$('#randomElementOnPage').trigger('click');

А затем запускает речевой код, но он не кажется, обманывает браузер.

Любые решения / советы приветствуются.

Спасибо.

РЕДАКТИРОВАТЬ: Поскольку, кажется, нет никаких решений, есть ли браузер / Настройки звука в Chrome, et c Я могу изменить для себя, чтобы позволить этому работать только для себя. Кто-то предложил перейти на chrome://settings/content/sound и добавить сайт в список разрешенных сайтов для аудио. Однако, похоже, это тоже не работает.

1 Ответ

0 голосов
/ 21 февраля 2020

Если, как сказано в вашем EDIT, вы хотите использовать свой код на своем собственном компьютере (компьютеры каким-то образом контролируются вами), вы можете вместо этого использовать какой-либо инструмент автоматизации (и он будет нажимать кнопки / взаимодействовать с страница от вашего имени).
Я не знаю, что сейчас в тренде. Puppeteer или Intern или что-то подобное, вероятно, будет излишним (а насколько мне известно, puppeteer без головы). Долгое время go я лично использовал AutoIt.

...