Spring AI支持语音识别功能,目前仅支持OpenAI的Transcription模型。
-
项目搭建:
参考 Spring AI 介绍以及与 Spring Boot 项目整合
-
源码示例:
@RestController
@RequestMapping("/openai")
public class OpenAiIAudioTranscriptionController {
@Resource
private OpenAiAudioTranscriptionModel transcriptionModel;
@GetMapping("/audio/transcription")
public String transcription() throws UnsupportedEncodingException, FileNotFoundException {
// 创建音频文件对象
File audioFile = new File("d:\\jfk.flac");
// 将音频文件转换为资源
org.springframework.core.io.Resource audioResource = new FileSystemResource(audioFile);
// 创建OpenAi音频转录选项
OpenAiAudioTranscriptionOptions transcriptionOptions = OpenAiAudioTranscriptionOptions.builder()
.withResponseFormat(OpenAiAudioApi.TranscriptResponseFormat.TEXT)
.withTemperature(0f)
.build();
// 创建音频转录提示
AudioTranscriptionPrompt transcriptionRequest = new AudioTranscriptionPrompt(audioResource, transcriptionOptions);
// 调用转录模型
AudioTranscriptionResponse response = transcriptionModel.call(transcriptionRequest);
// 打印转录结果
System.out.println(response.getResult().getOutput().getBytes("UTF-8").toString());
// 返回转录结果
return response.getResult().getOutput().toString();
}
}
要特别注意的是:
你的openai.api-key一定要支持whisper模型的调用,否则就会出现正面尴尬的情况:
详情可以查询Spring AI 的官网