news 2026/10/13 12:51:50

53_Spring AI 干货笔记之 转录 API

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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 接口的同时,添加了提供商特定的能力。

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/9 8:26:45

Dify社区活跃度分析:开源项目的成功要素

Dify社区活跃度分析&#xff1a;开源项目的成功要素 在大语言模型&#xff08;LLM&#xff09;技术席卷各行各业的今天&#xff0c;越来越多企业试图将AI能力嵌入产品与服务中——从智能客服到自动化报告生成&#xff0c;从知识问答系统到个性化推荐引擎。然而&#xff0c;现实…

作者头像 李华
网站建设 2026/10/13 10:42:52

41、基于线性化的设计示例及非线性飞行控制

基于线性化的设计示例及非线性飞行控制 1. 非正则单输入单输出系统的近似线性化 在控制理论中,对于单输入单输出(SISO)系统,存在一类不具有相对度的系统,被称为非正则系统。这类系统的一般形式为: [ \begin{cases} \dot{x} = f(x) + g(x)u \ y = h(x) \end{cases}…

作者头像 李华
网站建设 2026/10/11 2:29:48

49、控制中的外微分系统解读

控制中的外微分系统解读 1. 引言 在机器人和控制领域中,大部分数学导向的文献都深受微分几何“向量场”观点的影响。不过近年来,使用外微分系统等其他方法来分析非线性控制系统和非线性隐式系统的趋势逐渐兴起。外微分系统有着悠久的历史,早期理论源于Darboux、Lie、Engel、…

作者头像 李华
网站建设 2026/10/9 19:21:31

53、外部微分系统与多智能体混合系统研究

外部微分系统与多智能体混合系统研究 1. 外部微分系统相关内容 在外部微分系统的研究中,有诸多重要的理论和应用成果。 首先,对于时间尺度的研究,除了 $dt$ 之外的情况意味着时间会根据状态进行重新缩放。尽管这种效应在无漂移系统中非常有用(在无漂移系统中,时间的作用…

作者头像 李华
网站建设 2026/10/12 16:37:51

Dify平台的错误码说明与常见问题排查手册

Dify平台的错误码说明与常见问题排查手册 在构建AI应用的过程中&#xff0c;开发者常常会遇到这样的场景&#xff1a;一个原本运行正常的智能客服突然无法响应用户提问&#xff0c;前端只显示“服务暂时不可用”。没有具体的错误提示&#xff0c;日志里满是堆栈信息和模糊的500…

作者头像 李华
网站建设 2026/10/11 11:05:30

PySide6 完整教程:从入门到实战

目录 第一篇:PySide6 基础认知篇 第 1 章:PySide6 是什么 1.1 PySide6 的定义 1.2 Qt 是什么 1.3 PySide6 与 Qt 的关系 1.4 PySide6 与 PyQt 的区别 第二篇:Qt 基础机制(核心思想) 第 2 章:Qt 核心设计思想 2.1 Qt 的事件驱动模型 2.2 QObject 对象模型 2.3 对…

作者头像 李华