gpt4 book ai didi

javascript - ResponsiveVoice 被 CORS 屏蔽

转载 作者:行者123 更新时间:2023-12-01 16:16:50 26 4
gpt4 key购买 nike

我尝试构建一个函数,以在彼此之间定义的延迟读取数字。

{
...
play : function (digits, delay = 500) {
if (digits && digits.length > 0) {
responsiveVoice.speak(digits[0], "Czech Female", {
rate: 0.7,
onend: () => setTimeout(() => {
this.play(digits.splice(1), delay);
}, delay)
});
}
}

digits 是一个数字数组,delay 数字之间的延迟(以毫秒为单位)。

该函数在一段时间内运行良好,但随机失败并在控制台中出现以下错误:

Access to XMLHttpRequest at 'https://texttospeech.responsivevoice.org/v1/text:synthesize?text=0&lang=cs&engine=g1&name=&pitch=0.5&rate=0.35&volume=1&key=XXXXXXXX&gender=female' from origin 'http://localhost:8080' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.ResponsiveVoice audio could not be loaded. There is an issue connecting your browser to the API endpoint.GET https://texttospeech.responsivevoice.org/v1/text:synthesize?text=0&lang=cs&engine=g1&name=&pitch=0.5&rate=0.35&volume=1&key=XXXXXXXX&gender=female net::ERR_FAILED

谁能告诉我哪里出了问题?

最佳答案

当涉及字符 0 时,您使用的库似乎表现不佳(至少)。我测试了您的代码,它适用于任何其他输入。

不知何故,当向该库输入0 时,它会将请求作为XMLHttpRequest 发送到API。而不是 HTMLAudioElement (用于每次工作演讲)。

console

XMLHttpRequest 在跨域请求方面有一些限制(更多信息你可以阅读 CORS ),API 似乎不支持 XMLHttpRequest调用。

这是库和 API 之间的不一致,我怀疑库中存在与 truthy/falsy 检查相关的错误。

您应该联系他们的支持并报告此错误。

编辑:

正如评论中所写,似乎有一种解决方法是在数字前添加一个空格。

关于javascript - ResponsiveVoice 被 CORS 屏蔽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63219458/

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