OpenAI Transcriptions
OpenAI Transcriptions
Spring AI 支持 OpenAI’s Transcription model。
Prerequisites
您需要使用 OpenAI 创建 API 密钥来访问 ChatGPT 模型。在 OpenAI signup page上创建一个帐户并在 API Keys page上生成令牌。Spring AI 项目定义了一个配置属性,名为 spring.ai.openai.api-key
,您应将其设置为从 openai.com 获得的 `API Key`的值。导出环境变量是设置该配置属性的一种方法:
Auto-configuration
Spring AI 提供适用于 OpenAI 图像生成客户端的 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'
}
|
Transcription Properties
前缀 spring.ai.openai.audio.transcription
用作属性前缀,允许您配置 OpenAI Image 客户端的重试机制。
Property | Description | Default |
---|---|---|
spring.ai.openai.audio.transcription.options.model |
要使用的模型的编号。目前仅提供 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 时间戳没有额外的延迟,但生成单词时间戳会产生额外的延迟。 |
segment |
Runtime Options
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);
Manual Configuration
添加 spring-ai-openai
依赖到你的项目的 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'
}
|
接下来,创建一个 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);
Example Code
-
OpenAiTranscriptionClientIT.java 测试提供了一些有关如何使用该库的通用示例。