Voice Translator

TsgcAIVoiceTranslator tłumaczy mowę, gdy użytkownik mówi. Przesyła mikrofon do OpenAI gpt-realtime-translate przez WebSocket, odtwarza przetłumaczoną mowę w miarę jej nadejścia i zgłasza transkrypcje na żywo tego, co zostało powiedziane, oraz tłumaczenia.

TsgcAIVoiceTranslator

Tłumacz mowy na mowę w czasie rzeczywistym. Ustaw klucz API i język docelowy, wywołaj Start i mów. Model wykrywa język źródłowy, więc nie ma nic więcej do konfigurowania.

Klasa komponentu

TsgcAIVoiceTranslator

Przeznaczenie

Tłumaczenie mowy na mowę na żywo

Rodzina

Czat i agenci

Platformy

Windows z mikrofonem i głośnikami. Linux i macOS z własnym dźwiękiem.

Edycje. TsgcAIVoiceTranslator jest dostępny w sgcAI i w sgcWebSockets Enterprise, czyli w tych samych edycjach co agent głosowy czasu rzeczywistego TsgcAIVoiceAgent. sgcAI jest samodzielny: zawiera środowisko uruchomieniowe sgcWebSockets Core, na którym zbudowano komponent. Dostępny dla Delphi 7 do Delphi 13 i C++ Builder.

Mów w dowolnym języku, słuchaj po hiszpańsku

Ustaw klucz API i język docelowy, przypisz zdarzenia transkrypcji i wywołaj 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);
}

Użyj własnego źródła dźwięku

Wyłącz urządzenia, aby tłumaczyć dźwięk z pliku, linii telefonicznej lub strumienia sieciowego. Wysyłaj PCM16 24 kHz mono przez SendAudio i odbieraj przetłumaczoną mowę z 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;

Kluczowe właściwości i metody

Składowe, po które sięgasz najczęściej.

Sesja

Start łączy, czeka na sesję, wysyła język docelowy i otwiera urządzenia. Stop opróżnia oczekujący dźwięk i zamyka sesję. Active robi to samo z poziomu Object Inspector.

Język

Kod języka docelowego, domyślnie en. Przypisz nową wartość podczas trwania sesji, a zmiana zostanie natychmiast wysłana do modelu, bez ponownego łączenia.

Połączenie

ApiKey, Model (gpt-realtime-translate) i BaseURL. SafetyIdentifier wysyła zahaszowany identyfikator użytkownika w nagłówku OpenAI-Safety-Identifier.

Dźwięk

AudioCapture i AudioPlayback używają mikrofonu i głośników. Ustaw je na False i zasilaj SendAudio dźwiękiem PCM16 24 kHz mono.

Transkrypcje

OnInputTranscript przesyła strumieniowo tekst tego, co zostało powiedziane, a OnOutputTranscript tekst tłumaczenia, oba jako delty.

Zdarzenia

OnSessionCreated, OnOutputAudio z każdym przetłumaczonym fragmentem dźwięku, OnSessionClosed i OnError. NotifyEvents wybiera zdarzenia asynchroniczne dla aplikacji z interfejsem lub brak synchronizacji dla usług.

Platformy. Ścieżka mikrofonu i głośników używa API audio systemu Windows. W Linuksie i macOS ustaw AudioCapture i AudioPlayback na False i obsługuj dźwięk samodzielnie przez SendAudio i OnOutputAudio. Gdy urządzenia pozostają włączone, Start zgłasza przez OnError, że na tej platformie nie ma dostępnego urządzenia audio.

Specyfikacje i materiały źródłowe

Oficjalne źródła usługi, z której korzysta ten komponent.

Poznawaj dalej

Pomoc onlinePełna dokumentacja API i przewodnik użytkowania komponentów sgcAI.
OpenAI TranslatorNagrywaj, tłumacz i wypowiadaj po jednym segmencie za pomocą TsgcAIOpenAITranslator.
Wszystkie komponenty sgcAIPrzejrzyj pełną matrycę funkcji komponentów sgcAI.
Pobierz bezpłatną wersję próbnąZawiera demo Voice Translator. Użyj własnego klucza OpenAI.
CennikLicencje Single, Team i Site, pełny kod źródłowy.
Najkorzystniejsza oferta: All-AccessWszystkie produkty eSeGeCe, ze wsparciem Premium w cenie, już od €1,059 rocznie.
Zobacz cennik All-Access

Gotowy, aby zacząć?

Pobierz bezpłatną wersję próbną i dodaj do swojej aplikacji tłumaczenie mowy na mowę na żywo.