Spring AI支持语音识别功能,目前仅支持OpenAI的Transcription模型。
-
项目搭建:
参考 Spring AI 介绍以及与 Spring Boot 项目整合
-
源码示例:
@RestController
@RequestMapping("/openai")
public class OpenAiIAudioTranscriptionController {@Resourceprivate 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 的官网