转录API
Spring AI 通过转录模型接口。这让你能够编写可移植的代码,适用于不同的转录服务商。
公共接口
所有转录提供商都实现了以下共享接口:
转录模型
这转录模型界面提供了将音频转换为文本的方法:
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();
}
}
编写提供者-无关代码
共享转录接口的一个关键优势是能够编写可与任何转录提供者无修改的代码。实际的提供商(OpenAI、Azure 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、Azure OpenAI 或其他任何转录服务,实际实现方式由您的 Spring Boot 配置决定。
服务提供者专属功能
虽然共享界面提供了可移植性,但每个提供者也通过提供者专属的选项类别提供特定功能(例如,OpenAi音频转录选项,AzureOpenAiAudioTranscriptionOptions).这些类实现了音频转录选项在增加服务提供者专属功能时,还能提供接口。
有关提供者特定功能的详细信息,请参阅各提供者文档页面。