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...

86 lines
5.1 KiB

<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "7966848a1f870e4c42edb4db67b13c57",
"translation_date": "2025-08-25T00:16:00+00:00",
"source_file": "6-consumer/lessons/3-spoken-feedback/virtual-device-text-to-speech.md",
"language_code": "fr"
}
-->
# 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.
1. Importez le `SpeechSynthesizer` depuis le package `azure.cognitiveservices.speech` en l'ajoutant aux imports existants :
```python
from azure.cognitiveservices.speech import SpeechConfig, SpeechRecognizer, SpeechSynthesizer
```
1. Au-dessus de la fonction `say`, créez une configuration vocale à utiliser avec le synthétiseur vocal :
```python
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.
1. En dessous, ajoutez le code suivant pour obtenir une voix et la définir dans la configuration vocale :
```python
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](https://docs.microsoft.com/azure/cognitive-services/speech-service/language-support?WT.mc_id=academic-17441-jabenn#text-to-speech). 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 :
>
> ```python
> speech_config.speech_synthesis_voice_name = 'hi-IN-SwaraNeural'
> ```
1. Mettez à jour le contenu de la fonction `say` pour générer du SSML pour la réponse :
```python
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>'
```
1. En dessous, arrêtez la reconnaissance vocale, faites parler le SSML, puis redémarrez la reconnaissance :
```python
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 !
1. 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](../../../../../6-consumer/lessons/3-spoken-feedback/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](https://github.com/Azure/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.