当前位置: 首页 > news >正文

大模型文生图和语音转换的调用以及向量和向量数据库RedisStack.

文生图

我们用的很多的AI都可以给通过我们的描述来进行图形的生成,当然了阿里云的百炼平台也提供了API的调用供我们进行使用。大模型服务平台百炼控制台 我们通过文生图的大模型帮助文档就可以实现我们需要要求。

对于这个方法的使用,我们和前面一样,前面对于的是文本之间的对话,所以图片的生成我们依旧可以使用ImageModel相关的API


package ai.controller;
​
import com.alibaba.cloud.ai.dashscope.image.DashScopeImageOptions;
import jakarta.annotation.Resource;
import org.springframework.ai.image.ImageModel;
import org.springframework.ai.image.ImagePrompt;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
​
@RestController
public class TextImageController {public static final String IMAGE_MODEL="wanx2.1-t2i-turbo";
​@Resourceprivate ImageModel imageModel;
​@GetMapping("ImageModel/DoChat")public String DoChat(@RequestParam (name = "prompt",defaultValue = "苹果") String prompt) {return imageModel.call(new ImagePrompt(prompt, DashScopeImageOptions.builder().withModel(IMAGE_MODEL).build())).getResult().getOutput().getUrl();}
​
}

我们生成的图片实际上就是调用大模型生成的一张图片,所以给我们返回的就是图片的路径,同时返回的时间也是很慢的。

我们只要访问这张图片就可以得到下图中所表示的图片。

语音合成

我们依旧可以阿里云的百炼平台上面实现图片的合成,跟前面一样,我们依旧准备好maven依赖,控制台直接进行调用即可。

因为我们再调用之后就会发现,服务端立即处理并返回完整的语音合成效果,这个过程是阻塞式的,客户端需要等待服务端完成处理后才能继续下一步操作,所以我们在使用的时候建议选择流式输出。

我们可以在帮助文档里面寻找自己喜欢的音色进行设置:

选定好之后就可以在代码上进行实践:

package ai.controller;
​
import com.alibaba.cloud.ai.dashscope.audio.DashScopeSpeechSynthesisOptions;
import com.alibaba.cloud.ai.dashscope.audio.synthesis.SpeechSynthesisModel;
import com.alibaba.cloud.ai.dashscope.audio.synthesis.SpeechSynthesisPrompt;
import com.alibaba.cloud.ai.dashscope.audio.synthesis.SpeechSynthesisResponse;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
​
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.util.UUID;
​
@RestController
public class Text2VoiceController {@Resourceprivate SpeechSynthesisModel speechSynthesisModel;
​public static final String BAILIAN_VOICE_MODEL="cosyvoice-v2";
​public static final String BAILIAN_VOICE_TIMBER="longling_v2";
​@GetMapping("/text/voice")public String text2voice(@RequestParam(name = "msg",defaultValue = "您好88号技师为您服务!") String msg) {//语音文件保存路径String filePath ="F:\\"+ UUID.randomUUID()+".mp3";//语音参数DashScopeSpeechSynthesisOptions options = DashScopeSpeechSynthesisOptions.builder().model(BAILIAN_VOICE_MODEL).voice(BAILIAN_VOICE_TIMBER).build();//调用大模型语音生成对象SpeechSynthesisResponse response = speechSynthesisModel.call(new SpeechSynthesisPrompt(msg, options));//字节流语音转换ByteBuffer byteBuffer = response.getResult().getOutput().getAudio();
​try(FileOutputStream fileOutputStream = new FileOutputStream(filePath)) {fileOutputStream.write(byteBuffer.array());} catch (IOException e) {System.out.println(e.getMessage());}return "语音已保存至:"+filePath;}
}

通过对访问默认路径然后就可以实现文件的存储:

向量化和向量数据库

向量是什么?

Vector向量和矢量的意思,向量是数学里的概念,而矢量是物理里的概念,但二者事实上是讲的同一件事。

向量是用于表示具有大小和方向的量。

事实上讲文本,音频,视频转化为向量的浮点数数组,然后放在坐标体系里面就会出现向量,也就是文本向量化。我们通过维度可以理解这个事情,在数学当中数值的向量中有x和y坐标,所以我们对于文本向量化就可以进行比喻:

因此我们可以将car的向量表示为(4,yes,yes,5)或者用数值表示(4,1,1,5)。同样的对于向量的比较,因为是进行多维度的比较,所以向量的比较主要就是大小和方向进行比较。

所以大模型进行识别图片的时候,其实就是把图片进行了向量化,假设你想描述不同的水果。你不用长篇大论,而是用数字来描述甜度、大小和颜色等特征。例如,苹果可能是[8,5,7]而香蕉是 [9,7,4]。这些数字使比较或对相似的水果进行分组变得更容易。

向量数据库

向量数据库和传统的数据库不一样,向量数据库是一种用于存储和检索高维向量数据的数据库或存储解决方案,它执行的是相似性搜索而不是精准查询。

向量数据库我们选择比较简单的redistack。

我们要想使用向量数据库,首先添加redis向量数据库依赖

<!--引入redisstack,也就是redis8--><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-vector-store-redis</artifactId></dependency>

我们引入redis依赖之后之后,我们就可以配置yml文件了

通过对阿里百联平台的查看我们可以看得出来,对于向量的使用需要确定好模型,然后进行新redis的配置,我们通过对学习文档的查询我们就可以得到,redisStack是支持json文件的查看,使用RedisCloud可以进行实例化。

RedisStack是什么呢?

RedisStack是RedisLabs推出的一个增强版的Redis,并不是Redis的替代品,而是在原生Redis的基础上的功能扩展包,专为构建现代实时应用而设计

http://www.dtcms.com/a/453557.html

相关文章:

  • 做代练去什么网站安全合肥网站seo整站优化
  • 网站案例展示怎么做桂电做网站的毕设容易过嘛
  • QT-常用控件(一)
  • 网站开发选asp还是hph网站域名解析步骤
  • AI行业应用深度解析:从理论到实践的跨越
  • DeepMind 和罗光记团队 推出“帧链”概念:视频模型或将实现全面视觉理解
  • 外贸圈阿里巴巴微信seo什么意思
  • 【专业词汇】元认知
  • 有什么网站开发软件网页棋牌开发
  • Flutter与Dart结合AI开发实战
  • Easyx使用(数据可视化)
  • 基于单片机的大货车防偷油系统设计
  • JavaScript:神奇的ES6之旅
  • 延吉网站开发公司特别好的企业网站程序
  • Avalonia:现代跨平台UI开发的卓越之选
  • gta5网站正在建设阿里云网站建设与发布题库
  • 网页制作的网站淘宝页面设计的网站
  • 【STM32项目开源】STM32单片机人体健康监测系统
  • 车载诊断架构 --- 车载ECU故障类型详解(上)
  • 房产中介做网站wordpress 下载插件xydown
  • 廊坊自助建站设计自己开发的软件如何赚钱
  • 【Redis学习】Redis常用数据类型的万字详解
  • 探讨生成式AI在代码评审与重构中的决策权重分配
  • 【LeetCode380题】和【LeetCode238题】题解
  • The “Launch”_2 - 价值交付与灰度发布的系统实现方案
  • 做的网站怎么打开是白板静态网站 价格
  • JavaScript Boolean(布尔)
  • CentOS 7.6 系统源码部署 HivisionIDPhotos
  • 电子电气架构 --- 汽车座舱行业发展现状分析
  • 李建忠 电子商务网站建设与管理 pptwordpress百度不收录文章