如何解决亚马逊 AWS Polly:TTS 确切持续时间
在亚马逊 AWS Polly 中,有一个 SSML 标签 <prosody amazon:max-duration="time duration">
用于设置语音的最长持续时间 (https://docs.aws.amazon.com/polly/latest/dg/supportedtags.html#maxduration-tag)。这样我就可以加快演讲速度。
是否还可以设置最小持续时间(并在没有讲话的情况下填充休息时间 - 不拉伸讲话),以便最大持续时间和最小持续时间的组合是精确的持续时间?
我的用例是这个
系统应该以固定的间隔读取段落,以便匹配视频序列。让我们每 10 秒说一个句子。
可能的解决方法 A
首先,我可以为文本(例如 "<speak>Hello World! How are you?</speak>"
)生成一个语音标记文件,没有任何中断。这可能会导致这样的事情:
{"time":0,"type":"sentence","value":"Hello World!"}
{"time":840,"value":"How are you?"}
{"time":1265,"type":"viseme","value":"sil"}
然后我可以计算并添加一些中断,以便句子时间填满间隔(在这种情况下为 10 秒减去 840 毫秒 = 9160 毫秒):"<speak>Hello World!<break time="9160ms"/>How are you?<break time="9575ms"/></speak>"
这应该导致这样的事情:
{"time":0,"value":"Hello World!"}
{"time":10000,"value":"How are you?"}
{"time":20000,"value":"sil"}
这种方法的问题在于它使用了两个请求,因此需要双倍的费用。
可能的解决方法 B
我可以为每个句子生成一个 ogg 文件,并使用外部工具将所有 ogg 文件组合成一个完整的音频文件(我还不知道 - 也许 ffmpeg 有一些功能?)。
这种方法的问题在于发音不同,因为 Polly 不知道有一个完整的句子。示例:同一 Polly 请求中的 Hello world,how are you?
听起来可能与两个单独请求中的 Hello world
加 How are you?
不同。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。