2020 年跨浏览器使用语音合成 Javascript API

Working cross-browser with the Speech Synthesis Javascript API in 2020

它已经存在六年了,所以我想我应该试试 语音合成 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 属性 设置为 3Firefox Mobile 68Chrome Mobile 81 在我的 Android 上比在 Firefox 75 上Chrome 81 在我的笔记本电脑上。

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

或者我应该将其视为早期问题,因为在 2020 年,语音合成 API 规范还没有准备好投入生产?

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

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