OpenAI RealTime API

· コンポーネント

sgcWebSockets 2025.5.0 から、OpenAI RealTime API をサポートします (現在は文字起こしモードのみ)。

OpenAI Realtime API は、低レイテンシのマルチモーダルな対話を可能にし、音声対音声の会話体験やリアルタイム文字起こしが含まれます。

コンポーネント TsgcWSAPI_OpenAI は RealTime OpenAI API を実装します。

構成

method プロパティを使用して、Conversation または Transcription を選択します。現在は Transcription モードのみサポートされています。

InputAudio プロパティを使用して、以下のデータをカスタマイズできます。

OpenAI

OpenAI API は認証に API キーを使用します。リクエストで使用する API キーを取得するには、API Keys ページにアクセスしてください。

API キーは秘密情報です。他者と共有したり、クライアントサイドコード (ブラウザー、アプリ) に公開したりしないでください。本番環境のリクエストは、API キーを環境変数またはキー管理サービスから安全に読み込める独自のバックエンドサーバー経由でルーティングする必要があります。

この API キー は、コンポーネントの OpenAIOptions.ApiKey プロパティに設定する必要があります。複数の組織に所属するユーザーは、アカウントが組織に属している場合、OpenAIOptions.Organization プロパティで Organization を設定することもできます。

API キーが設定されたら、以下に OpenAI API と対話するための利用可能な関数のリストを示します。

Azure

クライアントは Microsoft Azure OpenAI Services をサポートしているため、Azure アカウントを使用して Azure OpenAI API と対話することもできます。Azure と連携するようクライアントを構成するには、以下の手順に従ってください。

  1. プロパティ OpenAIOptions.Provider = oapvAzure を構成します
  2. ResourceNameDeploymentId の値を設定します (これらの値は Azure アカウントで確認できます)
    1. OpenAIOptions.AzureOptions.ResourceName = <リソース名>。
    2. OpenAIOptions.AzureOptions.DeploymentId = <デプロイメント ID>。
  3. Azure アカウントの API キーを設定します
    1. OpenAIOptions.ApiKey = <azure api キー>。

文字起こしの例

WSClient := TsgcWebSocketClient.Create(nil);
oAudio := TsgcAudioRecorderWave.Create(nil);
OpenAI := TsgcWSAPI_OpenAI.Create(nil);
OpenAI.Client := WSClient;
OpenAI.AudioRecorder := oAudio;
OpenAI.OpenAIOptions.APIKey := 'your-api-key-here';
OpenAI.OpenAIOptions.method := sgcoaimTranscription;
OpenAI.OpenAIOptions.provider := sgcoaipOpenAI;
OpenAI.InputAudio.Language := 'en';
OpenAI.InputAudio.Model := 'whisper-1';
procedure OnOpenAIAudioTranscriptionCompleted(Sender: TObject; const aItem: TsgcWSOpenAIConversation_Item_Completed);
begin
  Log('#transcription_completed: ' + aItem.Transcript);
end; 

デモ

 以下に、OpenAI RealTime API の主な機能を示す Delphi デモを示します。