相关文章推荐
刚失恋的香蕉  ·  Json递归解析实例 - 呆瓜小贼66 - 博客园·  2 年前    · 
无邪的橡皮擦  ·  Azure Key Vault URI ...·  3 年前    · 
豪爽的毛豆  ·  Asp.net 高性能 Sqlite ...·  3 年前    · 
不羁的青椒  ·  python爬虫学到什么程度,可以做兼职接单 ...·  3 年前    · 
Code  ›  SpeechSynthesis API端回调不起作用开发者社区
时间戳 event
https://cloud.tencent.com/developer/ask/sof/110894358
耍酷的铁板烧
3 年前
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
提问
问 SpeechSynthesis API端回调不起作用
Stack Overflow用户
提问于 2014-05-06 00:17:28
EN

我在GoogleChromev34.0.1847.131上使用 语音合成API 。该API是在Chrome中实现的,从v33开始。

除了为 onend 分配回调时,文本到语音的大部分工作都是有效的。例如,以下代码:

var message = window.SpeechSynthesisUtterance("Hello world!");
message.onend = function(event) {
    console.log('Finished in ' + event.elapsedTime + ' seconds.');
window.speechSynthesis.speak(message);

有时会调用 onend ,有时不会调用它。时机似乎完全过时了。当它被调用时,打印的 elapsedTime 总是一些划时代的时间,比如 1399237888 。

9 17.4K 0 票数 34
EN
javascript
google-chrome
text-to-speech
speech-synthesis
google-text-to-speech

回答 9

Stack Overflow用户

回答已采纳

发布于 2014-05-12 02:28:53

虽然这是我发现它工作的方式,但我不确定这是否是正确的行为.

首先,不要立即调用call函数,使用回调。

第二,为了获得时间,使用 timeStamp 而不是 elapsedTime 。您也可以使用 performance.now() 。

var btn = document.getElementById('btn');
speechSynthesis.cancel()
var u = new SpeechSynthesisUtterance();
u.text = "This text was changed from the original demo.";
var t;
u.onstart = function (event) {
    t = event.timeStamp;
    console.log(t);
u.onend = function (event) {
    t = event.timeStamp - t;
    console.log(event.timeStamp);
    console.log((t / 1000) + " seconds");
btn.onclick = function () {speechSynthesis.speak(u);};

演示: http://jsfiddle.net/QYw6b/2/

你得到了时间,这两个事件都肯定会被触发。

票数 11
EN

Stack Overflow用户

发布于 2016-03-11 08:54:11

根据Kevin在 答案 中提到的bug上的 这句话 ,这可能是垃圾收集的一个问题。在调用 speak 看上去很管用 之前将语句存储在变量中

window.utterances = [];
var utterance = new SpeechSynthesisUtterance( 'hello' );
utterances.push( utterance );
speechSynthesis.speak( utterance );
票数 24
EN

Stack Overflow用户

发布于 2014-09-03 22:21:04

您可以使用EventListener作为开始和结束,就像我对Speakerbot ( http://www.speakerbot.de/ )一样。

在这里,说话时,我的脸变了。

newUtt = new SpeechSynthesisUtterance();
newUtt.addEventListener('start', function () {
 
推荐文章
刚失恋的香蕉  ·  Json递归解析实例 - 呆瓜小贼66 - 博客园
2 年前
无邪的橡皮擦  ·  Azure Key Vault URI DNS Name Resolver Exception - Microsoft Q&A
3 年前
豪爽的毛豆  ·  Asp.net 高性能 Sqlite ORM 框架之 sqliteSugar - 果糖大数据科技 - 博客园
3 年前
不羁的青椒  ·  python爬虫学到什么程度,可以做兼职接单? - 知乎
3 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号