Я работаю над редактированием Mespeak.js, чтобы помочь другу с проблемами визуального отслеживания.Как отложить синтез в Mespeak.js отображать слова во время воспроизведения wav
Я просматривал Mespeak.js (http://www.masswerk.at/mespeak/) и пытался выяснить, как захватить каждое слово, как говорится, а затем отображать его на экране во время воспроизведения файла wav.
Я думаю, что это связано с возвратом данных в виде массива, а затем отображением массива в качестве воспроизведения wav. Я даже не уверен, что это возможно (или как выглядят сырые данные).
Вот что я
div id="display">
<span>Here.</span>
</div>
<script type="text/javascript">
var timeoutID
var texttosend = prompt('Text to Split');
var res = texttosend.split(" ")
var arrayLength = res.length;
function refresh(word) {
meSpeak.speak(res[i], {speed: 100});
console.log(res[i]);
$("#display span").text(word);
};
console.log('here');
for (var i = 0; i <= arrayLength; i++) {
timoutID = window.setTimeout(refresh(res[i]), 50000+(i*50000));
};
Есть две проблемы здесь - я думаю, что они оба связаны с задержкой. Независимо от того, что я установил значение timeoutID в текст, snythesized все сразу, и единственное отображаемое слово является последним. Я попытался использовать варианты setTimeout, и я пробовал задержку jQuery. Любые идеи о том, как помочь? Консоль.log выводит каждое слово отдельно, поэтому я знаю, что разделение текста на массив работает, и цикл работает - я думаю, что сейчас просто время.
Извините, если это не делает тонны смысла - я думаю, какая-то ясность поможет мне начать разбирать эту проблему.
Что у вас есть? – placeybordeaux
Обновлено сообщение с кодом. – ntett
Я сделал освежающий цикл, используя найденный код [здесь] [1]. [1]: http://stackoverflow.com/questions/3583724/how-do-i-add-a-delay-in-a-javascript-loop – ntett