使用AWS Polly合成超过1500个字符?

时间:2016-12-25 01:01:51

标签: amazon-web-services amazon-polly

我的想法是使用AWS PollyRSS Feed中大声朗读一些新闻。根据{{​​3}},我理解Polly在要转换的字符方面非常灵活,其中一个示例是"Adventures of Huckelberry Finn" by Mark Twain ~600k characters 问题是,当我尝试将文章转换为语音时,我收到以下错误:

An error occurred (TextLengthExceededException) when calling the SynthesizeSpeech operation: Maximum text length has been exceeded

我试图转换的文字大约有5000个字符。

有没有办法(有或没有API)用Polly转换长文本字符串而不必将它们分成几百万个不同的部分?

任何有正确方向的小贴士都会受到赞赏,

由于

4 个答案:

答案 0 :(得分:2)

  

输入文字的大小最多可为1500个结算字符(总共3000个字符)。 SSML标记不计入结算字符。

     

http://docs.aws.amazon.com/polly/latest/dg/limits.html

pricing examples似乎是为了让人们了解发表大型作品的成本相对较低,但这项工作实际上需要分成几组句子并提交给API,即只有接口 - SDK和CLI调用相同的SynthesizeSpeech API。

答案 1 :(得分:1)

我没有特别的提示,没有分解文本,但我写了一篇文章,在NodeJS中做到这一点。如果您没有其他选择,请随时查看并发表评论!

How to handle more than 1500 characters with AWS Polly text-to-speech

答案 2 :(得分:1)

我相信你已经找到了答案,或者现在已经开始了。 但是我想在将来帮助这个问题。

我使用AWS Polly时遇到了同样的问题,不让我一次发送超过1500个字符。所以我写了一些javascript来帮助将文本分成230个字块,然后一个接一个地发送到API然后将所有mp3文件拼接在一起,然后我将它缓冲并播放。

这是我的Github: https://github.com/Aaronbest94/Polly-Character-Limitations

它不是最优雅的Javascript它可以工作,我希望它将帮助任何人在将来阅读这篇文章。

答案 3 :(得分:0)

如何创建长音频文件已在文档中创建:https://docs.aws.amazon.com/polly/latest/dg/longer-cli.html

aws-CLI调用可能如下所示:

aws polly start-speech-synthesis-task \
--region eu-central-1 \
--endpoint-url "https://polly.eu-central-1.amazonaws.com/" \
--output-format mp3 \
--output-s3-bucket-name your-bucket-name \
--output-s3-key-prefix optional/prefix/path/file \
--voice-id Hans \
--text-type ssml \
--text file://output.xml \
--speech-mark-types='["sentence", "word", "ssml"]' \

如您所见,您将需要一个S3-bucket用于(临时)存储。