跳到主要内容
版本:2.0.1

Transcription API

QWen 3.8 中英对照 Transcription API

Spring AI 通过 TranscriptionModel 接口提供统一的语音转文本(Speech-to-Text)转录 API。这使得您可以编写可移植的代码,以支持不同的转录服务提供商。

支持的提供商​

通用接口​

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

TranscriptionModel​

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

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 类封装了输入音频和选项:

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

AudioTranscriptionResponse​

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

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

编写提供商无关的代码​

共享转录接口的关键优势之一是,能够编写与任意转录提供者兼容的代码,且无需修改。实际的提供者(例如 OpenAI)由您的 Spring Boot 配置决定,从而允许在无需更改应用程序代码的情况下切换提供者。

基础服务示例​

共享接口允许您编写适用于任何转录提供方的代码:

@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 接口,同时增加了提供商特有的功能。

有关特定提供程序的功能的详细信息,请参见各个提供程序的文档页面。

章节摘要​