Skip to content
Spring AI 文档版本 2.1.0-SNAPSHOT 源快照 dc38ec46 更新于 2026-10-16

转录 API

Spring AI 通过 TranscriptionModel 接口为语音转文本转录提供统一 API。这让你能编写跨不同转录服务商工作的可移植代码。

受支持的服务商

通用接口

所有转录服务商都实现以下共享接口:

TranscriptionModel

TranscriptionModel 接口提供了把音频转换为文本的方法:

java
public interface TranscriptionModel extends Model<AudioTranscriptionPrompt, AudioTranscriptionResponse> {

    /**
     * Transcribes the audio from the given prompt.
     */
    AudioTranscriptionResponse call(AudioTranscriptionPrompt transcriptionPrompt);

    /**
     * A convenience method for transcribing an audio resource.
     */
    default String transcribe(Resource resource) {
        AudioTranscriptionPrompt prompt = new AudioTranscriptionPrompt(resource);
        return this.call(prompt).getResult().getOutput();
    }

    /**
     * A convenience method for transcribing an audio resource with options.
     */
    default String transcribe(Resource resource, AudioTranscriptionOptions options) {
        AudioTranscriptionPrompt prompt = new AudioTranscriptionPrompt(resource, options);
        return this.call(prompt).getResult().getOutput();
    }
}

AudioTranscriptionPrompt

AudioTranscriptionPrompt 类封装输入音频和选项:

java
Resource audioFile = new FileSystemResource("/path/to/audio.mp3");
AudioTranscriptionPrompt prompt = new AudioTranscriptionPrompt(
    audioFile,
    options
);

AudioTranscriptionResponse

AudioTranscriptionResponse 类包含转录后的文本和元数据:

java
AudioTranscriptionResponse response = model.call(prompt);
String transcribedText = response.getResult().getOutput();
AudioTranscriptionResponseMetadata metadata = response.getMetadata();

编写服务商无关的代码

共享转录接口的一大关键好处,是让你能编写无需修改即可与任何转录服务商协作的代码。实际的服务商(例如 OpenAI)由你的 Spring Boot 配置决定,从而让你无需更改应用代码就能切换服务商。

基本服务示例

共享接口让你能编写与任何转录服务商协作的代码:

java
@Service
public class TranscriptionService {

    private final TranscriptionModel transcriptionModel;

    public TranscriptionService(TranscriptionModel transcriptionModel) {
        this.transcriptionModel = transcriptionModel;
    }

    public String transcribeAudio(Resource audioFile) {
        return transcriptionModel.transcribe(audioFile);
    }

    public String transcribeWithOptions(Resource audioFile, AudioTranscriptionOptions options) {
        AudioTranscriptionPrompt prompt = new AudioTranscriptionPrompt(audioFile, options);
        AudioTranscriptionResponse response = transcriptionModel.call(prompt);
        return response.getResult().getOutput();
    }
}

该服务能与 OpenAI 或任何其他转录服务商无缝协作,实际实现由你的 Spring Boot 配置决定。

服务商特定特性

尽管共享接口提供了可移植性,但每个服务商也通过服务商特定的选项类(例如 OpenAiAudioTranscriptionOptions)提供特定功能。这些类实现 AudioTranscriptionOptions 接口,同时添加服务商特定的能力。

关于服务商特定特性的详细信息,请参阅各服务商的文档页。

BytesRouter 是社区翻译站点,所有译文仅供参考,一切以官方英文原文为准。