轉錄 API
Spring AI 透過 TranscriptionModel 介面提供統一的語音轉文字轉錄 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();
}
}
編寫與提供商無關的程式碼
共享轉錄介面的關鍵好處之一是能夠編寫適用於任何轉錄提供商而無需修改的程式碼。實際提供商(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 配置決定。