WhisperClient 语音识别
java-openai 的 WhisperClient 将音频文件提交给 OpenAI 兼容的转写接口。本节介绍客户端调用;上传接口、缓存和存储的应用实现见 语音识别服务。
配置与调用
在应用配置中设置 OPENAI_API_KEY,需要自定义服务地址时设置 OPENAI_API_URL。先调用 EnvUtils.load(),再使用客户端。
import java.io.File;
import nexus.io.model.http.response.ResponseVo;
import nexus.io.openai.whisper.WhisperClient;
import nexus.io.openai.whisper.WhisperResponseFormat;
import nexus.io.tio.utils.environment.EnvUtils;
EnvUtils.load();
ResponseVo response = WhisperClient.transcriptions(
new File("data/audio.mp3"), WhisperResponseFormat.text);
if (!response.isOk()) {
throw new IllegalStateException("语音识别失败:" + response.getBodyString());
}
String text = response.getBodyString();
已有上传文件字节时,可以使用 WhisperClient.transcriptions(filename, audioBytes, WhisperResponseFormat.text),无需先写入临时文件。文件名应保留真实扩展名,用于确定音频内容类型。
默认调用通过 EnvUtils.get("OPENAI_API_KEY") 读取密钥。返回值是 ResponseVo,应先检查 isOk(),再读取 getBodyString();错误响应不能作为识别文本写入缓存。指定 JSON 响应格式时,响应体是 JSON,不能直接当成纯文本使用。
