OpenAI Translator
TsgcAIOpenAITranslator 把几乎任何语言的口语输入变成您所选语言(默认为英语)的语音。它录制麦克风、用 gpt-transcribe 转写音频、用聊天模型翻译文本、给您一次审阅的机会,然后通过文本转语音组件把它朗读出来。
TsgcAIOpenAITranslator 把几乎任何语言的口语输入变成您所选语言(默认为英语)的语音。它录制麦克风、用 gpt-transcribe 转写音频、用聊天模型翻译文本、给您一次审阅的机会,然后通过文本转语音组件把它朗读出来。
一个分两步的语音到语音翻译器:先用原语言转写录制的音频,再由一次聊天补全把文本翻译成 Language。源语言会自动识别,因此您只需选择目标语言。
sgcAI 是自包含的。该组件随 sgcAI 一同交付,并附带它所基于的 sgcWebSockets Core 运行时。
关联一个录制器和一个文本转语音组件,设置 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;
// 1. transcribe, 2. translate the text with a chat model
oTranslator.TranslatorOptions.Translation.Model := 'gpt-transcribe';
oTranslator.TranslatorOptions.Translation.ChatModel := 'gpt-6-luna';
oTranslator.TranslatorOptions.Translation.Language := 'Spanish';
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 = "gpt-transcribe";
oTranslator->TranslatorOptions->Translation->ChatModel = "gpt-6-luna";
oTranslator->TranslatorOptions->Translation->Language = "Spanish";
oTranslator->OnTranslation = TranslatorTranslation;
oTranslator->Start();
您最常使用的成员。
AudioRecorder 采集语音,TextToSpeech 朗读译文。如果不指定 TextToSpeech,组件就只返回文本并重新开始采集。
Translation.Model 是转写模型(gpt-transcribe),Translation.ChatModel 是翻译文本的聊天模型(gpt-6-luna),Translation.Language 是目标语言(English)。将 Language 留空即可得到未翻译的转写文本。
与其他 OpenAI 组件共用的 API 密钥、端点、HTTP、重试和日志设置。
Start 开始采集,Stop 结束采集。在录制器的自动模式下,每个静音边界都会结束一个片段并触发一次翻译。
OnTranslation 把译文连同一个 Accept 标志交给您,因此您可以在它被朗读之前记录、修正或屏蔽它。OnAudioStart 和 OnAudioStop 跟踪采集过程。
聊天模型能写出的任何语言。把 Language 设为 Spanish 或 Japanese 这样的名称。默认值 English 的结果与旧的 whisper-1 翻译相同。
为什么分两步?OpenAI 将在 2027-02-26 移除 /v1/audio/translations 端点和 whisper-1 模型,而较新的转写模型不做翻译。该组件现在使用仍会保留的模型完成转写和翻译,因此现有应用程序可以继续运行。若要在用户说话的同时进行实时语音到语音翻译,请使用 TsgcAIVoiceTranslator。
该组件所用服务和协议的权威资料来源。