- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想创建一个与过去的 GoBarbara.com 类似的页面。文本字段的内容将从文本转换为语音。
因此,我想使用 SpeechSynthesis API (javaScript),它在触发 intro.mp3 后执行文本到语音转换。播放完语音后,应播放 end.mp3。这是由 intro.mp3 和演讲末尾的“onend”类型的事件监听器处理的。
播放音频的基本触发方案是 1 -> 2 -> 3。其中1是intro.mp3,2是speech,3是end.mp3。
我当前的代码如下:
function doSpeech() {
var speech = new SpeechSynthesisUtterance();
speech.text = getText();
speech.lang = "en-US";
speech.voice = speechSynthesis.getVoices().filter(function(voice) {return voice.name == 'Google UK English Male'; })[0];
speechSynthesis.speak(speech);
speech.onend = playEnd();
}
要触发 end.mp3,我想使用 SpeechSynthesis 拥有的 onend 事件。但是 onend 在实际演讲结束之前就触发了 end.mp3!?
看来这可能是一个错误。但除此之外,如何让 mp3 在文本读完后正确启动?注意:语音部分的长度可以不同。
最佳答案
正确的代码是
function doSpeech() {
var speech = new SpeechSynthesisUtterance();
speech.text = getText();
speech.lang = "en-US";
speech.voice = speechSynthesis.getVoices().filter(function(voice) {return voice.name == 'Google UK English Male'; })[0];
speech.onend = playEnd();
speechSynthesis.speak(speech);
}
在speak
之前使用onend
关于javascript - SpeechSynthesis - Onend 在语音结束前触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44279458/
大家早上好 我仍在为不识字的人做问卷调查。为此,我正在使用文本转语音应用程序(感谢@JO3-W3B-D3V) 问题是调查问卷将以多种语言开发,这意味着文本到语音应用程序也必须支持多种语言。 Speec
我想创建一个与过去的 GoBarbara.com 类似的页面。文本字段的内容将从文本转换为语音。 因此,我想使用 SpeechSynthesis API (javaScript),它在触发 intro
我尝试用 javascript 实现一个小网页,允许从两个 mp3 之间的文本播放 specchsynthesis 部分。 至于无论出于何种原因,口语部分的 onend 语句不起作用,我想创建一个递归
在 Web Speech API Specification 上给出的示例 speechSynthesis.speak(SpeechSynthesisUtterance('Hello Worl
我正在尝试使用 speechSynthesis API 进行试验在Eric's blog的帮助下. This fiddle工作正常,意味着有 no issue with the audio devic
我无法使用 Dart SpeechSynthesis 类构建 SpeechSynthesis 对象。 Dart 编辑器提示:“类 'SpeechSynthesis' 没有默认构造函数”。 最佳答案 这
我正在使用Speech Synthesis API在 Google Chrome v34.0.1847.131 上。该 API 从 v33 开始在 Chrome 中实现。 文本转语音在大多数情况下都有
public boolean playing=false; private void prepareTTSEngine() { try { synthesi
SpeechSynthesis API在 Firefox 上不会说普通话。不支持吗?我在文档中找不到列表。我尝试了几种不同的语言 tags . Fiddle : var msg = new Speec
当我在 Chrome 中运行 speechSynthesis.getVoices() 时,我得到了一个可能的声音列表。该列表会因计算机和 Chrome 版本而异。 有什么方法可以扩展支持并添加更多声音
我正在尝试构建一个可启动的网络应用程序。因此,我的用户需要应用程序在后台运行,以跟踪时间、地理位置并使用 window.speechSynthesis.speak 发布进度公告。 我需要它在手机 sl
我正在使用 React,这里有一些 TTS(文本到语音)的代码。它在 Windows 和 macOS 以及某些版本的 iOS 设备上完美运行。 但对于某些 iOS 设备,设置语音不起作用。 {
我尝试使用 Google speechSythesis(网络语音 API),它给我的声音比我预期的要少。在 chrome 中,我有 22 个声音,但在其他浏览器中,我有 3 个声音,有什么办法可以增加
下面的简要页面不起作用。具体来说,“window.speechSynthesis.speak(msg)”在按下按钮之前不起作用。如果按钮已被按下,则“Hello”消息将起作用。如果没有,则对“wind
我正在尝试使用 SpeechSynthesis API。它适用于桌面浏览器和移动 Chrome,但不适用于移动 Safari。 const msg = new SpeechSynthesisUtt
我尝试用 javascript 编写测试代码,同时尝试记录和读出一个随机数。对于文本到语音,我使用 SpeechSynthesisUtterance 和 window.speechSynthesis:
用于扩展 (https://developer.chrome.com/extensions/tts) 和 SpeechSynthesis (https://developer.mozilla.org/
这个问题在这里已经有了答案: Getting the list of voices in speechSynthesis (Web Speech API) (13 个答案) 关闭 3 年前。 我正在
我想在 Chrome 中使用 window.SpeechSynthesis 的 cancel 方法,切断一个话语并开始一个新的话语(这样你就不必听到仍在队列中的所有话语) var test = new
我正在开发一个需要在网络浏览器中使用文本转语音的应用程序。我正在为此使用 HTML5 语音合成。在 Google Chrome 上,代码运行良好,使用 |getVoices()| 列出了所有可用的语音
我是一名优秀的程序员,十分优秀!