☰
千问语音合成文件不能播放:区分 JSON 响应与音频下载
2026/10/15 14:49:53 网站建设 项目流程

千问语音合成已经返回成功,保存出来的“音频”却不能播放,先检查你保存的是声音文件还是接口 JSON。本文针对百炼北京地域 Qwen-Audio-TTS 非流式调用,用一句虚构播报跑通请求、取下载地址与保存文件三个步骤。依据 2026 年 10 月 15 日官方资料整理,未在读者账号实测,API 调用可能产生费用。

1. JSON 响应不是可以直接播放的音频

非流式合成接口返回一个描述结果的对象,其中包含完整音频的下载地址。把这份 JSON 文本写进 demo.wav,不会把它变成 WAV 音频;修改扩展名也不会转换内容格式。

当前官方 Qwen-Audio-TTS HTTP 文档说明,完整音频地址位于 output.audio.url,有效期为二十四小时,非流式时 audio.data 为空。HTTP API 参考 首次任务可先采用非流式,不处理音频分块和实时播放。

最短路线是:调用合成接口,确认成功与正常结束,取出下载地址,及时下载声音文件,再试听内容。每一步都有独立产物,接口返回成功与本地文件保存成功需要分别确认。

本文采用当前官方示例中的 qwen-audio-3.0-tts-flash 与系统音色 longanhuan_v3.6,输出显式指定 wav 和 24000 采样率。音色与模型的可用组合应以当前账号及文档为准,不能把另一系列的音色名随意混用。

2. 用一句测试播报取得结果地址

准备一个测试目录,创建 request.json。这里不放真实姓名、联系方式或业务通知,使用下面自行编写的短文本。

{"model":"qwen-audio-3.0-tts-flash","input":{"text":"这是一条测试播报,演示编号是三十六。","voice":"longanhuan_v3.6","format":"wav","sample_rate":24000}}

在自己的终端设置 DASHSCOPE_API_KEY 和 TTS_ENDPOINT。后者从北京业务空间配置获取,应是 SpeechSynthesizer 完整接口地址,不能使用聊天补全接口或另一系列的合成端点。请求示例在测试目录运行:

curl--fail-with-body --max-time90\-H"Authorization: Bearer$DASHSCOPE_API_KEY"\-H'Content-Type: application/json'\--data-binary @request.json\"$TTS_ENDPOINT"-oresponse.json

示例未实际发起请求,也没有展示虚构成功日志。运行后先查看 HTTP 状态与 response.json;合成失败时停止,不进入下载步骤。确认 output.finish_reason 正常结束,再找到 output.audio.url。

不要在文章评论里粘贴真实密钥或带签名的下载地址。后者虽然有时效,也可能在有效期内允许别人下载你的音频。求助时保留字段名与脱敏请求编号即可。

3. 将声音文件与结果说明分别保存

把刚取得的音频 URL 在自己的浏览器中打开,使用正常下载功能保存为 test-36.wav。也可以用你已有的可信下载工具,但不要对网上任意给出的 URL 自动下载并执行。本文不运行第三方下载脚本。

如果使用终端下载,先核对它确实是本次接口返回的音频地址,再把它作为一个完整、带引号的参数传入下载工具。不要去掉查询参数,因为签名和过期时间可能就在其中;也不要在下载请求上附带合成 API 的认证头。

下载后查看文件大小与实际类型。文本编辑器打开后出现 JSON 或错误 XML,说明保存了错误响应,不能因为名字以 wav 结尾就算成功。正常 WAV 通常包含 RIFF 与 WAVE 格式标识,但格式标识正确也不代表内容完整,最终仍要试听。

文件或字段用途不应做什么
response.json保存合成结果说明改名当作音频播放
output.audio.url在有效期内取得完整文件当成永久业务地址
test-36.wav下载后的声音文件只凭扩展名判断成功
expires_at判断地址时效忽略过期继续反复下载

官方非实时合成指南也区分非流式文件地址与流式音频数据。非实时语音合成指南 两种输出不能用同一个“把所有内容写成 WAV”的办法处理。

4. 下载失败、播放失败与读音问题分开查

地址已经过期,不要先修改播放器;应根据自己的任务记录判断是否需要重新合成。重新合成可能再次计费,因此先确认是否已有本地文件或业务存储副本,不因为某次下载失败就循环发起合成。

下载得到空文件,查看下载状态和是否发生中断。文件非空但播放器拒绝,检查实际格式是否与请求一致,以及是否误保存了错误页面。没有完成下载的部分文件,应明确标为未完成,不要作为正式素材交付。

能播放但内容不对,核对本次输入文本与文件对应关系。多个测试文件使用不同编号,能避免把旧音频当作新结果。若只改文本却继续打开旧下载地址,听到旧内容并不是模型忽略新请求。

读音不符合预期属于合成质量问题,需要检查语言、音色和文本表达;它与文件能否下载是不同层次。首次只用简短普通中文,等文件链路稳定后,再加入多音字、缩写、情绪和长句等控制变量。

5. 给首次任务定义一个完整结束点

验收至少包括:合成请求成功、取得未过期地址、下载得到正确格式文件、试听能听见测试编号。只记录请求成功会遗漏保存环节;只看到播放器开始播放,也不代表声音已经完整保存到本地。

如果后续要长期使用,把下载后的声音文件存入你有权限的业务存储,并记录生成参数与来源。服务返回的临时链接不应直接成为长期页面里的唯一素材地址,否则过期后页面就可能失去声音。

保留模型名、音色、格式、采样率、生成时间和请求编号,方便区分不同版本。对外使用时说明音频为 AI 合成,沿用相关平台的标识要求。本文只使用系统音色,不涉及模仿真实人物声音。

试听时从头播放到结尾,确认最后的编号没有截断。若音频能打开但只播出开头,仍应视作任务未完成,核对输入文本、正常结束状态和下载完整性。保存后的文件应使用独立名称,避免新测试覆盖仍需要保留的旧素材。

第一次跑通后,再考虑自动下载与批量任务,并为失败重试设置明确边界。文件接口最容易混淆的是“收到说明”和“拿到文件”;把两者拆开验证,能让不能播放的问题更快定位。

参考资料

  • Qwen-Audio-TTS HTTP API,阿里云百炼,更新时间未显示。
  • 非实时语音合成,阿里云百炼,更新时间未显示。访问于 2026-10-15。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询