Partager via


Texte en temps réel

Important

Les fonctionnalités décrites dans cet article sont actuellement en préversion publique. Cette préversion est fournie sans contrat de niveau de service et n’est pas recommandée pour les charges de travail de production. Certaines fonctionnalités peuvent être limitées ou non prises en charge. Pour plus d’informations, consultez Conditions d’Utilisation Supplémentaires relatives aux Évaluations Microsoft Azure.

Découvrez comment intégrer la saisie en temps réel dans vos applications appelantes pour améliorer l’accessibilité et vous assurer que tous les participants peuvent communiquer efficacement pendant les réunions.

La saisie en temps réel permet aux utilisateurs qui ont des difficultés à parler de participer activement en tapant leurs messages, qui sont ensuite diffusés en quasi-temps réel aux autres participants à la réunion. Cette fonctionnalité s’exécute en toute transparence en même temps que les sous-titres existants et garantit que les messages tapés sont remis immédiatement sans perturber le flux de conversation.

Vue d’ensemble de la fonctionnalité Saisie en temps réel

La saisie en temps réel est conçue pour faciliter la communication des utilisateurs susceptibles d’avoir des difficultés à parler pendant les appels. En permettant aux utilisateurs de taper leurs messages, la saisie en temps réel garantit que tout le monde dans la réunion peut rester investi et informé. Les messages sont transmis via des canaux de données (ID 24) et sont toujours actifs, apparaissant automatiquement lorsque le premier message est envoyé.

Sur les plateformes prises en charge, les données de la saisie en temps réel peuvent être affichées en même temps que les sous-titres dérivés de la reconnaissance vocale, ce qui permet d’avoir une vue complète de toutes les communications pendant l’appel.

Conventions d'affectation de noms

Les différentes plateformes peuvent utiliser une terminologie qui varie pour les propriétés de la saisie en temps réel. Voici un récapitulatif de ces différences :

