Fermer

octobre 30, 2020

Prise en main des formulaires Xamarin Text-To-Speech


Apprenons à utiliser les moteurs de synthèse vocale intégrés dans Xamarin Forms.

Chacun de nous a des styles d'apprentissage différents. Certains d'entre nous apprennent mieux en lisant, mais d'autres auront une meilleure compréhension en écoutant. Alors, que se passerait-il si nous pouvions intégrer les deux dans notre application? Ce serait génial, non? Notre application aura une large portée.

Nous pouvons même utiliser cette fonctionnalité pour les personnes ayant une déficience visuelle – l'expérience de l'application répondra mieux à leurs besoins, la rendant ainsi plus agréable et utilisable pour eux. Il est important de s’assurer que nos sociétés numériques permettent l’intégration de tous.

Donc, pour le mettre en pratique, dans cet article, je veux parler d’une API incroyable que Xamarin Essentials nous apporte, à savoir la synthèse vocale. Personnellement, j'aime cela, car c'est une fonctionnalité intéressante et utile pour les personnes malvoyantes! 😍 Bien sûr, en dehors de l’approche que je donne dans cet article, vous pouvez l’intégrer dans l’utilitaire dont vous avez besoin!

Commençons!

Tout d’abord… Que dois-je savoir? 🤔

Qu'est-ce que la synthèse vocale?

La classe TextToSpeech permet aux moteurs de synthèse vocale intégrés de lire le texte et d'interroger les langues disponibles prises en charge par le moteur.

Certaines limitations

➖ La file d'attente d'énoncés n'est pas garantie si elle est appelée sur plusieurs threads.

➖ La lecture audio en arrière-plan n'est pas officiellement prise en charge.

Comment l'utiliser

Il vous suffit d'appeler TextToSpeech ensuite à la méthode SpeakAsync qui a reçu les paramètres suivants:

Texte: Il s'agit de la valeur que vous souhaitez exprimer. (obligatoire)

 public async Task SpeakTest ()
{
    wait TextToSpeech.SpeakAsync ("Bonjour à tous!");
    // Cette méthode bloquera jusqu'à la fin de l'énoncé.
}

Si vous souhaitez ajouter une logique qui s'exécutera une fois l'énoncé terminé, vous pouvez ajouter le code suivant:

 TextToSpeech.SpeakAsync ("Hello all!"). ContinueWith ((t) =>
{
    // Logique qui s'exécutera après la fin de l'énoncé.

}, TaskScheduler.FromCurrentSynchronizationContext ());

SpeechOptions: Ici, vous pouvez configurer les options de parole. Cela nous permet d'avoir plus de contrôle sur la façon dont il est répondu. Nous pouvons définir les paramètres suivants:

 Nom = Localiser, Minimum = 0, Maximum = 0,1 | Nom = Pas, Minimum = 0, Maximum = 2.0 | Name = Volume (Vérifiez l'explication ci-dessous _

Important: Comme chaque plate-forme prend en charge différents paramètres régionaux et possède différents codes et méthodes de spécification des paramètres régionaux, Xamarin.Essentials fournit une plate-forme multiplateforme Locale et un moyen de les interroger avec GetLocalesAsync . Pour l'afficher dans cet article, j'ai déclaré la variable Locate qui doit être ajoutée dans l'implémentation complète illustrée ci-dessous .

 var locales = attendre TextToSpeech.GetLocalesAsync ();
  var locale = locales.FirstOrDefault ();

Implémentation complète:

 public async Task SpeakTest ()
{
    Options SpeechOptions = nouvelles SpeechOptions
    {
          Volume = .75f,
          Pas = 1.0f,
          Localiser = localiser
    };
    attendre TextToSpeech.SpeakAsync ("Bonjour à tous!", options);
 }

CancellationToken: Vous permet d'arrêter l'énoncé une fois qu'il a commencé.

 CancellationTokenSource cancelToken;
    Public Async Task SpeakTest ()
    {
        cancelToken = new CancellationTokenSource ();
        attendre TextToSpeech.SpeakAsync ("Bonjour à tous!", cancelToken: cancelToken.Token);

        // Cette méthode bloquera jusqu'à la fin de l'énoncé.
    }

    // Annule la parole si un jeton d'annulation existe et n'a pas déjà été demandé.
    public void CancelSpeech ()
    {
        if (annulationToken? .IsCancellationRequested ?? true)
            revenir;

        annulationToken.Cancel ();
    }

Merci d'avoir lu! 💚

Références: https://docs.microsoft.com/en-us/xamarin/essentials/text-to-speech





Source link