gpt4 book ai didi

javascript - speechSynthesis API 不工作

转载 作者:行者123 更新时间:2023-11-29 21:46:14 26 4
gpt4 key购买 nike

我正在尝试使用 speechSynthesis API 进行试验在Eric's blog的帮助下.

This fiddle工作正常,意味着有 no issue with the audio device permission对于网站(如果我错了请纠正我)。我做了我的 own fiddle但似乎没有用(我的意思是它没有说Hello world)。

这是我的代码:

function speak() {
var msg = new SpeechSynthesisUtterance('Hello world');
msg.rate = 0.7;
msg.pitch = 1;
window.speechSynthesis.speak(msg);
}
<button title="Click to listen" onclick="speak()">
Say hello world
</button>

更新:正如 enhzflep 所指出的,代码在这里工作但不在JSFiddle's editor

有什么建议吗,好心人?

最佳答案

嗯。好吧,您在此页面上发布的片段对我有用,但包含相同代码的 fiddle 却不起作用。但是,如果您将第二个下拉列表更改为 "No wrap - in <head>"然后就好了。

这是因为 jsfiddle 将您的代码包装到一个在文档加载时调用的函数中,如下所示:

<script type="text/javascript">//<![CDATA[ 
window.onload=function(){
function speak() {
var msg = new SpeechSynthesisUtterance('Hello world');
msg.rate = 0.7;
msg.pitch = 1;
window.speechSynthesis.speak(msg);
}
}//]]>
</script>

通过这样做,window.onload 之外的代码处理程序,包括 html 中的内联 JS 无法“看到”您的 speak功能。

通过更改下拉菜单,jsFiddle 会为显示结果的 iframe 生成不同的 JS,如下所示:

<script type="text/javascript">//<![CDATA[ 

function speak() {
var msg = new SpeechSynthesisUtterance('Hello world');
msg.rate = 0.7;
msg.pitch = 1;
window.speechSynthesis.speak(msg);
}
//]]>

</script>

关于javascript - speechSynthesis API 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31099157/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com