Spring AI 调用 openAI 进行语音朗读(文本转语音,TTS)

  1. 项目搭建

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

  2. 编写 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 的官网

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/35699.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多接口分线盒在工业自动化中的重要性与应用

简介 多接口分线盒是现代工业自动化中不可或缺的一个组成部分,它主要用于简化复杂的接线系统,提高效率和可靠性。本文将详细探讨多接口分线盒的定义、功能、以及在工业自动化中的应用情况。 无源多接口分线盒 多接口分线盒的定义与功能 多接口分线盒是…

嵌入式工程师从0开始,到底该学什么,怎么学

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「嵌入式的资料从专业入门到高级教程」, 点个关注在评论区回复“666”之后私信回复“666”,全部无偿共享给大家!!!嵌入式是个大筐&#xff0…

基于springboot实现宠物商城网站管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现宠物商城网站管理系统演示 摘要 传统信息的管理大部分依赖于管理人员的手工登记与管理,然而,随着近些年信息技术的迅猛发展,让许多比较老套的信息管理模式进行了更新迭代,商品信息因为其管理内容繁杂&#xff…

Windows Nginx更新版本

一、准备新版安装包 nginx: downloadhttps://nginx.org/en/download.html 二、升级Nginx 1、备份原Nginx 2、上传新版Nginx 上传并解压 3、更新版本 1)原文件夹更新 1.关闭nginx 查看原版本号 nginx -v 命今关闭 nginx -s stop 确认进程里没有nginx&#…

【每日刷题】Day76

【每日刷题】Day76 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. 561. 数组拆分 - 力扣(LeetCode) 2. 删除有序链表中重复的元素-II_牛客题霸…

论文学习_基于导向式模糊测试的二进制程序漏洞验证方法

1. 引言 研究背景及现存问题:基于代码相似性比较的漏洞检测方法属于静态分析方法,不可避免地存在误报率高的问题,对静态检测方法得到的疑似漏洞代码进行人工分析存在工作量大, 效率低的问题。解决该问题的有效的方案之一是使用导向式模糊测试方法,生成能够执行到疑似漏洞…

【FFmpeg】avformat_open_input函数

【FFmpeg】avformat_open_input函数 1.avformat_open_input1.1 初始化输入格式(init_input)1.1.1 文件路径判断格式(av_probe_input_format2)1.1.1.1 格式探测(read_probe)1.1.1.2 扩展匹配检查&#xff08…

Pyecharts进阶篇

欢迎观看Pyecharts部分,上一节:Pyecharts入门-CSDN博客 本章节,我们会使用全国空气质量数据呈现中国地图,还会使用全球各个国家或地区GDP数据绘制全球地图。 全国空气质量分布图 数据准备 import pandas as pd import numpy a…

树莓派4B_OpenCv学习笔记13:OpenCv颜色追踪_程序手动调试HSV色彩空间_检测圆

今日继续学习树莓派4B 4G:(Raspberry Pi,简称RPi或RasPi) 本人所用树莓派4B 装载的系统与版本如下: 版本可用命令 (lsb_release -a) 查询: Opencv 版本是4.5.1: OpenCv颜色追踪_程序手动调试HSV色彩空间_检测灰度图中的…

AI新热点:边云协同:大模型结合小模型(大小模型联合推理)

背景 AI模型规模不断剧增已是不争的事实。模型参数增长至百亿、千亿、万亿甚至十万亿,大模型在算力推动下演变为人工智能领域一场新的“军备竞赛”。 这种竞赛很大程度推动了人工智能的发展,但随之而来的能耗和端侧部署问题限制了大模型应用落地。2022…

非极大值抑制算法(Non-Maximum Suppression,NMS)

https://tcnull.github.io/nms/ https://blog.csdn.net/weicao1990/article/details/103857298 目标检测中检测出了许多的候选框,候选框之间是有重叠的,NMS作用重叠的候选框只保留一个 算法: 将所有候选框放入到集和B从B中选出分数S最大的b…

VBA技术资料MF168:移动工作表为单独工作簿

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套,分为初级、中级、高级三大部分,教程是对VBA的系统讲解&#…

eventbus和vuex

EventBus和Vuex EventBus 工作原理 创建一个vue实例,然后通过空的vue实例作为组件之间的桥梁,进行通信,利用到的设计模式有发布订阅模式 Vuex 工作原理 维护了一个state树,是独立的状态树,有明显的层级关系。不论…

云计算-期末复习题-框架设计/选择/填空/简答(2)

目录 框架设计 1.负载分布架构 2.动态可扩展架构 3.弹性资源容量架构 4.服务负载均衡架构 5.云爆发结构 6.弹性磁盘供给结构 7.负载均衡的虚拟服务器实例架构 填空题/简答题 单选题 多选题 云计算期末复习部分练习题,包括最后的部分框架设计大题(只是部分…

AI办公自动化:多音频轨电影视频抽取出英语音频

很多电影视频是有中、英、粤语等多个音频轨的,如果直接转换成音频,很有可能不是自己想要的那种语音。 可以先查看音频流信息,确定属于哪个音频轨: Reading video file: E:\1-7\比得兔1.mp4 输出音频流信息 Available audio str…

利用viztracer进行性能分析和优化

上一篇文章,我们详细讲解了scalene这个性能分析和优化工具的使用流程;今天,我们将深入探讨另一个性能分析和优化工具——viztracer。 什么是viztracer? viztracer是一个非常强大的分析器,可以生成详细的性能报告和可…

设计师进阶指南:掌握这6条版式设计要点

布局设计是设计师的必修课。优秀的排版不是强制性的“东拼西凑”,而是通过设计师独特的排版获得的。这不是简单的信息列表,而是认真思考如何分层、有节奏地组织和安排元素。今天我将给你带来它 6 文章还附带了布局设计模板资源,设计师朋友一定…

EthernetIP IO从站设备数据 转opc ua项目案例

1 案例说明 设置网关采集EthernetIP IO设备数据把采集的数据转成opc ua协议转发给其他系统。 2 VFBOX网关工作原理 VFBOX网关是协议转换网关,是把一种协议转换成另外一种协议。网关可以采集西门子,欧姆龙,三菱,AB PLC&#xff0…

Element 页面滚动表头置顶

在开发后台管理系统时,表格是最常用的一个组件,为了看数据方便,时常需要固定表头。 如果页面基本只有一个表格区域,我们可以根据屏幕的高度动态的计算出一个值,给表格设定一个固定高度,这样表头就可以固定…

红酒达人教你秘技:选酒、存酒,一招一式皆学问

在繁忙的都市生活中,红酒不仅仅是一种饮品,更是一种生活态度,一种品味的象征。然而,面对琳琅满目的红酒品牌与种类,如何选择一瓶心仪的红酒,又如何妥善保存,使其保持很好口感,成为了…