【Spring AI】04. 转录 API-OpenAI

OpenAI 转录功能

Spring AI 支持 OpenAI 的转录模型。

先决条件


您需要使用 OpenAI 创建一个 API 才能访问 ChatGPT 模型。在 OpenAI 注册页面创建一个账户,并在 API 密钥页面生成令牌。Spring AI 项目定义了一个名为 spring.ai.openai.api-key 的配置属性,您应将 openai.com 获取的API Key 对这个变量进行赋值。生效该配置的一种方法是设置环境变量:

export SPRING_AI_OPENAI_API_KEY=<INSERT KEY HERE>

自动装配(Auto-configuration )


Spring AI 为 OpenAI Chat Client 提供了 Spring Boot 自动装配。若要启用它,请将以下依赖项添加到项目的 Maven pom.xml 文件:

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

或添加到您的 Gradle build.gradle 构建文件。

dependencies {
    implementation 'org.springframework.ai:spring-ai-openai-spring-boot-starter'
}

请参阅 03. 开始章节 的 Dependency Management 部分,将 Spring AI BOM 添加到构建文件中

转录选项参数

属性参数前缀spring.ai.openai.audio.transcription

参数描述默认值
spring.ai.openai.audio.transcription.options.model要使用的模型的 ID。目前只有 whisper-1(由我们的开源 Whisper V2 模型提供支持)可用。whisper-1
spring.ai.openai.audio.transcription.options.response-format转录输出的格式,可选项包括:json、text、srt、verbose_json 或 vtt。json
spring.ai.openai.audio.transcription.options.prompt一个可选的文本,用于指导模型的风格或继续上一个音频片段。提示词应与音频语言匹配。
spring.ai.openai.audio.transcription.options.language输入音频的语言。以 ISO-639-1 格式提供输入语言将提高准确性和延迟。
spring.ai.openai.audio.transcription.options.temperature采样温度,介于 0 和 1 之间。较高的值如 0.8 会使输出更随机,而较低的值如 0.2 会使其更加集中和确定性。如果设置为 0,模型将使用对数概率自动增加温度,直到达到一定的阈值。0
spring.ai.openai.audio.transcription.options.timestamp_granularities用于填充此转录的时间戳粒度。response_format 必须设置为 verbose_json 才能使用时间戳粒度。参数值可以是这两个选项中的一个或两个:word 或 segment。注意:对于段时间戳,没有额外的延迟,但生成单词时间戳会产生额外的延迟。segment

运行时选项参数


OpenAiAudioTranscriptionOptions类提供了在进行转录时使用的选项。在启动时,将使用spring.ai.openai.audio.transcription指定的选项,但您可以在运行时覆盖这些选项。
例如:

OpenAiAudioApi.TranscriptResponseFormat responseFormat = OpenAiAudioApi.TranscriptResponseFormat.VTT;

OpenAiAudioTranscriptionOptions transcriptionOptions = OpenAiAudioTranscriptionOptions.builder()
    .withLanguage("en")
    .withPrompt("Ask not this, but ask that")
    .withTemperature(0f)
    .withResponseFormat(responseFormat)
    .build();
AudioTranscriptionPrompt transcriptionRequest = new AudioTranscriptionPrompt(audioFile, transcriptionOptions);
AudioTranscriptionResponse response = openAiTranscriptionClient.call(transcriptionRequest);

手动配置

首先将依赖项添加到项目的 Maven pom.xml 文件:

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

或添加到您的 Gradle build.gradle 构建文件。

dependencies {
    implementation 'org.springframework.ai:spring-ai-openai'
}

请参阅 03. 开始章节 的 Dependency Management 部分,将 Spring AI BOM 添加到构建文件中

接下来,创建一个 OpenAiAudioTranscriptionClient

var openAiAudioApi = new OpenAiAudioApi(System.getenv("OPENAI_API_KEY"));

var openAiAudioTranscriptionClient = new OpenAiAudioTranscriptionClient(openAiAudioApi);

var transcriptionOptions = OpenAiAudioTranscriptionOptions.builder()
    .withResponseFormat(TranscriptResponseFormat.TEXT)
    .withTemperature(0f)
    .build();

var audioFile = new FileSystemResource("/path/to/your/resource/speech/jfk.flac");

AudioTranscriptionPrompt transcriptionRequest = new AudioTranscriptionPrompt(audioFile, transcriptionOptions);
AudioTranscriptionResponse response = openAiTranscriptionClient.call(transcriptionRequest);

示例代码



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值