Voice Translator

TsgcAIVoiceTranslator は、ユーザーが話している間に音声を翻訳します。マイクの音声を WebSocket 経由で OpenAI gpt-realtime-translate にストリーミングし、翻訳された音声を届いた順に再生し、発話内容と翻訳結果のライブ文字起こしを通知します。

TsgcAIVoiceTranslator

リアルタイムの音声から音声への翻訳コンポーネントです。API キーと翻訳先の言語を設定し、Start を呼び出して話すだけです。モデルが入力言語を自動で判定するため、ほかに設定するものはありません。

コンポーネントクラス

TsgcAIVoiceTranslator

用途

ライブ音声翻訳

プラットフォーム

マイクとスピーカーを備えた Windows。Linux と macOS では独自のオーディオを使用します。

エディション。TsgcAIVoiceTranslator は、リアルタイム音声エージェント TsgcAIVoiceAgent と同じ sgcAI と sgcWebSockets Enterprise に含まれます。sgcAI は単体で完結しており、コンポーネントの土台となる sgcWebSockets Core ランタイムも同梱しています。Delphi 7 から Delphi 13 と C++ Builder で利用できます。

どの言語で話しても、スペイン語で聞く

API キーと翻訳先の言語を設定し、文字起こしイベントを割り当てて、Start を呼び出します。

uses
  sgcWebSocket_Types, sgcAI_VoiceTranslator;

procedure TForm1.StartTranslator;
begin
  oTranslator := TsgcAIVoiceTranslator.Create(Self);
  oTranslator.ApiKey := 'sk-...';
  oTranslator.Language := 'es';   // speak any language, hear Spanish
  oTranslator.NotifyEvents := neAsynchronous;
  oTranslator.OnInputTranscript := DoInputTranscript;
  oTranslator.OnOutputTranscript := DoOutputTranscript;
  oTranslator.OnError := DoError;
  oTranslator.Start;   // microphone in, translated speech out
end;

procedure TForm1.DoInputTranscript(Sender: TObject; const aDelta: string);
begin
  memoSource.Text := memoSource.Text + aDelta;   // what was said
end;

procedure TForm1.DoOutputTranscript(Sender: TObject; const aDelta: string);
begin
  memoTarget.Text := memoTarget.Text + aDelta;   // the translation
end;

procedure TForm1.DoError(Sender: TObject; const aError: string);
begin
  ShowMessage(aError);
end;

procedure TForm1.SwitchLanguage;
begin
  oTranslator.Language := 'fr';   // applied to the running session
end;
// includes: sgcWebSocket_Types.hpp, sgcAI_VoiceTranslator.hpp

void TForm1::StartVoiceTranslator()
{
  oTranslator = new TsgcAIVoiceTranslator(this);
  oTranslator->ApiKey = "sk-...";
  oTranslator->Language = "es";
  oTranslator->NotifyEvents = neAsynchronous;
  oTranslator->OnInputTranscript = DoInputTranscript;
  oTranslator->OnOutputTranscript = DoOutputTranscript;
  oTranslator->OnError = DoError;
  oTranslator->Start();
}

void __fastcall TForm1::DoInputTranscript(TObject *Sender, const String aDelta)
{
  memoSource->Text = memoSource->Text + aDelta;
}

void __fastcall TForm1::DoOutputTranscript(TObject *Sender, const String aDelta)
{
  memoTarget->Text = memoTarget->Text + aDelta;
}

void __fastcall TForm1::DoError(TObject *Sender, const String aError)
{
  ShowMessage(aError);
}

独自のオーディオソースを使う

デバイスをオフにすると、ファイル、電話回線、ネットワークストリームの音声を翻訳できます。SendAudio で 24 kHz モノラルの PCM16 を送り、翻訳された音声は OnOutputAudio から受け取ります。

procedure TForm1.StartCustomAudio(const aPCM16: TBytes);
begin
  oTranslator.AudioCapture := False;   // no microphone
  oTranslator.AudioPlayback := False;  // no speakers
  oTranslator.OnOutputAudio := DoOutputAudio;
  oTranslator.Start;
  oTranslator.SendAudio(aPCM16);   // PCM16, 24 kHz, mono
end;

procedure TForm1.DoOutputAudio(Sender: TObject; const aPCM16: TBytes);
begin
  // translated speech, PCM16 24 kHz mono, in order
end;

主なプロパティとメソッド

最もよく使うメンバーです。

セッション

Start は接続し、セッションの確立を待ち、翻訳先の言語を送信してデバイスを開きます。Stop は保留中の音声を送り切ってセッションを閉じます。Active は Object Inspector から同じ操作を行います。

言語

翻訳先の言語コードで、既定値は en です。セッションの実行中に新しい値を代入すると、変更は直ちにモデルへ送られ、再接続は不要です。

接続

ApiKey、Model(gpt-realtime-translate)、BaseURL。SafetyIdentifier は、ハッシュ化したユーザー ID を OpenAI-Safety-Identifier ヘッダーで送信します。

オーディオ

AudioCapture と AudioPlayback はマイクとスピーカーを使います。これらを False にして、代わりに SendAudio へ 24 kHz モノラルの PCM16 を渡します。

文字起こし

OnInputTranscript は発話内容のテキストを、OnOutputTranscript は翻訳結果のテキストを、いずれも差分として順次通知します。

イベント

OnSessionCreated、翻訳音声の各チャンクを受け取る OnOutputAudio、OnSessionClosed、OnError。NotifyEvents では、GUI アプリケーション向けの非同期イベントか、サービス向けの同期なしを選びます。

プラットフォーム。マイクとスピーカーの経路は Windows のオーディオ API を使います。Linux と macOS では AudioCapture と AudioPlayback を False にして、SendAudio と OnOutputAudio でオーディオを自分で処理してください。デバイスをオンのままにすると、Start はそのプラットフォームで利用できるオーディオデバイスがないことを OnError で報告します。

仕様と参考資料

このコンポーネントが利用するサービスの一次情報です。

さらに詳しく

オンラインヘルプsgcAI コンポーネントの完全な API リファレンスと利用ガイドです。
OpenAI TranslatorTsgcAIOpenAITranslator で、1 セグメントずつ録音、翻訳、読み上げを行います。
sgcAI の全コンポーネントsgcAI コンポーネントの機能一覧を確認できます。
無料体験版をダウンロードVoice Translator のデモを含みます。ご自身の OpenAI キーをお使いください。
価格Single、Team、Site の各ライセンス。完全なソースコード付きです。
最もお得な選択: All-AccesseSeGeCe の全製品にプレミアムサポートが付いて、年間 €1,059 からご利用いただけます。
All-Access の価格を見る

はじめてみませんか

無料体験版をダウンロードして、アプリケーションにリアルタイム音声翻訳を追加しましょう。