Spring AI 调用 openAI 进行语音识别

news/2024/10/18 12:21:31/

Spring AI支持语音识别功能,目前仅支持OpenAI的Transcription模型。

  1. 项目搭建

    参考 Spring AI 介绍以及与 Spring Boot 项目整合

  2. 源码示例


@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 的官网


http://www.ppmy.cn/news/1470481.html

相关文章

SpingBoot快速入门下

响应HttpServietResponse 介绍 将ResponseBody 加到Controller方法/类上 作用:将方法返回值直接响应,如果返回值是 实体对象/集合,将会自动转JSON格式响应 RestController Controller ResponseBody; 一般响应 统一响应 在实际开发中一般…

Mybatis中BaseEntity作用

新建各种对象的时候,一般来说,有几个属性是所有对象共有的,比如说id,is_del,is_enable这些,然后设置一个基础对象,以后新建所有对象的时候都继承它,就省的每次都要写这些共有的属性了

【运维项目经历|033】高性能LBC负载均衡集群优化项目

🍁博主简介: 🏅云计算领域优质创作者 🏅2022年CSDN新星计划python赛道第一名 🏅2022年CSDN原力计划优质作者 🏅阿里云ACE认证高级工程师 🏅阿里云开发者社区专家博主 💊交流社区:CSDN云计算交流社区欢迎您的加入! 目…

celery使用 Zookeeper 或 kafka 作为broker,使用 mysql 作为 backend

背景介绍: 先贴上celery官方文档:Celery - Distributed Task Queue — Celery 5.4.0 documentation xxx项目中单点环境运行celery + redis,使用流畅,不做过多介绍。 切换高可用环境时,客户redis使用的是cluster集群,官方文档中并没有对redis cluster的支持,查看githu…

查询SQL 人大金仓 与MySQL的区别

查询SQL 人大金仓 与MySQL的区别&#xff0c;以若依为例 最常见 时间范围 1.人大金仓 Kingbase <select id"selectUserListByOrgIds" parameterType"SysUser" resultMap"SysUserResult">select u.user_id, u.dept_id, u.nick_name,u.tj_…

前端面试题日常练-day78 【面试题】

题目 希望这些选择题能够帮助您进行前端面试的准备&#xff0c;答案在文末 在Sass中&#xff0c;以下哪个功能用于创建一个循环&#xff1f; a) extend b) for c) import d) include Sass中的混合器&#xff08;Mixins&#xff09;可以包含以下哪些内容&#xff1f; a) 样式规…

使用 CTranslate2 实现 Faster Whisper 的加速转录

使用 CTranslate2 实现 Faster Whisper 的加速转录 近年来&#xff0c;语音识别技术得到了快速发展。OpenAI 的 Whisper 模型作为其中的佼佼者&#xff0c;以其高精度和强大的性能广受欢迎。然而&#xff0c;其较长的推理时间和高内存消耗也成为了限制其应用的一大因素。为了解…

Shiro721 反序列化漏洞(CVE-2019-12422)

目录 Shiro550和Shiro721的区别 判断是否存在漏洞 漏洞环境搭建 漏洞利用 利用Shiro检测工具 利用Shiro综综合利用工具 这一篇还是参考别的师傅的好文章学习Shiro的反序列化漏洞 上一篇也是Shiro的反序列化漏洞&#xff0c;不同的是一个是550一个是721&#xff0c;那么这…