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

53_Spring AI 干货笔记之 转录 API

一、转录 API

Spring AI 通过 TranscriptionModel 接口为语音转文字转录提供了统一的 API。这使您能够编写可在不同转录提供商之间移植的代码。

二、支持的提供商

  • OpenAI 的 Whisper API

  • Azure OpenAI Whisper API

三、通用接口

所有转录提供商都实现了以下共享接口:

3.1 TranscriptionModel

TranscriptionModel 接口提供了将音频转换为文本的方法:

publicinterfaceTranscriptionModelextendsModel<AudioTranscriptionPrompt,AudioTranscriptionResponse>{/** * 转录给定提示中的音频。 */AudioTranscriptionResponsecall(AudioTranscriptionPrompttranscriptionPrompt);/** * 转录音频资源的便捷方法。 */defaultStringtranscribe(Resourceresource){AudioTranscriptionPromptprompt=newAudioTranscriptionPrompt(resource);returnthis.call(prompt).getResult().getOutput();}/** * 使用选项转录音频资源的便捷方法。 */defaultStringtranscribe(Resourceresource,AudioTranscriptionOptionsoptions){AudioTranscriptionPromptprompt=newAudioTranscriptionPrompt(resource,options);returnthis.call(prompt).getResult().getOutput();}}

3.2 AudioTranscriptionPrompt

AudioTranscriptionPrompt 类封装了输入音频和选项:

ResourceaudioFile=newFileSystemResource("/path/to/audio.mp3");AudioTranscriptionPromptprompt=newAudioTranscriptionPrompt(audioFile,options);

3.3 AudioTranscriptionResponse

AudioTranscriptionResponse 类包含转录文本和元数据:

AudioTranscriptionResponseresponse=model.call(prompt);StringtranscribedText=response.getResult().getOutput();AudioTranscriptionResponseMetadatametadata=response.getMetadata();

四、编写与提供商无关的代码

共享转录接口的主要好处之一是能够编写无需修改即可与任何转录提供商一起工作的代码。实际的提供商(OpenAI、Azure OpenAI 等)由您的 Spring Boot 配置决定,允许您在不更改应用程序代码的情况下切换提供商。

4.1 基础服务示例

共享接口允许您编写与任何转录提供商一起工作的代码:

@ServicepublicclassTranscriptionService{privatefinalTranscriptionModeltranscriptionModel;publicTranscriptionService(TranscriptionModeltranscriptionModel){this.transcriptionModel=transcriptionModel;}publicStringtranscribeAudio(ResourceaudioFile){returntranscriptionModel.transcribe(audioFile);}publicStringtranscribeWithOptions(ResourceaudioFile,AudioTranscriptionOptionsoptions){AudioTranscriptionPromptprompt=newAudioTranscriptionPrompt(audioFile,options);AudioTranscriptionResponseresponse=transcriptionModel.call(prompt);returnresponse.getResult().getOutput();}}

此服务可与 OpenAI、Azure OpenAI 或任何其他转录提供商无缝协作,实际实现由您的 Spring Boot 配置决定。

五、提供商特定功能

虽然共享接口提供了可移植性,但每个提供商也通过提供商特定的选项类(例如 OpenAiAudioTranscriptionOptions、AzureOpenAiAudioTranscriptionOptions)提供特定功能。这些类在实现 AudioTranscriptionOptions 接口的同时,添加了提供商特定的能力。

有关提供商特定功能的详细信息,请参阅各个提供商的文档页面。

http://www.jsqmd.com/news/141014/

相关文章:

  • 5、软件开发方法与流程全解析
  • 46、非完整系统的通用转向方法解析
  • USB转串口在智能仪表数据采集中的实际应用
  • 借助 ModelEngine 这类可视化编排工具,升级“历史文学探索者“智能体,集成知识库功能,打造私有库体系
  • 6、软件开发中的代码审查、缺陷跟踪与敏捷工具应用
  • 47、非线性控制系统中的可观测性与零动态算法解析
  • 借助 ModelEngine 这类可视化编排工具,升级“历史文学探索者“智能体,集成工作流,打造“个性化”的流程
  • 手把手教你从零构建自定义元件进Multisim数据库
  • uds31服务请求格式在CANoe中的配置方法:新手教程
  • 52_Spring AI 干货笔记之 ZhiPuAI 图像生成
  • 48、几何非线性控制:理论、方法与应用
  • Vetur与Prettier整合格式化超详细版
  • fastbootd在A/B分区系统中的角色分析:系统启动必看
  • Dify在舆情监控系统中的关键技术实现
  • 安装Flume
  • 项目应用:基于Altium Designer的蓝牙模块PCB布局实例
  • 温度传感器偏置误差成因解析:硬件补偿技术应用实例
  • 一文说清高速信号在PCB布局中的串扰抑制方法
  • 35、微分几何与非线性系统线性化:理论、方法与应用
  • 通俗解释Elasticsearch数据如何在Kibana中展示
  • 36、状态反馈线性化控制全解析:从SISO到MIMO系统
  • WinDbg Preview调试会话初始化过程深度剖析
  • LED亮度调节实战:使用PWM实现平滑调光的完整示例
  • 科研人员如何用Dify加速论文撰写过程?
  • 37、MIMO系统线性化与鲁棒控制技术解析
  • 一文说清Scanner类的next与nextLine区别:通俗解释
  • es连接工具通过Kibana实现数据查询实战
  • 泛函分析与偏微分方程(四):弱拓扑的三个基本性质
  • ES6模块化详解:深度剖析import与export语法规范
  • Dify平台的响应延迟优化策略研究