行业资讯 2025年08月6日
0 收藏 0 点赞 701 浏览 3964 个字
摘要 :

文章目录 一、入门准备 二、手动配置模型 (一)使用默认配置创建模型 (二)自定义参数创建模型 三、语音转文本实战示例 四、总结 本文将详细介绍如何在Spring AI框……




  • 一、入门准备
  • 二、手动配置模型
    • (一)使用默认配置创建模型
    • (二)自定义参数创建模型
  • 三、语音文本实战示例
  • 四、总结

本文将详细介绍如何在Spring AI框架下实现语音转文本的功能,主要聚焦于使用OpenAI的whisper模型进行相关操作,帮助你在项目中快速集成语音转文本功能。

一、入门准备

目前,Spring AI仅支持通过OpenAI的whisper模型进行多语言语音识别,以及将语音转录成JSON或TEXT文件。若想了解最新可用的模型信息,可以前往OpenAI官网查看。在Spring AI中,创建音频文件转录功能主要依靠OpenAiAudioTranscriptionModel类,当未来有更多转录服务提供商接入时,会提取出通用的AudioTranscriptionModel接口。

要在项目中使用音频转录模型,需要先在项目里添加spring-ai-openai-spring-boot-starter依赖。关于如何在项目依赖中设置Spring AI的BOM,可以参考Spring AI的入门指南。在pom.xml文件中添加如下依赖:

<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-openai-spring-boot-starter</artifactId>
</dependency>

添加好依赖后,Spring Boot会自动进行配置。除了为聊天、音频和图像模型创建其他bean之外,它还会创建OpenAiAudioTranscriptionModel类的实例,并赋予一些默认配置值。这些配置值可以根据实际需求进行修改,具体配置如下:

# API Key是必填项,需替换为自己的OpenAI API Key
spring.ai.openai.api-key=${OPENAI_API_KEY}  

# 默认配置值
# 设置使用的模型为whisper-1
spring.ai.openai.audio.transcription.options.model=whisper-1  
# 设置响应格式,可选json、text、srt、verbose_json、vtt
spring.ai.openai.audio.transcription.options.response-format=json  
# 采样温度,取值范围在0到1之间,这里设置为0
spring.ai.openai.audio.transcription.options.temperature=0  
# 时间戳粒度,可选segment(片段)和word(单词),或两者都选
spring.ai.openai.audio.transcription.options.timestamp_granularities=segment  

支持的输出格式有以下几种:

  • json:结构化的响应格式。
  • text:纯文本数据。
  • srt:用于字幕的文件格式。
  • verbose_json:包含额外元数据的json格式。
  • vtt:用于在网页视频播放器中显示定时文本轨道(比如字幕或标题)。

此外,还可以设置一些可选属性来控制模型的输出风格:

# 可选文本,用于引导模型的风格或延续上一段音频的内容,需与音频语言匹配
spring.ai.openai.audio.transcription.options.prompt={prompt}  

# 输入音频的语言,采用ISO-639-1格式
spring.ai.openai.audio.transcription.options.language={language}  

完成配置后,就可以在Spring管理的bean中注入OpenAiAudioTranscriptionModel了。

二、手动配置模型

(一)使用默认配置创建模型

如果想使用默认配置创建OpenAiAudioTranscriptionModel bean,只需要获取OpenAI的API Key即可。示例代码如下:

