65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIconstarIconstarIconstarIcon

5.00/5 (1投票)

2021年4月7日

CPOL

2分钟阅读

viewsIcon

10246

文本转语音的一些可用选项

学习日语计数可能有点不直观,尤其是在处理较大的数字(超过 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 端点。不过,要使其正常工作,需要满足几个要求

  1. 您需要在文档主体中包含一个 <meta name="referrer" content="no-referrer">,或者在 Audio 标签中包含一个 rel="noreferrer"
  2. 您需要在请求中指定一个 client。Stack Overflow 和一些其他博客中经常提到 tw-ob 这个值,但看起来任何值都可以。
  3. 您可以使用 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 - 但实际上,我非常想尝试他们的服务,也许如果我符合非商业免费许可的资格,可以将解决方案迁移到它。如果发生这种情况,我会在另一篇文章中写下我的经验!

好了,今天就到这里。回头见!

© . All rights reserved.