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

时间:2020-05-05 12:17:58

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

已经有6年了,所以我想我应该试一下语音合成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 68 Chrome Mobile上的语音提示音却高得多我的Android上为81 ,而不是笔记本电脑上的 Firefox 75 Chrome 81

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

或者我应该将其视为即将到来的问题,因为语音合成API 规范根本还没有准备好投入生产?

1 个答案:

答案 0 :(得分:2)

语音合成在支持和基础技术中无处不在-大多数将使用本机语音解决方案。如果您确实需要一致的解决方案,请考虑使用library或云TTS服务(例如Polly或Google Wavenet)。

浏览器使用每个平台上的基础语音提供程序,并可能在上面使用一些糖来确定它们通过的内容。每个操作系统都有其基础提供程序(Windows = SAPI / Media Foundation,iOS / OSX = VoiceOver,Linux = PicoTTS或eSpeak,尽管该列表并不详尽)。此外,Google包括自己的语音提供程序,某些浏览器在后端使用在线服务进行渲染。除非您使用第三方库,否则不能保证您使用相同的声音。另外请记住,用户的语言设置可能也会有所不同。