# Μετατροπή ομιλίας σε κείμενο - Εικονική συσκευή IoT Σε αυτό το μέρος του μαθήματος, θα γράψετε κώδικα για να μετατρέψετε την ομιλία που καταγράφεται από το μικρόφωνό σας σε κείμενο χρησιμοποιώντας την υπηρεσία ομιλίας. ## Μετατροπή ομιλίας σε κείμενο Σε Windows, Linux και macOS, το Python SDK των υπηρεσιών ομιλίας μπορεί να χρησιμοποιηθεί για να ακούσει το μικρόφωνό σας και να μετατρέψει οποιαδήποτε ανιχνευόμενη ομιλία σε κείμενο. Θα ακούει συνεχώς, ανιχνεύοντας τα επίπεδα ήχου και στέλνοντας την ομιλία για μετατροπή σε κείμενο όταν τα επίπεδα ήχου πέφτουν, όπως στο τέλος ενός μπλοκ ομιλίας. ### Εργασία - μετατροπή ομιλίας σε κείμενο 1. Δημιουργήστε μια νέα εφαρμογή Python στον υπολογιστή σας σε έναν φάκελο που ονομάζεται `smart-timer` με ένα μόνο αρχείο που ονομάζεται `app.py` και ένα εικονικό περιβάλλον Python. 1. Εγκαταστήστε το πακέτο Pip για τις υπηρεσίες ομιλίας. Βεβαιωθείτε ότι το εγκαθιστάτε από ένα τερματικό με ενεργοποιημένο το εικονικό περιβάλλον. ```sh pip install azure-cognitiveservices-speech ``` > ⚠️ Εάν λάβετε το ακόλουθο σφάλμα: > > ```output > ERROR: Could not find a version that satisfies the requirement azure-cognitiveservices-speech (from versions: none) > ERROR: No matching distribution found for azure-cognitiveservices-speech > ``` > > Θα χρειαστεί να ενημερώσετε το Pip. Κάντε το με την ακόλουθη εντολή και στη συνέχεια δοκιμάστε να εγκαταστήσετε ξανά το πακέτο. > > ```sh > pip install --upgrade pip > ``` 1. Προσθέστε τις ακόλουθες εισαγωγές στο αρχείο `app.py`: ```python import requests import time from azure.cognitiveservices.speech import SpeechConfig, SpeechRecognizer ``` Αυτές οι εισαγωγές περιλαμβάνουν κάποιες κλάσεις που χρησιμοποιούνται για την αναγνώριση ομιλίας. 1. Προσθέστε τον ακόλουθο κώδικα για να δηλώσετε κάποιες ρυθμίσεις: ```python speech_api_key = '' location = '' language = '' recognizer_config = SpeechConfig(subscription=speech_api_key, region=location, speech_recognition_language=language) ``` Αντικαταστήστε το `` με το API key για την υπηρεσία ομιλίας σας. Αντικαταστήστε το `` με την τοποθεσία που χρησιμοποιήσατε όταν δημιουργήσατε τον πόρο της υπηρεσίας ομιλίας. Αντικαταστήστε το `` με το όνομα τοπικής ρύθμισης για τη γλώσσα στην οποία θα μιλάτε, για παράδειγμα `en-GB` για Αγγλικά ή `zn-HK` για Καντονέζικα. Μπορείτε να βρείτε μια λίστα με τις υποστηριζόμενες γλώσσες και τα ονόματα τοπικών ρυθμίσεων στην [τεκμηρίωση υποστήριξης γλωσσών και φωνών στο Microsoft docs](https://docs.microsoft.com/azure/cognitive-services/speech-service/language-support?WT.mc_id=academic-17441-jabenn#speech-to-text). Αυτές οι ρυθμίσεις χρησιμοποιούνται στη συνέχεια για τη δημιουργία ενός αντικειμένου `SpeechConfig` που θα χρησιμοποιηθεί για τη διαμόρφωση των υπηρεσιών ομιλίας. 1. Προσθέστε τον ακόλουθο κώδικα για να δημιουργήσετε έναν αναγνωριστή ομιλίας: ```python recognizer = SpeechRecognizer(speech_config=recognizer_config) ``` 1. Ο αναγνωριστής ομιλίας λειτουργεί σε ένα νήμα παρασκηνίου, ακούγοντας τον ήχο και μετατρέποντας οποιαδήποτε ομιλία σε κείμενο. Μπορείτε να λάβετε το κείμενο χρησιμοποιώντας μια συνάρτηση επιστροφής - μια συνάρτηση που ορίζετε και περνάτε στον αναγνωριστή. Κάθε φορά που ανιχνεύεται ομιλία, καλείται η συνάρτηση επιστροφής. Προσθέστε τον ακόλουθο κώδικα για να ορίσετε μια συνάρτηση επιστροφής και να την περάσετε στον αναγνωριστή, καθώς και να ορίσετε μια συνάρτηση για την επεξεργασία του κειμένου, γράφοντάς το στην κονσόλα: ```python def process_text(text): print(text) def recognized(args): process_text(args.result.text) recognizer.recognized.connect(recognized) ``` 1. Ο αναγνωριστής ξεκινά να ακούει μόνο όταν τον ξεκινήσετε ρητά. Προσθέστε τον ακόλουθο κώδικα για να ξεκινήσετε την αναγνώριση. Αυτό λειτουργεί στο παρασκήνιο, οπότε η εφαρμογή σας θα χρειαστεί επίσης έναν άπειρο βρόχο που κοιμάται για να διατηρήσει την εφαρμογή ενεργή. ```python recognizer.start_continuous_recognition() while True: time.sleep(1) ``` 1. Εκτελέστε αυτήν την εφαρμογή. Μιλήστε στο μικρόφωνό σας και ο ήχος που μετατρέπεται σε κείμενο θα εμφανιστεί στην κονσόλα. ```output (.venv) ➜ smart-timer python3 app.py Hello world. Welcome to IoT for beginners. ``` Δοκιμάστε διαφορετικούς τύπους προτάσεων, καθώς και προτάσεις όπου οι λέξεις ακούγονται το ίδιο αλλά έχουν διαφορετικές σημασίες. Για παράδειγμα, εάν μιλάτε Αγγλικά, πείτε "I want to buy two bananas and an apple too" και παρατηρήστε πώς χρησιμοποιεί το σωστό "to", "two" και "too" με βάση το πλαίσιο της λέξης, όχι μόνο τον ήχο της. > 💁 Μπορείτε να βρείτε αυτόν τον κώδικα στον φάκελο [code-speech-to-text/virtual-iot-device](../../../../../6-consumer/lessons/1-speech-recognition/code-speech-to-text/virtual-iot-device). 😀 Το πρόγραμμα μετατροπής ομιλίας σε κείμενο ήταν επιτυχές! --- **Αποποίηση ευθύνης**: Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν σφάλματα ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.