-
项目搭建:
参考 Spring AI 介绍以及与 Spring Boot 项目整合
-
编写 Controller 接口
- 创建一个 Controller 类,例如 TranscriptionController。
- 在该类中,注入 Resource。
- 编写一个接口,例如 //,用于处理语音转录请求。
- 在接口中,使用 OpenAiAudioSpeechOptions 配置参数,指定模型、语速等。
- 调用 client.call(speechPrompt 来获取语音转录结果。
@RestController
@RequestMapping("/openai")
public class OpenAiTtsController {@Resourceprivate OpenAiAudioSpeechModel openAiAudioSpeechModel;// 定义一个方法,用于获取TTS(语音合成)@GetMapping("/tts/generate")public String tts(@RequestParam(value = "message", defaultValue = "你好,我是Spring Ai?") String message) {// 创建一个OpenAiAudioSpeechOptions对象,用于设置语音合成选项OpenAiAudioSpeechOptions speechOptions = OpenAiAudioSpeechOptions.builder()// 设置模型名称.withModel("tts-1")// 设置发音人.withVoice(OpenAiAudioApi.SpeechRequest.Voice.ALLOY)// 设置语音响应格式.withResponseFormat(OpenAiAudioApi.SpeechRequest.AudioResponseFormat.MP3)// 设置语速.withSpeed(1.0f)// 构建OpenAiAudioSpeechOptions对象.build();// 创建一个SpeechPrompt对象,用于设置语音合成提示SpeechPrompt speechPrompt = new SpeechPrompt(message, speechOptions);// 调用openAiAudioSpeechModel对象的call方法,获取语音响应SpeechResponse response = openAiAudioSpeechModel.call(speechPrompt);// 打印语音响应System.out.println(response.getResult().getOutput().toString());// 返回语音响应return response.getResult().getOutput().toString();}
}
要特别注意的是:
你的openai.api-key一定要支持tts-1模型的调用,否则就会出现正面尴尬的情况:
详情可以查询Spring AI 的官网