【问题标题】:Working cross-browser with the Speech Synthesis Javascript API in 20202020 年使用 Speech Synthesis Javascript API 跨浏览器工作
【发布时间】:2020-08-20 02:27:58
【问题描述】:

它已经存在六年了,所以我想我应该给 Speech Synthesis API 一个旋转:

这是我的第一个测试:

const vocalWelcome = new SpeechSynthesisUtterance('Welcome to the Main Men-You. Please select your option.');
vocalWelcome.pitch = 3;
vocalWelcome.rate = 0.95;
window.speechSynthesis.speak(vocalWelcome);

我注意到,尽管将 pitch 属性明确设置为 3,但 Firefox Mobile 68Chrome Mobile 81 上的语音音调要高得多> 在我的 Android 上比在我的笔记本电脑上的 Firefox 75Chrome 81 上。

对此我能做些什么吗?我是否需要进行浏览器嗅探/设备嗅探,然后相应地调整 pitch 属性?

或者我应该将其视为初期问题,因为在 2020 年,Speech Synthesis API 规范还没有准备好投入生产?

【问题讨论】:

  • 不知道您是否必须处理这个问题,但我对为外国计算机选择的可用语音和默认语音有疑问。我使用了一个 polyfill,发现 polyfill 并没有真正解决所有问题。
  • 当然。我可以看到它并不是特别复杂 - 我必须将 "menu" 写为上面的 "men-you" 以阻止第二个音节被吞下一半。但这很好,因为我不想将它用于任何过于复杂的事情 - 我只是热衷于为我的应用添加几个渐进式增强
  • 语音合成在支持和底层技术方面无处不在 - 大多数人将使用任何原生语音解决方案。如果您确实需要一致的解决方案,请考虑使用a library 或云 TTS 服务。
  • @Rounin - 浏览器使用每个平台上的底层语音提供程序,可能在顶部加上一些糖来确定它们通过什么。每个操作系统都有其底层提供程序(Windows = SAPI / Media Foundation、iOS/OSX = VoiceOver、Linux = PicoTTS 或 eSpeak,尽管该列表并不详尽)。此外,谷歌包括自己的语音提供商,一些浏览器在后端使用在线服务进行渲染。除非您使用 3rd 方库,否则不能保证您的声音相同。另请注意,用户的语言设置也可能不同。
  • 仅供参考,我遇到的问题不仅仅是声音不同,而是如果我没有明确设置它们就无法正常工作。

标签: javascript google-chrome firefox mobile text-to-speech


【解决方案1】:

语音合成在支持和底层技术方面无处不在 - 大多数人将使用任何原生语音解决方案。如果您确实需要一致的解决方案,请考虑使用library 或云 TTS 服务(如 Polly 或 Google Wavenet)。

浏览器使用每个平台上的底层语音提供程序,可能在顶部加上一些糖来确定它们传递的内容。每个操作系统都有其底层提供程序(Windows = SAPI / Media Foundation、iOS/OSX = VoiceOver、Linux = PicoTTS 或 eSpeak,尽管该列表并不详尽)。此外,谷歌包括自己的语音提供商,一些浏览器在后端使用在线服务进行渲染。除非您使用 3rd 方库,否则不能保证您的声音相同。另请注意,用户的语言设置也可能不同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-27
    • 2013-03-21
    • 1970-01-01
    • 1970-01-01
    • 2011-06-22
    • 2012-09-22
    相关资源
    最近更新 更多