Voice Translator

TsgcAIVoiceTranslator traduit la parole pendant que l'utilisateur parle. Il envoie le micro à OpenAI gpt-realtime-translate par WebSocket, joue la voix traduite à mesure qu'elle arrive et signale des transcriptions en direct de ce qui a été dit et de la traduction.

TsgcAIVoiceTranslator

Un traducteur de la voix vers la voix en temps réel. Règle la clé API et la langue cible, appelle Start, parle. Le modèle détecte la langue source, il n'y a donc rien d'autre à configurer.

Classe du composant

TsgcAIVoiceTranslator

Rôle

Traduction de la voix vers la voix en direct

Famille

Chat et agents

Plateformes

Windows avec micro et haut-parleurs. Linux et macOS avec ton propre audio.

Éditions. TsgcAIVoiceTranslator est fourni dans sgcAI et dans sgcWebSockets Enterprise, les mêmes éditions que l'agent vocal temps réel TsgcAIVoiceAgent. sgcAI est autonome : il inclut le runtime sgcWebSockets Core sur lequel le composant est construit. Disponible pour Delphi 7 à Delphi 13 et C++ Builder.

Parle dans n'importe quelle langue, entends de l'espagnol

Règle la clé API et la langue cible, affecte les événements de transcription, appelle 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);
}

Apporte ta propre source audio

Désactive les périphériques pour traduire l'audio d'un fichier, d'une ligne téléphonique ou d'un flux réseau. Envoie du PCM16 en 24 kHz mono avec SendAudio et récupère la voix traduite dans 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;

Propriétés et méthodes clés

Les membres que tu utilises le plus souvent.

Session

Start se connecte, attend la session, envoie la langue cible et ouvre les périphériques. Stop vide l'audio en attente et ferme la session. Active fait de même depuis l'Object Inspector.

Langue

Le code de la langue cible, en par défaut. Affecte une nouvelle valeur pendant que la session tourne et le changement est envoyé au modèle aussitôt, sans reconnexion.

Connexion

ApiKey, Model (gpt-realtime-translate) et BaseURL. SafetyIdentifier envoie un identifiant utilisateur haché dans l'en-tête OpenAI-Safety-Identifier.

Audio

AudioCapture et AudioPlayback utilisent le micro et les haut-parleurs. Mets-les à False et alimente SendAudio avec du PCM16 en 24 kHz mono.

Transcriptions

OnInputTranscript diffuse le texte de ce qui a été dit, OnOutputTranscript le texte de la traduction, tous deux sous forme de deltas.

Événements

OnSessionCreated, OnOutputAudio avec chaque fragment audio traduit, OnSessionClosed et OnError. NotifyEvents choisit des événements asynchrones pour les applications graphiques ou aucune synchronisation pour les services.

Plateformes. Le chemin micro et haut-parleurs utilise l'API audio de Windows. Sous Linux et macOS, mets AudioCapture et AudioPlayback à False et gère l'audio toi-même avec SendAudio et OnOutputAudio. Si les périphériques restent activés, Start signale par OnError qu'aucun périphérique audio n'est disponible sur cette plateforme.

Spécifications et références

Sources officielles du service qu'utilise ce composant.

Pour aller plus loin

Aide en ligneRéférence complète de l'API et guide d'utilisation des composants sgcAI.
OpenAI TranslatorEnregistre, traduis et prononce un segment à la fois avec TsgcAIOpenAITranslator.
Tous les composants sgcAIParcours la matrice complète des fonctionnalités des composants sgcAI.
Télécharger l'essai gratuitInclut la démo Voice Translator. Utilise ta propre clé OpenAI.
TarifsLicences Single, Team et Site, code source complet.
Meilleur rapport qualité-prix : All-AccessTous les produits eSeGeCe, Support Premium inclus, à partir de €1,059/an.
Voir les tarifs All-Access

Prêt à te lancer ?

Télécharge l'essai gratuit et ajoute à ton application la traduction de la voix vers la voix en direct.