Faites parler vos applications en .NET Par maxituc www.siteduzero.com Licence C
Faites parler vos applications en .NET Par maxituc www.siteduzero.com Licence Creative Commons 4 2.0 Dernière mise à jour le 21/07/2012 Sommaire 2 Sommaire ........................................................................................................................................... 1 Lire aussi ............................................................................................................................................ 3 Faites parler vos applications en .NET ............................................................................................... 3 En avant moussaillon ........................................................................................................................................................ 4 Création de l'interface ....................................................................................................................................................... 5 Coder la parole de votre application ................................................................................................................................. 10 Encore plus loin ............................................................................................................................................................... 10 Récupérer la liste des voix installées sur l'ordinateur ............................................................................................................................................... 11 Connaitre l'état de notre voix de synthèse ................................................................................................................................................................. 12 Vérifier si une voix est bien installée ......................................................................................................................................................................... 13 Q.C.M. ............................................................................................................................................................................. 14 Partager ..................................................................................................................................................................................................................... 2/15 www.siteduzero.com Faites parler vos applications en .NET Par maxituc Mise à jour : 21/07/2012 Difficulté : Facile Durée d'étude : 2 heures 83 visites depuis 7 jours, classé 600/797 Peut-être pensiez vous que votre application ne pouvait pas communiquer d'une façon autre que par le texte ? Ce temps est révolu ! Dès maintenant, vous pouvez aisément convertir un texte en voix synthétique. Cette technologie s'appelle Text-to-Speech soit en français « texte à la parole ». Dans ce tutoriel, nous verrons comment utiliser cette méthode dans deux langages .NET à savoir : le C#; le VB.NET. À la fin de ce tutoriel, vous saurez faire communiquer votre application avec l'utilisateur via une voix de synthèse française. Sommaire du tutoriel : En avant moussaillon Création de l'interface Coder la parole de votre application Encore plus loin Q.C.M. En avant moussaillon Ce tutoriel utilise le VB.NET ainsi que le C#, il est vivement recommandé de connaître au moins l'un de ces deux langages de programmation. Si vous ne maîtrisez aucun de ces deux langages de programmation, je vous renvoie aux tutoriels officiels correspondants : Secret (cliquez pour afficher) apprendre le C# ; apprendre le VB.net. Si vous suivez toujours, voici ma petite liste des prérequis : une version de V isual Studio (V isual Studio Express est gratuit) ; un ordinateur avec haut parleur ou tout autre sortie audio ; un petit supplément que l'on verra plus tard. Comme je vous avais dit, un petit supplément fort agréable serait très utile pour nous. Sans vous faire attendre, emparons-nous de cet ajout. Si vous voulez que votre application parle en français, il va vous falloir une voix française, pour cela cliquez ici, téléchargez et installez cette voix. Il s'agit de la voix française de V irginie qui est la voix française qui possède certainement la meilleure intonation et prononciation. Sommaire 3/15 www.siteduzero.com Maintenant que nous avons la voix française de V irginie, nous devons ajouter une référence à notre projet. Lancez votre logiciel préféré (oui , je parle bien de V isual Studio ), puis créez un nouveau projet : Onglet Fichier ; Nouveau projet... ; Choisissez Visual Basic ou C# (selon votre préférence) ; Application Windows Forms ; Choisissez un nom ; Appuyez sur OK, mais vous devez normalement être assez grand pour savoir le faire... À présent, vous devriez être devant un Form vide, entièrement vide. Nous allons, comme convenu, ajouter une référence à notre projet pour pouvoir utiliser le Text-to-Speech. Cliquez sur l'onglet Projet puis choisissez Ajouter une référence ... Une nouvelle fenêtre apparaît, celle-ci liste toutes les références disponibles. Sélectionnez l'onglet .NET et recherchez dans la liste ci-dessous le composant nommé System.Speech. V ous êtes maintenant prêt à faire parler votre application ! Création de l'interface V ous vous doutez bien que nous allons pas faire The interface mais juste une interface simple et complète. Ainsi, nous disposerons d'une zone de texte et des boutons d'actions. Commençons dès maintenant à créer la zone de texte où l'utilisateur éditera le texte, qui sera ensuite convertie en parole par l'application : ajoutez un RichTextBox ; changez son nom (propriété Name) en "champtexte" ; écrivez "Ceci est un texte" en texte (propriété Text) ; Faites parler vos applications en .NET 4/15 www.siteduzero.com V oici le résultat, rien de bien trop compliqué : Même si la zone de texte est très importante, il ne faut pas oublier les boutons, car ce sont eux qui vont nous permette d'effectuer des actions, et en l’occurrence, de lire le contenu de la zone de texte : ajoutez un bouton (Button) ; changez son nom (propriété Name) en lecture ; écrivez "Lecture synchrone" (nous verrons pourquoi plus tard) en texte (Propriété text). V oici le résultat final : Maintenant que nous avons nos principaux éléments, nous allons pouvoir rentrer dans le vif du sujet, à savoir le code. Coder la parole de votre application Nous voilà enfin au moment tant attendu. Nous allons enfin pouvoir coder ! Avant de commencer, je dois vous signaler qu'il y a deux méthodes d'utilisation. C'est deux méthodes sont : la méthode synchrone ; la méthode asynchrone. Il y a une différence fondamentale sur l'aspect de votre application entre ces deux méthodes. Nous verrons cette différence par la suite. Tout d'abord, il va falloir faire quelques petits Imports en VB.NET ou using en C# : Code : VB.NET Imports System.Speech.Synthetizer Imports System.Speech.Synthesis Faites parler vos applications en .NET 5/15 www.siteduzero.com Code : C# using System.Speech; using System.Speech.Synthesis; Pour lancer notre lecture et entendre la douce voix de V irginie, il va falloir créer un SpeechSynthesizer (synthétiseur vocal en français), ainsi que demander à celui-ci de nous lire des données de type string (chaîne de caractères) : Code : VB.NET Dim parole As SpeechSynthesizer = New SpeechSynthesizer() parole.Speak(champtexte.Text) Code : C# SpeechSynthesizer parole = new SpeechSynthesizer(); parole.Speak(champtexte.Text); Y eah, mon application parle enfin, mais (il y a toujours un mais ) pourquoi parle-t-elle avec un accent horrible ? Tu avais dit que la voix de V irginie était la meilleure ... En effet, la voix que nous entendons est la voix d’Anna, la voix par défaut de Windows qui est une voix anglaise. Pour choisir la voix de V irginie, il va falloir attribuer à notre SpeechSynthesizer la voix de V irginie, mais ça reste relativement simple : Code : VB.NET parole.SelectVoice("ScanSoft Virginie_Dri40_16kHz") Code : C# parole.SelectVoice("ScanSoft Virginie_Dri40_16kHz"); Nous obtenons donc un simple code de trois lignes, nous permettant de déclarer notre SpeechSynthesizer, attribuer à celui-ci une voix et de le faire parler : Code : VB.NET Dim parole As SpeechSynthesizer = New SpeechSynthesizer() parole.SelectVoice("ScanSoft Virginie_Dri40_16kHz") parole.Speak(champtexte.Text) Code : C# SpeechSynthesizer parole = new SpeechSynthesizer(); parole.SelectVoice("ScanSoft Virginie_Dri40_16kHz"); parole.Speak(champtexte.Text); Faites parler vos applications en .NET 6/15 www.siteduzero.com Maintenant, vous avez donc la jolie et douce voix de V irginie. Avez-vous remarqué que votre application se figeait au moment de la lecture ? C'est à ce moment qu’intervient la notion synchrone et asynchrone, à laquelle j'avais fait allusion plus haut. Je vous avais dit qu'il y aurait une différence fondamentale. En effet, avec la méthode asynchrone, votre application ne se figera pas pendant la lecture, et vous aurez la possibilité de mettre en pause, de reprendre ou de stopper la lecture, chose infaisable avec la méthode synchrone. C'est donc pour cela que je vous conseille vivement la méthode asynchrone qui est beaucoup plus avantageuse. Pour l'utiliser, il faut déclarer notre SpeechSynthesizer en Public de façon à interagir avec lui par l'intérmédiaire de plusieurs contrôles : Code : VB.NET Public parole As SpeechSynthesizer = New SpeechSynthesizer() Code : C# public SpeechSynthesizer parole = new SpeechSynthesizer(); Maintenant que notre SpeechSynthesizer est déclaré publiquement, nous pouvons recommencer la lecture mais cette fois-ci de façon asynchrone et comme le framework .NET est très bien fait, il n'y a pas besoin de plus de code par rapport a la méthode synchrone : créez un nouveau bouton (Button) ; changez sa propriété Text en lecture asynchrone ; changez sa propriété Name en "lectureasynchrone". V oici le résultat : Dans l'événement Clic de notre nouveau bouton, nous allons lui demander la même chose qu'avec notre bouton de lecture précédent : sélection de la voix ; lui demander de lire notre chaîne de caractère qui se trouve dans notre exemple le texte contenu dans notre textbox. Faites parler vos applications en .NET 7/15 www.siteduzero.com Code : VB.NET parole.SelectVoice("ScanSoft Virginie_Dri40_16kHz") parole.SpeakAsync(champtexte.Text) Code : C# parole.SelectVoice("ScanSoft Virginie_Dri40_16kHz"); parole.SpeakAsync(champtexte.Text); Comme vous pouvez le constater, il n' y a pas de grosse différence au niveau du code de ces deux méthodes pour un résultat phénoménal, car vous avez pu remarquer que l'application ne s'est pas figée et nous allons pouvoir effectuer plusieurs actions sur notre SpeechSynthesizer. Pour poursuivre, nous allons voire comment faire nos fameux boutons de pause, de reprise et de stoppage de la lecture. Ces actions sont facilement réalisables, elles tiennent en une simple et unique ligne de code : Code : VB.NET parole.Pause() ' Pour mettre en pause parole.Resume() ' Pour reprendre la lecture parole.SpeakAsyncCancelAll() ' Et pour stopper la lecture Code : C# parole.Pause(); // Pour mettre en pause parole.Resume(); // Pour reprendre la lecture parole.SpeakAsyncCancelAll(); // Et pour stopper la lecture Pour ce qui n'ont pas tout suivi, voici le code complet : Secret (cliquez pour afficher) Code : VB.NET Imports System.Speech.Synthetizer Imports System.Speech.Synthesis Public Class Form1 Public parole As SpeechSynthesizer = New SpeechSynthesizer() Faites parler vos applications en .NET 8/15 www.siteduzero.com Private Sub lecture_Click(sender As System.Object, e uploads/S4/ faites-parler-vos-applications-en-net.pdf
Documents similaires
-
18
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mai 06, 2021
- Catégorie Law / Droit
- Langue French
- Taille du fichier 0.5708MB