You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/fr/6-consumer/lessons/3-spoken-feedback/virtual-device-text-to-spee...

5.1 KiB

Texte en parole - Appareil IoT virtuel

Dans cette partie de la leçon, vous allez écrire du code pour convertir du texte en parole en utilisant le service vocal.

Convertir du texte en parole

Le SDK des services vocaux que vous avez utilisé dans la leçon précédente pour convertir de la parole en texte peut également être utilisé pour convertir du texte en parole. Lors de la demande de synthèse vocale, vous devez spécifier la voix à utiliser, car la parole peut être générée avec une variété de voix différentes.

Chaque langue prend en charge une gamme de voix différentes, et vous pouvez obtenir la liste des voix disponibles pour chaque langue à partir du SDK des services vocaux.

Tâche - convertir du texte en parole

  1. Ouvrez le projet smart-timer dans VS Code, et assurez-vous que l'environnement virtuel est chargé dans le terminal.

  2. Importez le SpeechSynthesizer depuis le package azure.cognitiveservices.speech en l'ajoutant aux imports existants :

    from azure.cognitiveservices.speech import SpeechConfig, SpeechRecognizer, SpeechSynthesizer
    
  3. Au-dessus de la fonction say, créez une configuration vocale à utiliser avec le synthétiseur vocal :

    speech_config = SpeechConfig(subscription=speech_api_key,
                                 region=location)
    speech_config.speech_synthesis_language = language
    speech_synthesizer = SpeechSynthesizer(speech_config=speech_config)
    

    Cela utilise la même clé API, localisation et langue que celles utilisées par le reconnaisseur.

  4. En dessous, ajoutez le code suivant pour obtenir une voix et la définir dans la configuration vocale :

    voices = speech_synthesizer.get_voices_async().get().voices
    first_voice = next(x for x in voices if x.locale.lower() == language.lower())
    speech_config.speech_synthesis_voice_name = first_voice.short_name
    

    Cela récupère une liste de toutes les voix disponibles, puis trouve la première voix correspondant à la langue utilisée.

    💁 Vous pouvez obtenir la liste complète des voix prises en charge dans la documentation sur le support des langues et des voix sur Microsoft Docs. Si vous souhaitez utiliser une voix spécifique, vous pouvez supprimer cette fonction et coder en dur la voix en utilisant le nom de la voix depuis cette documentation. Par exemple :

    speech_config.speech_synthesis_voice_name = 'hi-IN-SwaraNeural'
    
  5. Mettez à jour le contenu de la fonction say pour générer du SSML pour la réponse :

    ssml =  f'<speak version=\'1.0\' xml:lang=\'{language}\'>'
    ssml += f'<voice xml:lang=\'{language}\' name=\'{first_voice.short_name}\'>'
    ssml += text
    ssml += '</voice>'
    ssml += '</speak>'
    
  6. En dessous, arrêtez la reconnaissance vocale, faites parler le SSML, puis redémarrez la reconnaissance :

    recognizer.stop_continuous_recognition()
    speech_synthesizer.speak_ssml(ssml)
    recognizer.start_continuous_recognition()
    

    La reconnaissance est arrêtée pendant que le texte est prononcé pour éviter que l'annonce du démarrage du minuteur ne soit détectée, envoyée à LUIS et éventuellement interprétée comme une demande de réglage d'un nouveau minuteur.

    💁 Vous pouvez tester cela en commentant les lignes pour arrêter et redémarrer la reconnaissance. Réglez un minuteur, et vous pourriez constater que l'annonce en configure un nouveau, ce qui entraîne une nouvelle annonce, puis un nouveau minuteur, et ainsi de suite à l'infini !

  7. Exécutez l'application, et assurez-vous que l'application fonctionnelle est également en cours d'exécution. Réglez quelques minuteurs, et vous entendrez une réponse vocale indiquant que votre minuteur a été réglé, puis une autre réponse vocale lorsque le minuteur est terminé.

💁 Vous pouvez trouver ce code dans le dossier code-spoken-response/virtual-iot-device.

😀 Votre programme de minuteur a été un succès !

Avertissement :
Ce document a été traduit à l'aide du service de traduction automatique Co-op Translator. Bien que nous nous efforcions d'assurer l'exactitude, veuillez noter que les traductions automatisées peuvent contenir des erreurs ou des inexactitudes. Le document original dans sa langue d'origine doit être considéré comme la source faisant autorité. Pour des informations critiques, il est recommandé de recourir à une traduction humaine professionnelle. Nous déclinons toute responsabilité en cas de malentendus ou d'interprétations erronées résultant de l'utilisation de cette traduction.