news 2026/6/15 15:30:31

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/6/15 12:01:11

40、线性化设计实例:球与梁系统控制解析

线性化设计实例:球与梁系统控制解析 1. 引言 在控制理论的实际应用中,输入 - 输出线性化理论是一种强大的工具。然而,在许多实际场景里,直接应用该理论并非易事。本文选取了两个具有挑战性的例子来探讨输入 - 输出线性化理论的应用。选择非直接应用案例的原因主要有两个:…

作者头像 李华
网站建设 2026/6/15 12:59:46

52、控制理论中的标准型与控制系统分析

控制理论中的标准型与控制系统分析 在控制理论的研究中,标准型的应用对于分析和解决各种问题具有重要意义。本文将深入探讨与控制理论相关的标准型,包括Goursat标准型及其扩展形式,以及它们在控制系统中的应用。 Goursat标准型变换中的奇点问题 在将系统转换为Goursat标准…

作者头像 李华
网站建设 2026/6/15 12:58:52

一文说清Multisim14.0虚拟仪器接口配置核心要点

掌握Multisim 14.0虚拟仪器配置&#xff1a;从连接到调试的实战全解析在电子电路设计的学习与开发过程中&#xff0c;仿真工具早已成为不可或缺的一环。对于高校学生、初入职场的工程师&#xff0c;乃至经验丰富的研发人员来说&#xff0c;Multisim 14.0都是一个熟悉的名字——…

作者头像 李华
网站建设 2026/6/15 12:58:50

Dify与Azure/OpenAI服务集成配置步骤

Dify与Azure/OpenAI服务集成配置指南 在企业加速拥抱AI的今天&#xff0c;如何快速、安全地构建生产级大语言模型应用&#xff0c;已成为技术团队的核心命题。许多组织面临这样的困境&#xff1a;一方面希望利用GPT-4等先进模型提升业务效率&#xff0c;另一方面又担忧数据泄露…

作者头像 李华
网站建设 2026/6/10 21:01:13

科研人员如何用Dify加速论文撰写过程?

科研人员如何用Dify加速论文撰写过程&#xff1f; 在学术竞争日益激烈的今天&#xff0c;科研人员常常面临一个尴尬的现实&#xff1a;创新想法早已成型&#xff0c;实验数据也已完备&#xff0c;但动笔写论文却成了最耗时的一环。文献综述要读上百篇、引言部分反复修改仍不达意…

作者头像 李华
网站建设 2026/6/15 4:57:34

通俗解释Elasticsearch数据如何在Kibana中展示

Elasticsearch数据如何在Kibana中“活”起来&#xff1f;从存储到可视化的完整链路解析你有没有过这样的经历&#xff1a;明明已经把日志写进了Elasticsearch&#xff0c;Logstash也跑得好好的&#xff0c;可打开Kibana却发现——数据“看不见”&#xff1f;或者图表空荡荡&…

作者头像 李华