我正在创建一个语音/文本备忘录 Web 应用程序。
这里:http://gustavstromberg.se/sandbox/html5/localstorage/ http://gustavstromberg.se/sandbox/html5/localstorage/看一下它的源码(很短,大部分都是css)
这是:
- 据我所知,语音识别仅适用于 Chrome。
- 本地存储,将笔记存储为文本。
- 谷歌翻译文本到语音。
一切正常,但在不同的浏览器中。语音输入功能完美,仅在 Chrome 中有效。文本转语音功能在 Safari 中有效。
要将备忘录动态加载到我使用的 audio>source 元素中:
$("#spokenmemory").html("<source src='http://translate.google.com/translate_tts?tl=en&q="+localStorage['memory']+"' />");
(localStorage['memory'] 包含我存储的文本备忘录)
要使用谷歌文本转语音功能播放我最近保存的备忘录,我使用:
$("#listenplay").click(function(){
$("#spokenmemory")[0].play();
});
(口语记忆是我的音频标签的 id 属性)
这在 Chrome 中不起作用,但如果我访问翻译链接(例如:,我的文本备注是“日本”)在单独的浏览器选项卡中,然后返回我的网站并重新加载页面(保存相同的文本备注“日本”),播放正常。多么奇怪,多么令人烦恼啊!
有人知道这种奇怪的行为吗?
这是因为谷歌限制了某些类型的请求,以防止服务过载。因此,当您的浏览器尝试获取音频文件时,不会获取该音频文件。一旦您访问翻译链接,音频文件就会被获取并缓存,这就是播放有效的原因(假设文本备忘录相同)。这是我的观察,但我不太确定。
当我使用 CURL 获取文件时,这就是我得到的响应:
403.这是一个错误。
您的客户端没有权限获取 URL/translate_tts?q=hello
从该服务器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)