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/el/6-consumer/lessons/3-spoken-feedback/virtual-device-text-to-spee...

88 lines
7.7 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "7966848a1f870e4c42edb4db67b13c57",
"translation_date": "2025-08-27T20:23:48+00:00",
"source_file": "6-consumer/lessons/3-spoken-feedback/virtual-device-text-to-speech.md",
"language_code": "el"
}
-->
# Μετατροπή κειμένου σε ομιλία - Εικονική συσκευή IoT
Σε αυτό το μέρος του μαθήματος, θα γράψετε κώδικα για να μετατρέψετε κείμενο σε ομιλία χρησιμοποιώντας την υπηρεσία ομιλίας.
## Μετατροπή κειμένου σε ομιλία
Το SDK των υπηρεσιών ομιλίας που χρησιμοποιήσατε στο προηγούμενο μάθημα για τη μετατροπή ομιλίας σε κείμενο μπορεί να χρησιμοποιηθεί για να μετατρέψει το κείμενο πίσω σε ομιλία. Όταν ζητάτε ομιλία, πρέπει να παρέχετε τη φωνή που θα χρησιμοποιηθεί, καθώς η ομιλία μπορεί να παραχθεί χρησιμοποιώντας μια ποικιλία διαφορετικών φωνών.
Κάθε γλώσσα υποστηρίζει μια σειρά από διαφορετικές φωνές, και μπορείτε να λάβετε τη λίστα των υποστηριζόμενων φωνών για κάθε γλώσσα από το SDK των υπηρεσιών ομιλίας.
### Εργασία - μετατροπή κειμένου σε ομιλία
1. Ανοίξτε το έργο `smart-timer` στο VS Code και βεβαιωθείτε ότι το εικονικό περιβάλλον είναι φορτωμένο στο τερματικό.
1. Εισάγετε το `SpeechSynthesizer` από το πακέτο `azure.cognitiveservices.speech` προσθέτοντάς το στις υπάρχουσες εισαγωγές:
```python
from azure.cognitiveservices.speech import SpeechConfig, SpeechRecognizer, SpeechSynthesizer
```
1. Πάνω από τη συνάρτηση `say`, δημιουργήστε μια διαμόρφωση ομιλίας για χρήση με τον συνθέτη ομιλίας:
```python
speech_config = SpeechConfig(subscription=speech_api_key,
region=location)
speech_config.speech_synthesis_language = language
speech_synthesizer = SpeechSynthesizer(speech_config=speech_config)
```
Αυτό χρησιμοποιεί το ίδιο API key, την τοποθεσία και τη γλώσσα που χρησιμοποιήθηκαν από τον αναγνωριστή.
1. Κάτω από αυτό, προσθέστε τον ακόλουθο κώδικα για να λάβετε μια φωνή και να την ορίσετε στη διαμόρφωση ομιλίας:
```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
```
Αυτό ανακτά μια λίστα με όλες τις διαθέσιμες φωνές και στη συνέχεια βρίσκει την πρώτη φωνή που ταιριάζει με τη γλώσσα που χρησιμοποιείται.
> 💁 Μπορείτε να βρείτε την πλήρη λίστα των υποστηριζόμενων φωνών από την [τεκμηρίωση υποστήριξης γλώσσας και φωνής στο Microsoft Docs](https://docs.microsoft.com/azure/cognitive-services/speech-service/language-support?WT.mc_id=academic-17441-jabenn#text-to-speech). Εάν θέλετε να χρησιμοποιήσετε μια συγκεκριμένη φωνή, μπορείτε να αφαιρέσετε αυτήν τη συνάρτηση και να ορίσετε τη φωνή απευθείας με το όνομα της φωνής από αυτήν την τεκμηρίωση. Για παράδειγμα:
>
> ```python
> speech_config.speech_synthesis_voice_name = 'hi-IN-SwaraNeural'
> ```
1. Ενημερώστε το περιεχόμενο της συνάρτησης `say` για να δημιουργήσετε SSML για την απάντηση:
```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. Κάτω από αυτό, σταματήστε την αναγνώριση ομιλίας, μιλήστε το SSML και στη συνέχεια ξεκινήστε ξανά την αναγνώριση:
```python
recognizer.stop_continuous_recognition()
speech_synthesizer.speak_ssml(ssml)
recognizer.start_continuous_recognition()
```
Η αναγνώριση σταματά ενώ το κείμενο εκφωνείται για να αποφευχθεί η ανίχνευση της ανακοίνωσης της έναρξης του χρονομέτρου, η αποστολή της στο LUIS και η πιθανή ερμηνεία της ως αίτημα για ρύθμιση νέου χρονομέτρου.
> 💁 Μπορείτε να το δοκιμάσετε σχολιάζοντας τις γραμμές για να σταματήσετε και να ξεκινήσετε ξανά την αναγνώριση. Ρυθμίστε ένα χρονομέτρο και ίσως διαπιστώσετε ότι η ανακοίνωση ρυθμίζει ένα νέο χρονομέτρο, το οποίο προκαλεί μια νέα ανακοίνωση, οδηγώντας σε ένα νέο χρονομέτρο, και ούτω καθεξής για πάντα!
1. Εκτελέστε την εφαρμογή και βεβαιωθείτε ότι η λειτουργία της εφαρμογής είναι επίσης ενεργή. Ρυθμίστε μερικά χρονόμετρα και θα ακούσετε μια φωνητική απάντηση που λέει ότι το χρονομέτρό σας έχει ρυθμιστεί, και στη συνέχεια μια άλλη φωνητική απάντηση όταν το χρονομέτρο ολοκληρωθεί.
> 💁 Μπορείτε να βρείτε αυτόν τον κώδικα στον φάκελο [code-spoken-response/virtual-iot-device](../../../../../6-consumer/lessons/3-spoken-feedback/code-spoken-response/virtual-iot-device).
😀 Το πρόγραμμα χρονομέτρου σας ήταν επιτυχές!
---
**Αποποίηση ευθύνης**:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.