轉錄 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();
    }
}

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、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 配置決定。

提供商特定功能

雖然共享介面提供了可移植性,但每個提供商還透過提供商特定選項類(例如,OpenAiAudioTranscriptionOptionsAzureOpenAiAudioTranscriptionOptions)提供特定功能。這些類實現 AudioTranscriptionOptions 介面,同時新增提供商特定的功能。

有關提供商特定功能的詳細資訊,請參閱各個提供商的文件頁面。

© . This site is unofficial and not affiliated with VMware.