You need to enable JavaScript to run this app. Windows 10下IBM Watson Text to Speech curl示例生成的音频无声音
优惠活动
大模型
产品
解决方案
定价
更多

Windows 10下IBM Watson Text to Speech curl示例生成的音频无声音

无法生成可播放的IBM Watson Text to Speech音频的修正方案

问题根源

当前使用的curl请求存在两处硬性错误,最终写入本地的文件并非有效音频数据,无法正常播放:

  • 已声明Content-Type: application/json请求头,但实际传输的请求体不符合JSON语法规范
    • 原请求传入的内容为text:hello world形式的纯文本键值对,并非合法JSON结构,服务端会直接返回包含报错信息的JSON文本响应,而非音频二进制流。这部分文字响应被强行写入带音频后缀的本地文件,文件本质是错误提示文本,不存在任何音频编码数据。
  • 缺失指定返回音频格式的Accept请求头
    • IBM Watson Text to Speech接口完全依赖Accept头的取值判断需要返回的音频编码格式,未显式指定时,接口不会自动匹配你本地设置的输出文件后缀,大概率返回格式不兼容的内容甚至错误响应。

可正常生成可播放音频的修正命令

curl -X POST \
  -u "apikey:{你的API密钥}" \
  --header "Content-Type: application/json" \
  --header "Accept: audio/ogg; codecs=opus" \
  --data '{"text": "hello world"}' \
  --output hello_world.ogg \
  "{你的服务实例地址}/v1/synthesize/"

关键调整说明

  • 将原请求体替换为符合JSON规范的字符串,匹配已设置的Content-Type要求,确保服务端能正确解析待合成的文本内容
    • Windows cmd环境下,JSON字符串内的双引号需要做转义处理,对应写法为--data "{\"text\": \"hello world\"}"
    • Windows PowerShell环境下,可直接使用单引号包裹JSON内容,写法为--data '{"text": "hello world"}'
  • 新增对应目标格式的Accept请求头,不同格式对应取值调整即可:
    • 生成MP3文件:将Accept值替换为audio/mp3,同时把--output的文件后缀改为.mp3
    • 生成WAV文件:将Accept值替换为audio/wav,同时把--output的文件后缀改为.wav
    • 生成OGG文件:保留Accept: audio/ogg; codecs=opus,和当前设置的输出文件后缀匹配

快速排查方法

如果调整完参数仍无法正常播放,可暂时去掉--output参数,直接在终端查看接口返回内容:如果返回内容是不可读的二进制乱码,说明是正常音频流;如果返回是带字段的可读JSON文本,说明仍存在参数错误,可直接根据返回的报错提示修正。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.25 15:15:04