从 sgcWebSockets 2025.5.0 起,OpenAI RealTime API 已受支持(目前仅支持转录模式)。
OpenAI Realtime API 支持低延迟、多模态交互,包括语音对话体验和实时转录。
组件 TsgcWSAPI_OpenAI 实现了 RealTime OpenAI API。配置
使用 method 属性选择 Conversation(对话)或 Transcription(转录),目前仅支持转录模式。
InputAudio 属性允许自定义以下数据:
- Language(语言):例如英语(值 = 'en')。
- Model(模型):将使用的模型,例如:whisper-1
- Prompt(提示):可选提示,用于向模型提供指令。
OpenAI
OpenAI API 使用 API 密钥进行身份验证。访问您的 API 密钥页面以获取请求中使用的 API 密钥。
请记住,您的 API 密钥是机密!不要与他人共享或在任何客户端代码(浏览器、应用程序)中暴露。生产请求必须通过您自己的后端服务器路由,API 密钥应从环境变量或密钥管理服务中安全加载。
此 API 密钥必须在组件的 OpenAIOptions.ApiKey 属性中配置。对于属于多个组织的用户,如果您的账户属于某个组织,可以在 OpenAIOptions.Organization 属性中设置您的组织。
配置 API 密钥后,以下是可与 OpenAI API 交互的可用功能列表。
Azure
客户端支持 Microsoft Azure OpenAI Services,因此您也可以使用 Azure 账户与 Azure OpenAI API 进行交互。要将客户端配置为使用 Azure,请按照以下步骤操作:
- 将属性 OpenAIOptions.Provider 设置为 oapvAzure
- 设置 ResourceName 和 DeploymentId 的值(这些值可在您的 Azure 账户中找到)
- OpenAIOptions.AzureOptions.ResourceName = <your resource name>.
- OpenAIOptions.AzureOptions.DeploymentId = <your deployment id>.
- 设置您的 Azure 账户 API 密钥
- OpenAIOptions.ApiKey = <azure api key>.
转录示例
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 示例。
