このバージョンはまだ開発中であり、まだ安定しているとは考えられていません。最新のスナップショットバージョンについては、Spring AI 1.1.5 を使用してください。 |
Transcription 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();
}
}プロバイダーに依存しないコードを書く
共有文字起こしインターフェースの主な利点の 1 つは、コードを修正することなく、あらゆる文字起こしプロバイダーで動作するコードを作成できることです。実際のプロバイダー(たとえば 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 の設定によって決まります。
プロバイダー固有の機能
While the shared interface provides portability, each provider also offers specific features through provider-specific options classes (e.g., OpenAiAudioTranscriptionOptions). These classes implement the AudioTranscriptionOptions interface while adding provider-specific capabilities.
プロバイダー固有の機能の詳細については、個々のプロバイダーのドキュメントページを参照してください。