Mobile (Android/iOS) Windows (C#)
Type Genre
Info Détails

Ces alias sont équivalents d’un point de vue fonctionnel et sont utilisés pour maintenir une cohérence entre les différentes plateformes.

Classe RealTimeTextInfo/Details

La classe RealTimeTextInfo (ou RealTimeTextDetails sur Windows) encapsule les informations sur chaque message de saisie en temps réel. Voici les propriétés clés :

Propriété Description
SequenceId Identificateur unique de la séquence de messages.
Text Contenu du message de saisie en temps réel.
Sender Informations sur l’expéditeur du message.
ResultType/
Kind
Indique si le message est partiel ou définitif.
IsLocal Détermine si le message a été envoyé par l’utilisateur local.
ReceivedTime Horodatage de la réception du message.
UpdatedTime Horodatage de la dernière mise à jour du message.

Modèles

Nom Description
RealTimeTextInfo Représente une entrée de message de saisie en temps réel, notamment les informations de l’expéditeur, le contenu du message, l’ID de séquence et l’état.

Obtenir la fonctionnalité Saisie en temps réel

Pour accéder à la fonctionnalité Saisie en temps réel, récupérez-la à partir de l’objet Call :

RealTimeTextCallFeature rttFeature = call.feature(Features.REAL_TIME_TEXT);

Utilisation de fonctionnalités

Envoi de messages de saisie en temps réel

Liez un champ d’entrée de texte à la méthode send() pour transmettre les messages au fur et à mesure que l’utilisateur les tape :

EditText messageEditText = findViewById(R.id.messageEditText);
messageEditText.addTextChangedListener(new TextWatcher() {
    @Override
    public void afterTextChanged(Editable s) {
        String text = s.toString();
        rttFeature.send(text);
    }
    // Other overridden methods...
});

Réception de messages de saisie en temps réel

Abonnez-vous à l’événement OnInfoReceived pour traiter les messages entrants :

rttFeature.addOnInfoReceivedListener((eventArgs) -> {
    RealTimeTextInfo info = eventArgs.getInfo();
    
    // Update your message list with the new info
    updateMessageList(info);
    
    // Clear the text input if the message is local and finalized
    if (info.isLocal() && info.getResultType() == RealTimeTextResultType.FINAL) {
        messageEditText.getText().clear();
    }
});

Classe RealTimeTextInfo

La classe RealTimeTextInfo fournit des informations détaillées sur chaque message de saisie en temps réel :

  • Sender : Informations sur la personne qui a envoyé le message.
  • SequenceId : Identificateur unique du message.
  • Text : Contenu du message.
  • ResultType : Indique si le message est partiel ou finalisé.
  • ReceivedTime : Horodatage de la réception du message.
  • UpdatedTime : Horodatage de la dernière mise à jour du message.
  • IsLocal : Indique si le message a été envoyé par l’utilisateur local.

Modèles

Nom Description
RealTimeTextInfo Représente une entrée de message de saisie en temps réel, notamment les informations de l’expéditeur, le contenu du message, l’ID de séquence et l’état.

Obtenir la fonctionnalité Saisie en temps réel

Accédez à la fonctionnalité Saisie en temps réel à partir de votre objet Call :

let rttFeature = call.feature(Features.realTimeText)

Utilisation de fonctionnalités

Envoi de messages de saisie en temps réel

Liez un champ d’entrée de texte à la méthode send pour transmettre les messages au fur et à mesure que l’utilisateur les tape :

@State var messageText: String = ""

TextField("Type your message", text: $messageText)
    .onChange(of: messageText) { newText in
        rttFeature?.send(newText)
    }

Réception de messages de saisie en temps réel

Abonnez-vous à l’événement OnInfoReceived pour traiter les messages entrants :

rttFeature?.addOnInfoReceivedListener { eventArgs in
    if let info = eventArgs.info {
        // Update your message list with the new info
        updateMessageList(info)
        
        // Clear the text input if the message is local and finalized
        if info.isLocal && info.resultType == .final {
            self.messageText = ""
        }
    }
}

Classe RealTimeTextInfo

La classe RealTimeTextInfo fournit des informations détaillées sur chaque message de saisie en temps réel :

  • Sender : Informations sur la personne qui a envoyé le message.
  • SequenceId : Identificateur unique du message.
  • Text : Contenu du message.
  • ResultType : Indique si le message est partiel ou finalisé.
  • ReceivedTime : Horodatage de la réception du message.
  • UpdatedTime : Horodatage de la dernière mise à jour du message.
  • IsLocal : Indique si le message a été envoyé par l’utilisateur local.

Modèles

Nom Description
RealTimeTextDetails Représente une entrée de message de saisie en temps réel, notamment les informations de l’expéditeur, le contenu du message, l’ID de séquence et l’état.

Obtenir la fonctionnalité Saisie en temps réel

Récupérez la fonctionnalité Saisie en temps réel à partir de l’objet Call :

RealTimeTextCallFeature rttFeature = call.GetRealTimeTextCallFeature();

Utilisation de fonctionnalités

Envoi de messages de saisie en temps réel

Connectez un champ d’entrée de texte à la méthode Send pour transmettre les messages au fur et à mesure que l’utilisateur les tape :

TextBox messageTextBox = new TextBox();
messageTextBox.TextChanged += (sender, args) => {
    string text = messageTextBox.Text;
    rttFeature.Send(text);
};

Réception de messages de saisie en temps réel

Abonnez-vous à l’événement DetailsReceived pour traiter les messages entrants :

rttFeature.DetailsReceived += (sender, e) => {
    RealTimeTextDetails details = e.Details;
    
    // Update your message list with the new details
    UpdateMessageList(details);
    
    // Clear the text input if the message is local and finalized
    if (details.IsLocal && details.Kind == RealTimeTextResultKind.Final) {
        messageTextBox.Text = string.Empty;
    }
};

Classe RealTimeTextDetails

La classe RealTimeTextDetails fournit des informations complètes sur chaque message de saisie en temps réel :

  • Sender : Informations sur la personne qui a envoyé le message.
  • SequenceId : Identificateur unique du message.
  • Text : Contenu du message.
  • Kind : Indique si le message est partiel ou finalisé.
  • ReceivedTime : Horodatage de la réception du message.
  • UpdatedTime : Horodatage de la dernière mise à jour du message.
  • IsLocal : Indique si le message a été envoyé par l’utilisateur local.

Étapes suivantes

Pour plus d’informations, consultez les articles suivants :