0

我有一个包含 jquery 和 amazon SDK 的页面。区域框中有用户可以更改的文本。我成功向亚马逊提出请求。我取回 PCM AudioStream (Int16Array)。然后如何将此流转换为可下载的 PCM 文件?文件下载时,文件无用,无法播放。该文件的大小确实大于 0,所以这让我相信那里有数据。

<script>
    AWS.config.region = 'us-east-1';
    AWS.config.accessKeyId = 'CANDY';
    AWS.config.secretAccessKey = 'CANES';
    var polly = new AWS.Polly({apiVersion: '2016-06-10'});

    var params = {
        OutputFormat: 'pcm',
        Text: 'Text from the textbox',
        VoiceId: 'Joey',
        SampleRate: '16000',
        TextType: 'text'
    };

    polly.synthesizeSpeech(params, function(err, data) {
        if (err){
                console.log(err, err.stack); // an error occurred
        } else {
                var stream = new Int16Array(audioStream);
                var arrayBuffer = stream.buffer;
                var blob = new Blob([arrayBuffer], {type: 'audio/pcm'});
                var url = URL.createObjectURL(blob);
                .....set href for link to url.......
        }
    });
</script>
4

1 回答 1

0

如果您确定 url 对象是正确的(您可以从单独的浏览器选项卡中下载它吗?),我会使用 JQuery 来动态更改您的 DOM,按照这个答案How to change the href for a hyperlink using jQuery

于 2019-03-07T14:03:25.833 回答