Speak.js - выполняется только одна команда - PullRequest
1 голос
/ 19 ноября 2011

В настоящее время я дурачусь с speak.js: http://www.syntensity.com/static/espeak.html

Очевидно, что скрипт позволяет выполнять только одну команду выступления, если я делаю так:

speak("1");
speak("2");

... считывается только "2".

Кто-нибудь знает, как устранить проблему, подобную этой?

Если вы хотите поиграться: http://jsfiddle.net/timkl/YgWdh/

Ответы [ 4 ]

2 голосов
/ 19 ноября 2011

То, что происходит, - то, что оба выполняются, но первое растоптано вторым.Посмотрите на эту ревизию вашей скрипки: http://jsfiddle.net/YgWdh/4/.

Она использует setTimeout, чтобы убедиться, что вторая строка ждет немного перед выполнением.Но я не вижу никаких документов по API, поэтому я не знаю, как заставить второй вызов ждать достаточно долго, чтобы завершить первый.

1 голос
/ 18 марта 2016

Возможно, вы могли бы исследовать файл meSpeak.js (http://www.masswerk.at/mespeak/),, основанный на speak.js) и добавить поддержку обратных вызовов. Я никоим образом не связан с этим проектом, но я исследую что-то, что называется обратными вызовамипомогите решить.

1 голос
/ 19 ноября 2011

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

1 голос
/ 19 ноября 2011

Я думаю, тебе придется сделать что-то вроде speak("1 2")

http://jsfiddle.net/K6GtQ/

...