OpenAI Translator
TsgcAIOpenAITranslator は、ほぼあらゆる言語の音声入力を英語の音声に変換します。マイクで録音し、音声を OpenAI の翻訳エンドポイントに送信し、テキストを確認する機会を提供したうえで、テキスト読み上げコンポーネント経由で読み上げます。
TsgcAIOpenAITranslator は、ほぼあらゆる言語の音声入力を英語の音声に変換します。マイクで録音し、音声を OpenAI の翻訳エンドポイントに送信し、テキストを確認する機会を提供したうえで、テキスト読み上げコンポーネント経由で読み上げます。
音声から音声への翻訳コンポーネントです。OpenAI の音声翻訳エンドポイントは常に英語を出力するため、入力言語の設定は不要で、モデルの指定と任意の確認ステップだけで動作します。
sgcAI は単体で完結しています。このコンポーネントは、土台となる sgcWebSockets Core ランタイムとともに sgcAI に同梱されているため、基本ライセンスを購入する必要はありません。
レコーダーとテキスト読み上げコンポーネントを接続し、API キーを設定して Start を呼び出します。
uses
sgcAI, sgcAI_OpenAI_Audio_Translator,
sgcAI_AudioRecorder_MCI, sgcAI_TextToSpeech_System;
var
oTranslator: TsgcAIOpenAITranslator;
begin
oTranslator := TsgcAIOpenAITranslator.Create(nil);
oTranslator.OpenAIOptions.ApiKey := 'sk-...';
oTranslator.AudioRecorder := sgcAudioRecorderMCI1;
oTranslator.TextToSpeech := sgcTextToSpeechSystem1;
oTranslator.TranslatorOptions.Translation.Model := 'whisper-1';
oTranslator.OnTranslation := TranslatorTranslation;
oTranslator.Start; // Stop ends the session
end;
procedure TForm1.TranslatorTranslation(Sender: TObject;
var Text: string; var Accept: Boolean);
begin
memoLog.Lines.Add(Text);
Accept := True; // set False to skip speaking this segment
end;
// includes: sgcAI.hpp, sgcAI_OpenAI_Audio_Translator.hpp
TsgcAIOpenAITranslator *oTranslator = new TsgcAIOpenAITranslator(NULL);
oTranslator->OpenAIOptions->ApiKey = "sk-...";
oTranslator->AudioRecorder = sgcAudioRecorderMCI1;
oTranslator->TextToSpeech = sgcTextToSpeechSystem1;
oTranslator->TranslatorOptions->Translation->Model = "whisper-1";
oTranslator->OnTranslation = TranslatorTranslation;
oTranslator->Start();
最もよく使うメンバーです。
AudioRecorder が音声を取得し、TextToSpeech が翻訳結果を読み上げます。TextToSpeech を未割り当てにすると、コンポーネントはテキストだけを返して録音を再開します。
Translation.Model で、翻訳リクエストに使う文字起こしモデルを選択します。
他の OpenAI コンポーネントと共通の、API キー、エンドポイント、HTTP、リトライ、ログの設定です。
Start で録音を開始し、Stop で終了します。レコーダーが自動モードの場合、無音の区切りごとにセグメントが閉じられ、翻訳が実行されます。
OnTranslation は翻訳テキストを Accept フラグとともに渡すため、読み上げの前にログを取ったり、修正したり、抑止したりできます。OnAudioStart と OnAudioStop が録音を追跡します。
OpenAI の翻訳エンドポイントは常に英語を出力します。他の言語へ翻訳する場合は、文字起こし結果を TsgcAIChat のチャット呼び出しと組み合わせてください。
このコンポーネントが利用するサービスとプロトコルの一次情報です。