当前位置: 首页 > 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.rkmt.cn/news/155172.html

相关文章:

  • 手把手教你从零构建自定义元件进Multisim数据库
  • 6、软件开发中的代码审查、缺陷跟踪与敏捷工具应用
  • 47、非线性控制系统中的可观测性与零动态算法解析
  • 48、几何非线性控制:理论、方法与应用
  • 52_Spring AI 干货笔记之 ZhiPuAI 图像生成
  • fastbootd在A/B分区系统中的角色分析:系统启动必看
  • 温度传感器偏置误差成因解析:硬件补偿技术应用实例
  • WinDbg Preview调试会话初始化过程深度剖析
  • LED亮度调节实战:使用PWM实现平滑调光的完整示例
  • 36、状态反馈线性化控制全解析:从SISO到MIMO系统
  • 37、MIMO系统线性化与鲁棒控制技术解析
  • es连接工具通过Kibana实现数据查询实战
  • Dify平台的响应延迟优化策略研究
  • 39、连续时间非线性系统的输入 - 输出线性化及相关问题研究
  • 零基础入门:认识音频设备频率响应的基本概念
  • Dify平台是否支持微调模型?答案在这里
  • Dify与OAuth2.0认证体系的整合实践
  • USB3.0接口定义引脚说明与PCB层叠结构对信号完整性影响分析
  • Dify与AutoML结合的可能性探索
  • 系统学习AD中的元件布局约束规则
  • Dify平台在社交媒体内容生成中的创新应用
  • 低功耗数字温度传感器GXTR304智能电表监控应用
  • 【后端】【架构】为什么持续投入安全领域?——守夜人的誓言与代码长城
  • 56、软件开发中的场景与访谈方法解析
  • Dify本地化部署 vs 云端托管:哪种更适合你?
  • 深入浅出 C# 扩展方法:为现有类型 “无痛” 扩展功能
  • Dify平台的API接口调用详细文档说明
  • 机器学习051:深度学习【经典神经网络】Transformer多头注意力机制 -- 从“一心一意”到“八面玲珑”
  • 模板进阶(非类型模板参数,模板特化,模板分离编译,List和Stack)
  • 60、软件开发中的关键概念与工具