Voice Translator

O TsgcAIVoiceTranslator traduz a fala enquanto o usuário fala. Ele envia o microfone ao OpenAI gpt-realtime-translate por um WebSocket, reproduz a fala traduzida à medida que ela chega e informa transcrições ao vivo do que foi dito e da tradução.

TsgcAIVoiceTranslator

Um tradutor de fala para fala em tempo real. Defina a chave de API e o idioma de destino, chame Start e fale. O modelo detecta o idioma de origem, então não há mais nada a configurar.

Classe do componente

TsgcAIVoiceTranslator

Finalidade

Tradução de fala para fala ao vivo

Família

Chat & agentes

Plataformas

Windows com microfone e alto-falantes. Linux e macOS com o seu próprio áudio.

Edições. O TsgcAIVoiceTranslator vem no sgcAI e no sgcWebSockets Enterprise, as mesmas edições do agente de voz em tempo real TsgcAIVoiceAgent. O sgcAI é autossuficiente: inclui o runtime sgcWebSockets Core sobre o qual o componente foi construído. Disponível para Delphi 7 a Delphi 13 e C++ Builder.

Fale em qualquer idioma e ouça em espanhol

Defina a chave de API e o idioma de destino, atribua os eventos de transcrição e chame 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);
}

Use a sua própria fonte de áudio

Desligue os dispositivos para traduzir o áudio de um arquivo, de uma linha telefônica ou de um fluxo de rede. Envie PCM16 a 24 kHz mono com SendAudio e receba a fala traduzida em 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;

Principais propriedades & métodos

Os membros que você usa com mais frequência.

Sessão

Start conecta, aguarda a sessão, envia o idioma de destino e abre os dispositivos. Stop descarrega o áudio pendente e encerra a sessão. Active faz o mesmo a partir do Object Inspector.

Idioma

O código do idioma de destino, en por padrão. Atribua um novo valor enquanto a sessão está em execução e a mudança é enviada ao modelo na hora, sem precisar reconectar.

Conexão

ApiKey, Model (gpt-realtime-translate) e BaseURL. SafetyIdentifier envia um identificador de usuário com hash no cabeçalho OpenAI-Safety-Identifier.

Áudio

AudioCapture e AudioPlayback usam o microfone e os alto-falantes. Defina-os como False e alimente SendAudio com PCM16 a 24 kHz mono.

Transcrições

OnInputTranscript transmite o texto do que foi dito e OnOutputTranscript o texto da tradução, ambos em deltas.

Eventos

OnSessionCreated, OnOutputAudio com cada bloco de áudio traduzido, OnSessionClosed e OnError. NotifyEvents seleciona eventos assíncronos para aplicações com interface gráfica ou nenhuma sincronização para serviços.

Plataformas. O caminho do microfone e dos alto-falantes usa a API de áudio do Windows. No Linux e no macOS, defina AudioCapture e AudioPlayback como False e trate o áudio você mesmo com SendAudio e OnOutputAudio. Com os dispositivos ligados, Start informa por OnError que não há dispositivo de áudio disponível nessa plataforma.

Especificações & referências

Fontes oficiais do serviço que este componente usa.

Continue explorando

Ajuda onlineReferência completa da API e guia de uso dos componentes sgcAI.
OpenAI TranslatorGrave, traduza e fale um segmento por vez com o TsgcAIOpenAITranslator.
Todos os componentes sgcAIExplore a matriz de recursos completa dos componentes sgcAI.
Baixar avaliação gratuitaInclui a demonstração do Voice Translator. Use a sua própria chave OpenAI.
PreçosLicenças Single, Team e Site, código-fonte completo.
Melhor custo-benefício: All-AccessTodos os produtos da eSeGeCe, com Suporte Premium incluído, a partir de €1,059/ano.
Ver preços do All-Access

Pronto para começar?

Baixe a versão de avaliação gratuita e adicione tradução de fala para fala ao vivo à sua aplicação.