// 通过系统环境变量获取OpenAI API Key,创建OpenAiAudioApi实例
var openAiAudioApi = new OpenAiAudioApi(System.getenv(\"OPENAI_API_KEY\")); 
// 使用OpenAiAudioApi实例创建OpenAiAudioTranscriptionModel实例
var transcriptionModel = new OpenAiAudioTranscriptionModel(openAiAudioApi); 

(二)自定义参数创建模型

要是希望通过自定义参数修改默认配置,可以借助OpenAiAudioTranscriptionOptions类。示例代码如下:

// 使用OpenAiAudioTranscriptionOptions.builder()构建器设置自定义参数
OpenAiAudioTranscriptionOptions options = OpenAiAudioTranscriptionOptions.builder()
        // 设置音频语言为英文
       .withLanguage(\"en\")  
        // 设置引导文本
       .withPrompt(\"Create transcription for this audio file.\")  
        // 设置采样温度为0
       .withTemperature(0f)  
        // 设置响应格式为文本
       .withResponseFormat(TranscriptResponseFormat.TEXT)  
        // 构建OpenAiAudioTranscriptionOptions实例
       .build();  
// 通过系统环境变量获取OpenAI API Key,创建OpenAiAudioApi实例
OpenAiAudioApi openAiAudioApi = new OpenAiAudioApi(System.getenv(\"OPENAI_API_KEY\")); 
// 使用OpenAiAudioApi实例和自定义的OpenAiAudioTranscriptionOptions实例创建OpenAiAudioTranscriptionModel实例
var transcriptionModel = new OpenAiAudioTranscriptionModel(openAiAudioApi, options); 

三、语音转文本实战示例

OpenAiAudioTranscriptionModel bean初始化完成后,就可以使用它的call()方法将音频文件转录成文本了。示例代码如下:

// 注入名为speech.mp3的音频文件资源
@Value(\"classpath:speech.mp3\") 
Resource audioFile; 
// 调用OpenAiAudioTranscriptionModel的call()方法,传入包含音频文件的AudioTranscriptionPrompt对象
AudioTranscriptionResponse response = transcriptionModel.call(new AudioTranscriptionPrompt(audioFile)); 
// 获取转录后的文本内容
String text = response.getResult().getOutput(); 

下面是一个完整的Spring Boot控制器方法示例,用于接收音频文件并返回转录后的文本:

@RestController
class SpeechController {
    // 注入OpenAiAudioTranscriptionModel
    private final OpenAiAudioTranscriptionModel transcriptionModel; 

    public SpeechController(OpenAiAudioTranscriptionModel transcriptionModel) {
        this.transcriptionModel = transcriptionModel;
    }

    // 处理GET请求,接收名为speech.mp3的音频文件资源,并返回转录后的文本
    @GetMapping(\"/transcription\")
    public String speech(@Value(\"classpath:speech.mp3\") Resource audioFile) {
        return transcriptionModel.call(new AudioTranscriptionPrompt(audioFile))
               .getResult()
               .getOutput();
    }
}

在这个示例中,使用了speech.mp3音频文件进行演示,转录后的结果会作为API的输出展示出来。Spring AI 如何实现语音转文本实战教程

四、总结

通过本文的学习,我们对Spring AI的语音转文本功能有了全面的了解:

  1. 目前,Spring AI模块仅支持OpenAI的whisper模型。
  2. OpenAiAudioTranscriptionModel是实现语音转录的主要类。
  3. 只要在项目中添加spring-ai-openai-spring-boot-starter依赖,就可以使用默认配置的OpenAiAudioTranscriptionModel bean。
  4. 可以通过属性文件来控制默认配置值。
  5. 若要进行手动配置,可以使用OpenAiAudioTranscriptionOptions构建器类。

希望大家通过本文的学习,能够在实际项目中顺利运用Spring AI的语音转文本功能。

归属教程 Spring AI 快速入门教程汇总

文章目录 Spring AI是什么?有啥优势? 如何在项目中使用Spring AI? Spring AI详细功 […]

微信扫一扫

支付宝扫一扫

版权: 转载请注明出处:https://www.zuozi.net/10311.html

管理员

相关推荐
2025-08-06

文章目录 一、Reader 接口概述 1.1 什么是 Reader 接口? 1.2 Reader 与 InputStream 的区别 1.3 …

988
2025-08-06

文章目录 一、事件溯源 (一)核心概念 (二)Kafka与Golang的优势 (三)完整代码实现 二、命令…

465
2025-08-06

文章目录 一、证明GC期间执行native函数的线程仍在运行 二、native线程操作Java对象的影响及处理方…

348
2025-08-06

文章目录 一、事务基础概念 二、MyBatis事务管理机制 (一)JDBC原生事务管理(JdbcTransaction)…

456
2025-08-06

文章目录 一、SnowFlake算法核心原理 二、SnowFlake算法工作流程详解 三、SnowFlake算法的Java代码…

517
2025-08-06

文章目录 一、本地Jar包的加载操作 二、本地Class的加载方法 三、远程Jar包的加载方式 你知道Groo…

832
发表评论
暂无评论

还没有评论呢,快来抢沙发~

助力内容变现

将您的收入提升到一个新的水平

点击联系客服

在线时间:08:00-23:00

客服QQ

122325244

客服电话

400-888-8888

客服邮箱

122325244@qq.com

扫描二维码

关注微信客服号