我们有一些校对的.srt文件,我们想从他们产生音频由AWS。根据AWS Polly上的引用,Polly的输入类型要么是纯文本,要么是SSML增强文本。有办法将.srt文件转换为SSML增强型文本吗?
我们希望使用.srt文件,因为它们是校对的,它们在文件中记录“音频暂停”信息。例如:
1
00:00:04,960 --> 00:00:06,880
- [Instructor] Bacteria
are able to inhabit
2
00:00:06,880 --> 00:00:09,220
almost every environment on Earth,
3
00:00:09,500 --> 00:00:12,740
from desert tundra to
tropical rainforests.在00:00:09220到00:00:09,500之间有一个缺口,这是我们拥有的“音频暂停”信息。
AWS Polly参考资料:https://docs.aws.amazon.com/polly/latest/dg/ssml-to-speech-console.html
如果无法将.srt转换为SSML增强型文本,我是否应该解析.srt文件以生成Polly能够理解的SSML增强文本?
发布于 2021-02-14 23:17:08
如果您的最终目标是通过Amazon将SRT (视频字幕)发送到音频,我猜这在理论上是可能的,但是SSML并不是真正适合这项工作的(因为您不能保证多行(开始/停止/暂停/等等)的时间安排,以便在与视频配对时可以接受它)。你可能需要
<prosody amazon:max-duration>标签。从当前行减去下一行的开始时间,计算最大持续时间。
不管怎么说,如果你没有使用Polly &有一个自由源码的解决方案SRT到音频,我想听。
发布于 2022-12-01 20:17:52
我已经创建了一个python脚本来实现它:https://github.com/ThioJoe/SRT-To-SSML
它使用duration属性(对于prosody标记)和break标记,理论上使演讲与原始字幕同步。
然而,仍有一些限制需要记住:
duration属性可以与prosody标记一起使用来指定特定的语音应该持续多长时间,但似乎大多数服务都不支持它。amazon:max-duration属性将加快语音速度,但不会减缓它的速度,这意味着它仍然可能与原来的字幕不同步。如果使用整个ssml文件不起作用,我可以想到的一种“蛮力”方法是将字幕的每一行生成为一个单独的音频文件,然后使用一些可以根据相应字幕行的持续时间拉伸或缩小每个文件的内容。然后,您必须使用等于每个字幕行时间戳之间的差异的空沉默。然后将它全部缝合到一个音频文件中。不过,还不确定需要什么样的工具。
https://stackoverflow.com/questions/58958478
复制相似问题