You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PHP调用Amazon Polly返回的AudioStream始终为空问题求助

问题根因

你调用synthesizeSpeech接口时指定的OutputFormat参数为json,但未同时传入SpeechMarkTypes参数指定需要返回的语音标记类型,因此接口返回空的音频流。
json格式输出仅用于返回语音标记元数据(如单词边界、句子边界、音素时间戳等),并非直接返回可播放的音频内容,使用该格式时必须搭配SpeechMarkTypes参数指定要获取的标记类型,否则接口不会返回任何有效内容。

修复方案

场景1:需要生成可播放的音频文件

将OutputFormat参数修改为mp3/ogg_vorbis/pcm这类音频格式即可,对应修改保存文件的后缀,示例修改代码:

try {
    $result = $client->synthesizeSpeech([
        'Text' => 'Hello',
        'OutputFormat' => 'mp3', // 替换原有json值
        'VoiceId' => 'Joanna',
    ]);

    $data = $result->get('AudioStream')->getContents();
    $file = fopen('test.mp3','w+');
    fwrite($file,$data);
    fclose($file);

} catch (AwsException $e) {
    echo $e->getMessage() . "\n";
}

场景2:确实需要获取json格式的语音标记

补充SpeechMarkTypes参数指定需要的标记类型即可,可选值包括word、sentence、ssml、viseme,示例修改代码:

$result = $client->synthesizeSpeech([
    'Text' => 'Hello',
    'OutputFormat' => 'json',
    'VoiceId' => 'Joanna',
    'SpeechMarkTypes' => ['word', 'sentence'] // 补充该参数
]);

你在.NET SDK下遇到的相同问题也是同样的参数配置错误,调整对应参数即可正常获取返回内容。


内容的提问来源于stack exchange,提问作者AaA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 04:36:03