使用 Google 翻译进行文本转语音





5.00/5 (1投票)
文本转语音的一些可用选项
学习日语计数可能有点不直观,尤其是在处理较大的数字(超过 10,000)时,所以我认为如果我能做一个小型的 Web 应用程序,让用户输入一个数字,并使用文本转语音技术将其读出来,向学生展示如何发音,那将会很酷。
事实证明,在文本转语音方面,实际上有几种选择。
1. (未文档化) Google 翻译 API
这似乎是一个未文档化的瑰宝,在一些博客中有所提及,例如 这里 和 这里。它是免费的、匿名的,并且设置起来非常容易。
var source = `https://translate.google.com/translate_tts?tl=ja-JP&q=
${encodeURIComponent('konnichiwa')}&client=tw-ob`;
var audio = new Audio(source);
audio.play();
可以通过 JavaScript 或 HTML5 audio
标签访问此未文档化的 API 端点。不过,要使其正常工作,需要满足几个要求
- 您需要在文档主体中包含一个
<meta name="referrer" content="no-referrer">
,或者在Audio
标签中包含一个rel="noreferrer"
。 - 您需要在请求中指定一个
client
。Stack Overflow 和一些其他博客中经常提到tw-ob
这个值,但看起来任何值都可以。 - 您可以使用
tl
参数指定要使用的语言。这需要是一个受支持的语言代码,您可以在 Google Cloud 文档中找到。
…这把我们引向了我们的第二个选择。
2. Google Cloud API
事实证明,Google 确实有一个官方的文本转语音 API,它比未文档化的 API 更全面。该服务对于标准质量的声音,每月前 400 万字符是 免费的,之后按每月 4 美元收费。听起来很多,但如果有一个麻烦的用户试图使用您的服务处理博士论文,这可能会迅速变得非常昂贵。
此服务的客户端库似乎不包含浏览器选项,但您当然可以直接使用 REST API,网址为 https://cloud.google.com/text-to-speech/docs/reference/rest/v1/text/synthesize。
3. ResponsiveVoice
市面上有很多第三方 TTS 工具,但我发现的一个有趣的选项是 ResponsiveVoice。他们提供了一个超级简单的 JavaScript 库,似乎是专门为浏览器设计的,并且他们为非商业用途提供免费许可。对于业余爱好/非营利组织/教育目的,这似乎是一个不错的选择。
我选择了哪个选项?
由于我对这项服务的使用主要是为了娱乐,尽管希望能够帮助我们的学生,我选择了最简单的解决方案,即未文档化的 Google 翻译实现。由于这是一个未文档化的功能,因此存在服务可能在未来停止的风险。如果发生这种情况,我可能会转向 ResponsiveVoice - 但实际上,我非常想尝试他们的服务,也许如果我符合非商业免费许可的资格,可以将解决方案迁移到它。如果发生这种情况,我会在另一篇文章中写下我的经验!
好了,今天就到这里。回头见!