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

Watson语音转文本:批量上传ZIP/tar.gz音频资源失败求助

我之前在处理Speech to Text自定义声学模型的批量音频上传时,也碰到过几乎一模一样的问题——Mac自带压缩工具的默认设置确实容易踩坑,结合你的情况,给你几个排查和解决的具体方向:

1. 先检查压缩包的内部结构

Speech to Text要求压缩包里的音频文件必须直接放在根目录,不能嵌套在子文件夹里。你可以在终端用命令快速查看压缩包内容:

  • 查看ZIP包结构:unzip -l your_upload.zip
  • 查看tar.gz包结构:tar -tzf your_upload.tar.gz
    如果输出显示所有MP3都被放在了一个同名子文件夹里(比如你先把文件放进文件夹再右键压缩),服务端肯定识别不到音频文件,得重新压缩确保文件都在根目录。

2. 剔除Mac自动生成的隐藏垃圾文件

Mac的右键压缩会偷偷把.DS_Store、._开头的系统隐藏元文件打包进去,这些文件会被服务端判定为无效内容,直接导致整个压缩包被拒绝。别用系统工具压缩了,改用终端命令生成压缩包,自动排除这些垃圾文件:

  • 生成仅包含MP3的ZIP包(当前目录下所有MP3):
    zip -r audio_batch.zip *.mp3
    
  • 生成仅包含MP3的tar.gz包:
    tar -czf audio_batch.tar.gz *.mp3
    

3. 确认cURL命令的Content-Type参数

单个MP3上传用的是audio/mpeg,但压缩包上传必须对应正确的Content-Type,这是很多人忽略的点:

  • ZIP包对应的Content-Type是application/zip
  • tar.gz包对应的是application/gzip
    给你一个完整的ZIP包上传cURL示例:
curl -X POST -u "apikey:YOUR_API_KEY" \
--header "Content-Type: application/zip" \
--data-binary @audio_batch.zip \
"https://api.us-south.speech-to-text.watson.cloud.ibm.com/instances/YOUR_INSTANCE_ID/v1/acoustic_models/YOUR_MODEL_ID/audio"

如果你的命令里误用了单个文件的Content-Type,服务端会无法解析压缩包,直接判定无效。

4. 排除Mac文件扩展属性的干扰

Mac系统会给文件添加一些扩展属性(xattrs),虽然概率不高,但有时候这些属性会导致服务端无法正常读取压缩包内的文件。生成tar.gz时可以加上--no-xattrs参数排除:

tar -czf --no-xattrs audio_batch.tar.gz *.mp3

建议按这个顺序排查,前两点是最常见的问题,应该能快速解决你的压缩包上传无效的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:36:03