【SIS服务】一句话识别,报错SIS.0032,怎么办?
参考:https://support.huaweicloud.com/sis_faq/sis_04_0018.html
1、报错示例

2、可能存在的问题

3、解决方案

path参数为待识别的音频文件,无法控制采样率是8k,16k。
使用下面的程序判断客户上传的音频采样率,然后,采用不同的参数调用一句话识别API。
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class WavSampleRateChecker {
public static void main(String[] args) {
File wavFile = new File("path/to/your/audio.wav");
int sampleRate = getSampleRate(wavFile);
if (sampleRate == -1) {
System.out.println("无法读取文件或文件格式不正确。");
} else {
System.out.println("采样率为: " + sampleRate + " Hz");
}
}
public static int getSampleRate(File wavFile) {
try (FileInputStream fis = new FileInputStream(wavFile)) {
byte[] buffer = new byte[28]; // 读取前28个字节,足够获取采样率信息
int bytesRead = fis.read(buffer);
if (bytesRead == 28) {
// 检查是否是WAV文件(RIFF标识)
if (buffer[0] == 'R' && buffer[1] == 'I' && buffer[2] == 'F' && buffer[3] == 'F' &&
buffer[8] == 'W' && buffer[9] == 'A' && buffer[10] == 'V' && buffer[11] == 'E') {
// 从第24-27字节读取采样率
return (buffer[24] & 0xFF) | ((buffer[25] & 0xFF) << 8) |
((buffer[26] & 0xFF) << 16) | ((buffer[27] & 0xFF) << 24);
}
}
} catch (IOException e) {
e.printStackTrace();
}
return -1; // 返回-1表示读取失败或文件格式不正确
}
}
- 点赞
- 收藏
- 关注作者
评论(0)