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

Python 3运行sample_wave.py报错:无法创建语音处理器

解决SoundHound Voice端点返回"音频不支持"错误的方案

这个错误核心是SoundHound服务无法识别你发送的WAV文件格式,我来给你梳理几个必查的调整点,按顺序排查应该能解决:

1. 确认WAV文件的音频参数是否符合要求

SoundHound的Voice接口对音频格式有严格要求,通常需要满足:

  • 采样率:16kHz(最常用,部分接口支持8kHz,但优先用16kHz)
  • 位深:16位(PCM编码,不能是压缩格式)
  • 声道:单声道(Mono)
  • 编码格式:无压缩的PCM(也就是WAV的标准未压缩格式,不能是MP3转的WAV或者其他压缩变体)

你可以用ffmpeg命令快速查看音频参数:

ffmpeg -i your_audio.wav

如果参数不符合,用ffmpeg转码:

ffmpeg -i your_audio.wav -ar 16000 -ac 1 -sample_fmt s16le corrected_audio.wav

2. 检查请求头的Content-Type是否正确

发送请求时,必须在HTTP头里指定正确的音频类型,对于未压缩的WAV,应该设置:

headers = {
    'Content-Type': 'audio/wav',
    # 别忘了加上你的API密钥等必填头信息
    'SoundHound-Client-ID': 'YOUR_CLIENT_ID'
}

如果Content-Type填错(比如填成audio/mpeg或者没设置),服务端会无法正确解析音频。

3. 验证音频数据的发送方式是否正确

在Python里发送WAV文件时,要确保你是读取二进制数据发送,而不是文本模式。比如:

import requests

url = "YOUR_SOUNDHOUND_VOICE_ENDPOINT"
headers = {'Content-Type': 'audio/wav', 'SoundHound-Client-ID': 'YOUR_ID'}

with open('corrected_audio.wav', 'rb') as f:
    audio_data = f.read()

response = requests.post(url, headers=headers, data=audio_data)

如果用'r'模式读取,会把二进制音频当成文本处理,导致数据损坏,服务端自然无法识别。

4. 检查sample_wave.py里的音频处理逻辑

如果是用官方示例代码,确认代码里有没有对音频做额外的压缩或格式转换,比如有些示例可能会默认处理成其他格式,你需要修改参数匹配SoundHound的要求。比如如果代码里有设置采样率的地方,改成16kHz,声道设为单声道。

最后测试

调整完以上几点后,用修正后的WAV文件重新发送请求,应该就能正常创建语音处理器了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:16:10