在前端开发过程中,使用文本转语音技术可以为用户提供更加友好的交互体验。而 Amazon Polly 的 SSML 语言可以实现高质量的语音合成效果。但是,手写 SSML 语言的难度较高,因此我们可以借助 npm 包 polly-ssml-builder 来快速创建 SSML 文本。
什么是 polly-ssml-builder?
polly-ssml-builder 是一个可以快速创建 Amazon Polly SSML 文本的 npm 包。它包括了一个建造者和一组实用工具,可以帮助用户轻松地创建符合规范的 SSML 文本。
polly-ssml-builder 的安装
在使用 polly-ssml-builder 之前,必须安装 Node.js 和 npm。首先打开命令行终端,执行以下命令来安装 polly-ssml-builder。
--- ------- ------------------
polly-ssml-builder 的使用
polly-ssml-builder 使用建造者模式创建 SSML 文本。使用建造者模式可以简化创建复杂对象的过程,并且可以逐步构建对象的各个属性。
创建一个简单的 SSML 文本
以下代码展示了如何创建一个简单的 SSML 文本,并将它传递给 Amazon Polly 进行语音合成。
----- - ------------ - - ------------------------------ ----- ---- - --------------- ----- -------- - --- ------------------------------------- -- -------- -------- --- ------ ----- -------
首先,我们引入了 polly-ssml-builder 的 PollyBuilder 类。然后,我们创建了一个新的 PollyBuilder 对象,添加了一个简单的文本,最后使用 build() 方法来生成 SSML 文本。
创建一个包含语调的 SSML 文本
以下代码展示了如何创建一个包含语调的 SSML 文本,其中“你好”部分以高兴的语调说出,“欢迎来到我的网站”部分以普通语调说出。
----- - ------------ - - ------------------------------ ----- ---- - --------------- ----- -------- - --- -------------- ------------------------- ---------- -------------- --------- -- -------- -------- --- ------ ----- -------
可以看到,在该代码中,我们使用了 addTextWithEmotion() 方法来指定“你好”部分的语调。此外,因为没有指定“欢迎来到我的网站”部分的语调,所以它默认使用普通语调。
创建一个包含感叹和拼音的 SSML 文本
以下代码展示了如何创建一个包含感叹和拼音的 SSML 文本,其中“你好”部分以高兴的语调说出,并且结尾以“哦!”感叹结尾。
----- - ------------ - - ------------------------------ ----- ---- - --------------- ----- -------- - --- -------------- ------------------------- ---------- -------------- ------------------ -------------------- ---- ----- --------- -- -------- -------- --- ------ ----- -------
在该代码中,我们使用了 addTextWithEmotion() 方法来指定“你好”部分的语调。然后,我们使用 addText() 方法添加了“哦!”感叹。接下来,我们使用 addBreak() 方法添加了断句,以使语音效果更自然。最后,我们使用 addPhoneme() 方法为“你好”部分的“ni hao”添加了 ɪː haʊ 的拼音。
结论
polly-ssml-builder 可以帮助我们快速创建符合规范的 Amazon Polly SSML 文本,并使语音效果更加自然。从文本到语音的转换可以使我们的网站更加友好且易于操作。尝试使用 polly-ssml-builder 来为你的网站添加语音效果,让用户享受更优秀的交互体验吧!
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/60055da781e8991b448db67d