Χρήση του Google Cloud Speech API v2 στο Asterisk για την αναγνώριση ομιλίας στα ρωσικά. Αναζητήστε ένα βέλτιστο σύστημα αναγνώρισης ομιλίας ήχου με κλειστό πηγαίο κώδικα, αλλά με ανοιχτά API για ενσωμάτωση

Ακολουθούν πληροφορίες από το Διαδίκτυο από τον ιστότοπο vorabota.ru :

Για να ξεκινήσετε τη μετατροπή φωνής σε κείμενο, θα χρειαστείτε ένα μικρόφωνο (σε φορητούς υπολογιστές είναι ενσωματωμένο), ένα καλό είναι επιθυμητό ταχύτητα σύνδεσης στο διαδίκτυοκαι πρόγραμμα περιήγησης Google Chromeόχι χαμηλότερη από την έκδοση 25. Σε άλλα προγράμματα περιήγησης η λειτουργία φωνητικη κλησηκείμενα, δυστυχώς, δεν λειτουργεί.

Εκκινήστε τη σελίδα για να εισαγάγετε κείμενο φωνητικά πρόγραμμα περιήγησης Chrome. Στο κάτω μέρος του παραθύρου, επιλέξτε τη γλώσσα στην οποία σκοπεύετε να υπαγορεύσετε το κείμενο. Κάντε κλικ στο εικονίδιο του μικροφώνου στην επάνω δεξιά γωνία. Και στην αναδυόμενη γραμμή, κάντε κλικ στο κουμπί "Να επιτρέπεται" ώστε το πρόγραμμα περιήγησης να χρησιμοποιήσει το μικρόφωνο.

Τώρα μπορείτε να προφέρετε αργά και καθαρά σύντομες φράσεις. Αφού ολοκληρώσετε την υπαγόρευση κειμένου με φωνή, μπορείτε να το επιλέξετε χρησιμοποιώντας μια συντόμευση πληκτρολογίου Ctrl+Cαντιγράψτε στο πρόχειρο και, στη συνέχεια, επικολλήστε σε οποιοδήποτε πρόγραμμα επεξεργασίας για επεξεργασία. Εάν το επιθυμείτε, το κείμενο μπορεί να σταλεί αμέσως από ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ.

Ισως, Web Speech API- ο απλούστερος και αρκετά υψηλής ποιότητας τρόπος για να μετατρέψετε την ομιλία σας σε κείμενο. Δεδομένου ότι δεν χρειάζεται να αποσπαστείτε από τυχόν πρόσθετους χειρισμούς με το πληκτρολόγιο. Απλώς ανοίξτε το μικρόφωνο και πείτε το κείμενο.

Σε κάθε περίπτωση, θα πρέπει να χρησιμοποιήσετε κάποια επιπλέον επεξεργαστής κειμένου για περαιτέρω διόρθωση του υπαγορευμένου κειμένου.

Ξεκίνησε στο πρόγραμμα περιήγησης Google Chromeσελίδα http://vorabota.ru/voice/text.html και δοκίμασε τη φωνητική εισαγωγή κειμένου. Διάβασα τη φράση " Web Speech API Φωνητική πληκτρολόγηση. Επιλογή όλων. Να στείλετε e-mail", αλλά έλαβε" Websphere api φωνητική πληκτρολόγηση επιλέξτε όλα αποστολή email". Δεύτερη προσπάθεια: " Κάντε κλικ στο κουμπί Να επιτρέπεται για να καταργήσετε τη σίγαση του μικροφώνου» — « Κάντε κλικ στο κουμπί Να επιτρέπεται για να ενεργοποιήσετε το μικρόφωνο«.

Η σύγκριση της αρχικής φράσης και του αποτελέσματος δείχνει ότι: α) η ρωσική φράση μετατρέπεται σε ρωσικό κείμενο με επαρκή ποιότητα. β) η αγγλική φράση μετατρέπεται σε αγγλικό κείμενο με σφάλματα που είναι εύκολο να διορθωθούν. γ) απαιτείται υποχρεωτική διόρθωση κειμένου για τη διόρθωση σφαλμάτων και την τοποθέτηση σημείων στίξης και κεφαλαία γράμματα; δ) η διαφορά μεταξύ αυτής της υλοποίησης Φωνητική πληκτρολόγησηαπό άλλα διαθέσιμα στο Διαδίκτυο, με εξαιρετική απλότητα: δεν υπάρχει τίποτα περιττό σε αυτό, που το καθιστά εύκολο στην εκμάθηση και τη χρήση.

Το συμπέρασμά μου είναι το εξής: είναι λογικό να εφαρμόζεται με αυτόν τον τρόπο Φωνητική είσοδοςκείμενοστον ιστότοπό σας για να διευκολύνετε την εισαγωγή κειμένου στις σελίδες του ιστότοπού σας.

Απλά πρέπει να επικολλήσετε τον απαιτούμενο κώδικα στην κατάλληλη σελίδα του ιστότοπου.

Δημιουργήθηκε ξεχωριστή σελίδα, προορίζεται μόνο για Φωνητική εισαγωγή κειμένουκαι άρχισε να το διορθώνει.

Εδώ είναι ο κώδικας της σελίδας Υπαγορεύστε το κείμενο:

Εντοπισμός σφαλμάτων κώδικα...

Μπορείτε να χρησιμοποιήσετε τον κωδικό που δίνεται στον ιστότοπό σας, μεταμορφώνοντάς τον όπως σας ταιριάζει.

Καλώ όλους να μιλήσουν

Google Speech API- Υπηρεσία αναγνώρισης φωνής Google.

Η αναγνώριση ομιλίας σάς επιτρέπει να δημιουργείτε αυτόματα συστήματα εξυπηρέτησης πελατών σε περιπτώσεις όπου ο έλεγχος με χρήση τονική κλήση. Ως παράδειγμα, μπορούμε να εξετάσουμε μια υπηρεσία κράτησης αεροπορικών εισιτηρίων, η οποία περιλαμβάνει την επιλογή μεγάλος αριθμόςπόλεις. Το μενού τόνου σε μια τέτοια υπηρεσία δεν είναι βολικό, έτσι φωνητικός έλεγχοςθα είναι το πιο αποτελεσματικό. Ο διάλογος μεταξύ του συστήματος και του συνδρομητή μπορεί να μοιάζει με αυτό:

Σύστημα: Γεια. Πού θέλετε να πετάξετε; Συνδρομητής: Σύστημα Kazan: Από πού θέλετε να πετάξετε; Συνδρομητής: Σύστημα Μόσχας: Καθορίστε την ημερομηνία αναχώρησης Συνδρομητής: 10 Απριλίου

Ένα σύστημα αναγνώρισης ομιλίας αποτελείται συνήθως από τα ακόλουθα μέρη:

  • Ηχογράφηση μηνύματος από συνδρομητή
  • Αναγνώριση φωνής και λήψη δεδομένων κειμένου από την υπηρεσία
  • Ανάλυση των πληροφοριών που λαμβάνονται και λήψη των απαραίτητων ενεργειών

Για χρήση Google Speech APIστο σύστημά σας κάντε τα εξής:

Βήμα 1.Λήψη και εισαγωγή σεναρίων στο σύστημά σας Oktell.

Κατεβάστε το σενάριο:(για εκδόσεις Oktellπαλαιότερο από 2,10)

Το αρχείο περιέχει δύο σενάρια:

  • Google_Speech_API_main- σενάριο για ηχογράφηση φωνητικό μήνυμα, είναι ένα παράδειγμα σωστή χρήσηυπηρεσία αναγνώρισης στο κύριο σενάριο.
  • Google_Speech_API- σενάριο για αποστολή ηχογράφησης υπηρεσία Googleκαι λήψη του αναγνωρισμένου μηνύματος.

Μετά την εισαγωγή σεναρίων σε Oktell, σώστε τους" Προς διακομιστή"

ΣΗΜΕΙΩΣΗ: Το Google Speech API είναι επί πληρωμή προϊόν. Στο σενάριο (Στοιχείο αιτήματος Ιστού Google Voice) χρησιμοποιείται ένα δοκιμαστικό κλειδί, το οποίο μπορεί να αποκλειστεί ως αποτέλεσμα έναν ορισμένο αριθμόαιτήσεων. Κατά τη διάρκεια των δοκιμών μέγιστο ποσόδεν βρέθηκαν αιτήματα. Εάν θέλετε να αγοράσετε ένα επί πληρωμή Έκδοση GoogleΤο Speech API επικοινωνήστε με την υποστήριξη της Google.

Βήμα 2.Στην ενότητα " Διαχείριση" - "Εξωτερικοί αριθμοί"προσθήκη αριθμού επέκτασης με τύπο" Εκκίνηση IVRΕπιλέξτε το σενάριο IVR Google_Speech_API_main.

Σήμερα είναι απλά αδύνατο να τα βγάλεις πέρα ​​χωρίς υπολογιστή. σύγχρονος κόσμος. Δεν απαιτείται να είστε κύριος του Photoshop ή επαγγελματίας επεξεργασίας βίντεο (εκτός και αν σχετίζεται με την εργασία, φυσικά). Αλλά το να μπορείς να πληκτρολογήσεις κάποιο κείμενο είναι ελάχιστο απαιτούμενο.

Νο 2. Web Speech API


Διαδικτυακό πρόγραμμα WebΤο Speech API είναι πανομοιότυπο σε λειτουργικότητα με τα προηγούμενα.

Αυτή η υπηρεσία, όπως αυτές που αναφέρονται παραπάνω, δημιουργήθηκε επίσης από την Google.

Αρχική σελίδαμοιάζει με αυτό:


ΣΕ απλή διεπαφήΕίναι αμέσως προφανές ότι για να ξεκινήσετε την εγγραφή πρέπει να επιλέξετε μια γλώσσα και μετά να πατήσετε το μικρόφωνο.

Αφού κάνετε κλικ στο εικονίδιο στα δεξιά, το σύστημα θα κάνει σίγουρα αίτημα πρόσβασης.


Αφού δώσετε το πράσινο φως, μπορείτε να ξεκινήσετε αμέσως τη δουλειά. Πληκτρολογήστε κείμενο φωνητικά και αυτό έντυπη έκδοσηθα εμφανιστεί στο παράθυρο.

Αφού ολοκληρώσετε την εργασία, μπορείτε να αντιγράψετε το κείμενο όπου το χρειάζεστε (και πάλι, ctrl+C, ctrl+V).

Νο 3.

Ομιλητής Οχι λιγότεροαπλό πρόγραμμα

– αυτό είναι το Talktyper. Για να ξεκινήσετε, μεταβείτε στον ιστότοπο:


https://talktyper.com/ru/index.html.

Για να ξεκινήσετε, απλώς κάντε κλικ στο εικονίδιο του μικροφώνου στα δεξιά. Σε αντίθεση με αυτά που περιγράφονται παραπάνω, αυτή η δακτυλογράφος μπορεί να ανοίξει χρησιμοποιώντας οποιοδήποτε πρόγραμμα περιήγησης. Αν και ο ιστότοπος έχει δημιουργηθεί στις ΗΠΑ, η εφαρμογή αναγνωρίζει εύκολα τα περισσότεραδημοφιλείς γλώσσες

κόσμο, συμπεριλαμβανομένων των ρωσικών.

Το Talktyper είναι πολυλειτουργικό: όχι μόνο πληκτρολογεί κείμενο, αλλά βάζει και σημεία στίξης και διορθώνει μόνο του τα λάθη. Εάν το σύστημα δεν μπορεί να αναγνωρίσει μια λέξη που διαβάσατε ως σωστή, σίγουρα θα τονιστεί.

Επιπλέον, το Talktyper διαθέτει λειτουργία μετάφρασης, καθώς και φωνή.

Σημείωση! Αφού ολοκληρώσετε τη φωνητική πληκτρολόγηση, φροντίστε να κάνετε κλικ στο βέλος, ώστε το πληκτρολογημένο έγγραφο να μεταφερθεί σε άλλο πεδίο. Μετά από αυτό, μπορεί να σταλεί με email ή να αντιγραφεί στο επιθυμητό αρχείο.

Πιθανά προβλήματα κατά την εργασία με προγράμματα φωνητικής κλήσης

Το σχήμα αναγνώρισης ομιλίας της συσκευής μοιάζει με αυτό:

Η όλη διαδικασία μπορεί να χωριστεί σε 3 κύρια στάδια:

    Ακουστική αναγνώριση.

    Είναι σημαντικό να μιλάτε καθαρά, δυνατά και το μικρόφωνο πρέπει να μεταδίδει τη φωνή σας χωρίς διακοπή.

    Γλωσσική επεξεργασία.

    Όσο περισσότερες λέξεις υπάρχουν στο λεξικό του προγράμματος, τόσο καλύτερη είναι η ποιότητα του πληκτρολογημένου κειμένου. Δηλαδή, όλα όσα λέτε θα αναγνωριστούν και θα μεταδοθούν μορφή κειμένουχωρίς παραμόρφωση.

    Αναγνωρισμένο ορθογραφικό κείμενο.

    Πρόγραμμα σε αυτόματη λειτουργίαεμφανίζει ορθογραφία γραφική έκδοσηυπαγορευμένος λόγος, βασιζόμενος σε παύσεις, σαφήνεια λέξεων, λεξιλόγια που βρίσκονται στο λεξικό κ.λπ.

Όταν εργάζεστε με δακτυλογράφους υπολογιστών, προκύπτουν πιο συχνά 2 προβλήματα:

  1. Ο ακουστικός αναγνωριστής «πιάνει» την ομιλία σας κατά διαστήματα.
  2. Δεν υπάρχουν αρκετές λέξεις στο λεξικό του συστήματος για να αναγνωρίσετε όλα όσα είπατε.

Για να λύσετε το πρώτο πρόβλημα, πρέπει να μιλήσετε καθαρά και δυνατά. Αλλά για το δεύτερο πρόβλημα δεν υπάρχει πρακτικά λύση, αλλά τουλάχιστον, Ελεύθερος.

Οι ελεύθερα διανεμημένες εκδόσεις προγραμμάτων αναγνώρισης ομιλίας έχουν πολύ περιορισμένο λεξιλόγιο.

Για να παρέχουν ένα πρόγραμμα με εκτεταμένο λεξιλόγιο, οι προγραμματιστές πρέπει να επενδύσουν πολλά χρήματα, γι' αυτό πολλοί αναγνωριστές αποδεικνύουν χαμηλό επίπεδομετάφραση του λόγου σε κείμενο.

Έχει προχωρήσει τα μέγιστα σε αυτό το θέμα εταιρεία Google, επειδή διαθέτει αρκετά κεφάλαια για επενδύσεις. Αυτή η εταιρεία, μεταξύ άλλων, έχει δημιουργήσει το μεγαλύτερο διαδικτυακό λεξικό που βοηθά στην αναγνώριση φωνών και τη μετάφραση του σε γραφική έκδοση.

Κοίτα αναλυτικός οδηγόςσέ αυτό τό βίντεο:

  1. Όταν εκφωνείτε μια ομιλία, η αίθουσα πρέπει να είναι ήσυχη. Οι ήχοι της φύσης, η μουσική και το κλάμα ενός παιδιού γίνονται αντιληπτά από το σύστημα ως θόρυβος. Εξαιτίας αυτού, το κείμενο θα πληκτρολογηθεί με μεγάλα λάθη.
  2. Μην μιλάτε αν φάτε κάτι. Αυτό όχι μόνο θα επηρεάσει την ποιότητα του σετ, αλλά είναι επίσης απειλητικό για τη ζωή.
  3. Πριν ξεκινήσετε, πρέπει να επιλέξετε τη σωστή ένταση της φωνής σας και επίσης να καταλάβετε τι ευαισθησία έχει το μικρόφωνό σας.

    Για να το κάνετε αυτό, δοκιμάστε να γράψετε μερικές προτάσεις με οικείο τόνο. Εάν υπάρχουν διακοπές στην εγγραφή, ανατρέξτε στις ρυθμίσεις μικροφώνου.

  4. Κάντε μικρά διαλείμματα ανάμεσα στις λέξεις.
  5. Αποφύγετε τις μεγάλες φράσεις.

Κάποιος θα το πει αυτό πρόγραμμα φωνητικής κλήσηςείναι ένας υπέροχος βοηθός που τους λύνει τα χέρια και διευκολύνει τη ζωή τους γενικά. Άλλοι θα αποφασίσουν ότι «το παιχνίδι δεν αξίζει το κερί». Επομένως, πρέπει να αποφασίσετε εάν θα τα χρησιμοποιήσετε μόνοι σας.

Και ξέρετε ήδη από ποιες υπηρεσίες να επιλέξετε...

  • Αστερίσκος,
  • Google API,
  • Yandex API
  • Επιλογή ενός API αναγνώρισης ομιλίας

    Θεώρησα μόνο ότι οι συσκευασμένες λύσεις API δεν χρειάζονταν επειδή απαιτούσαν πόρους, τα δεδομένα αναγνώρισης δεν είναι κρίσιμα για τις επιχειρήσεις και η χρήση τους είναι πολύ πιο περίπλοκη και απαιτεί περισσότερες ανθρωποώρες.

    Το πρώτο ήταν το Yandex SpeechKit Cloud. Μου άρεσε αμέσως λόγω της ευκολίας χρήσης του:

    Curl -X POST -H "Content-Type: audio/x-wav" --data-binary "@speech.wav" "https://asr.yandex.net/asr_xml?uuid=<идентификатор пользователя>&κλειδί= &topic=ερωτήματα"
    Πολιτική τιμολόγησης: 400 ρούβλια ανά 1000 αιτήματα. Ο πρώτος μήνας είναι δωρεάν. Αλλά μετά από αυτό υπήρξαν μόνο απογοητεύσεις:

    Κατά τη μετάδοση μιας μεγάλης πρότασης, ελήφθη μια απάντηση 2-3 λέξεων
    - Αυτές οι λέξεις αναγνωρίστηκαν με μια παράξενη σειρά
    - Οι προσπάθειες αλλαγής του θέματος δεν έφεραν θετικά αποτελέσματα

    Ίσως αυτό οφειλόταν στη μέση ποιότητα εγγραφής που δοκιμάσαμε τα πάντα μέσω πυλών φωνής και αρχαίων τηλεφώνων Panasonic. Προς το παρόν, σκοπεύω να το χρησιμοποιήσω στο μέλλον για την κατασκευή IVR.

    Το επόμενο ήταν μια υπηρεσία από την Google. Το Διαδίκτυο είναι γεμάτο με άρθρα που προτείνουν τη χρήση του API για προγραμματιστές Chromium. Τώρα τα κλειδιά για αυτό το API δεν μπορούν να ληφθούν τόσο εύκολα. Ως εκ τούτου, θα χρησιμοποιήσουμε μια εμπορική πλατφόρμα.

    Τιμολογιακή πολιτική - 0-60 λεπτά το μήνα δωρεάν. Στη συνέχεια, 0,006 $ ανά 15 δευτερόλεπτα ομιλίας. Κάθε αίτημα στρογγυλοποιείται σε πολλαπλάσιο του 15. Οι δύο πρώτοι μήνες είναι δωρεάν, απαιτείται πιστωτική κάρτα για τη δημιουργία ενός έργου. Οι περιπτώσεις χρήσης API στην υποκείμενη τεκμηρίωση ποικίλλουν. Θα χρησιμοποιήσουμε ένα σενάριο Python:

    Σενάριο από τεκμηρίωση

    """Δείγμα εφαρμογής Google Cloud Speech API χρησιμοποιώντας το REST API για μαζική επεξεργασία.""" εισαγωγή argparse import base64 εισαγωγή json από το googleapiclient εισαγωγή ανακάλυψης εισαγωγή httplib2 από oauth2client.client εισαγωγή GoogleCredentials DISCOVERY_URL = ("https://(api). googleapis.com/$discovery/rest?" "version=(apiVersion)") def get_speech_service(): credentials = GoogleCredentials.get_application_default().create_scoped(["https://www.googleapis.com/auth/cloud-platform "]) http = httplib2.Http() credentials.authorize(http) return discovery.build("speech", "v1beta1", http=http, discoveryServiceUrl=DISCOVERY_URL) def main(speech_file): """Μεταγραφή του δεδομένου ήχου αρχείο Args: speech_file: το όνομα του αρχείου ήχου """ με open(speech_file, "rb") ως ομιλία: speech_content = base64.b64encode(speech.read() service = get_speech_service() service_request = service.speech. ().syncrecognize(body=( "config": ( "encoding": "LINEAR16", # raw 16-bit signed LE samples "sampleRate": 16000, # 16 khz "languageCode": "en-US", # a ετικέτα γλώσσας BCP-47 ), "audio": ( "content": speech_content.decode("UTF-8") ) )) answer = service_request.execute() print(json.dumps(response)) if __name__ == " __main__": parser = argparse.ArgumentParser() parser.add_argument("speech_file", help="Πλήρης διαδρομή του αρχείου ήχου προς αναγνώριση") args = parser.parse_args() main(args.speech_file)

    Προετοιμασία για χρήση του Google Cloud Speech API

    Θα χρειαστεί να καταχωρήσουμε το έργο και να δημιουργήσουμε ένα κλειδί λογαριασμού υπηρεσίας για εξουσιοδότηση. Εδώ είναι ο σύνδεσμος για να λάβετε τη δοκιμή, χρειάζεστε έναν λογαριασμό Google. Μετά την εγγραφή, πρέπει να ενεργοποιήσετε το API και να δημιουργήσετε ένα κλειδί εξουσιοδότησης. Στη συνέχεια, πρέπει να αντιγράψετε το κλειδί στον διακομιστή.

    Ας προχωρήσουμε στη ρύθμιση του ίδιου του διακομιστή, θα χρειαστούμε:

    Πύθων
    - python-pip
    - πύθωνας google apiπελάτης

    Sudo apt-get install -y python python-pip pip install --αναβάθμιση google-api-python-client
    Τώρα πρέπει να εξάγουμε δύο μεταβλητές περιβάλλοντος, για επιτυχημένη δουλειάμε api. Το πρώτο είναι η διαδρομή προς το κλειδί υπηρεσίας, το δεύτερο είναι το όνομα του έργου σας.

    Εξαγωγή GOOGLE_APPLICATION_CREDENTIALS=/path/to/service_account_file.json εξαγωγή GCLOUD_PROJECT=your-project-id
    Ας κατεβάσουμε το δοκιμαστικό αρχείο ήχου και ας προσπαθήσουμε να εκτελέσουμε το σενάριο:

    Wget https://cloud.google.com/speech/docs/samples/audio.raw python voice.py audio.raw ("αποτελέσματα": [("εναλλακτικά": [("εμπιστοσύνη": 0.98267895, "μεταγραφή": "πόσο χρονών είναι η γέφυρα του Μπρούκλιν")])])
    Εξαιρετική! Η πρώτη δοκιμή είναι επιτυχής. Τώρα ας αλλάξουμε τη γλώσσα αναγνώρισης κειμένου στο σενάριο και ας προσπαθήσουμε να την αναγνωρίσουμε:

    Nano voice.py service_request = service.speech().syncrecognize(body=( "config": ( "encoding": "LINEAR16", # raw 16-bit signed LE δείγματα "sampleRate": 16000, # 16 khz "languageCode" : "ru-RU", # ετικέτα γλώσσας BCP-47
    Χρειαζόμαστε ένα αρχείο ήχου .raw. Χρησιμοποιούμε το sox για αυτό

    Apt-get install -y sox sox test.wav -r 16000 -b 16 -c 1 test.raw python voice.py test.raw ("αποτελέσματα": [("εναλλακτικά": [("εμπιστοσύνη": 0.96161985, " μεταγραφή": "\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435 \u0412\u0430\u040\u0430\u0430\u0441 435\u0442\u0441\ u0442 \u0432\u0443\u0435\u0442 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f")])])
    Η Google μας επιστρέφει την απάντηση στο Unicode. Αλλά θέλουμε να δούμε κανονικά γράμματα. Ας αλλάξουμε λίγο το voice.py:

    Εκτύπωση(json.dumps(response))
    Θα το χρησιμοποιησουμε

    S = simplejson.dumps(("var": απάντηση), sure_ascii=False) εκτύπωση s
    Ας προσθέσουμε εισαγάγετε simplejson. Το τελικό σενάριο είναι κάτω από την περικοπή:

    Voice.py

    """Google CloudΔείγμα εφαρμογής API ομιλίας που χρησιμοποιεί το REST API για ομαδική επεξεργασία.""" import argparse import base64 import json import simplejson από googleapiclient εισαγωγή ανακάλυψη εισαγωγή httplib2 από oauth2client.client εισαγωγή GoogleCredentials DISCOVERY_URL = ("https://(api).googleapis.com /$discovery/rest?" "version=(apiVersion)") def get_speech_service(): credentials = GoogleCredentials.get_application_default().create_scoped(["https://www.googleapis.com/auth/cloud-platform"]) http = httplib2.Http() credentials.authorize(http) return discovery.build("speech", "v1beta1", http=http, discoveryServiceUrl=DISCOVERY_URL) def main(speech_file): """Μεταγραφή του δεδομένου αρχείου ήχου. Args: speak_file: το όνομα του αρχείου ήχου. """ με open(speech_file, "rb") ως ομιλία: speak_content = base64.b64encode(speech.read()) υπηρεσία = get_speech_service() service_request = service.speech().syncrecognize(body=( "config": ( "encoding": "LINEAR16", # ακατέργαστα υπογεγραμμένα δείγματα LE 16 bit "sampleRate": 16000, # 16 khz "languageCode": "en-US", # μια ετικέτα γλώσσας BCP-47 ), "ήχος": ( " content": speak_content.decode("UTF-8") ) )) answer = service_request.execute() s = simplejson.dumps(("var": answer), sure_ascii=False) print s if __name__ == "__main__" : parser = argparse.ArgumentParser() parser.add_argument("speech_file", help="Πλήρης διαδρομή του αρχείου ήχου προς αναγνώριση") args = parser.parse_args() main(args.speech_file)


    Αλλά πριν το εκτελέσετε, θα χρειαστεί να εξαγάγετε μια ακόμη μεταβλητή περιβάλλοντος εξαγωγή PYTHONIOENCODING=UTF-8. Χωρίς αυτό, είχα προβλήματα με το stdout όταν καλούνταν σε σενάρια.

    Εξαγωγή PYTHONIOENCODING=UTF-8 python voice.py test.raw ("var": ("αποτελέσματα": [("εναλλακτικά": [("εμπιστοσύνη": 0.96161985, "transscript": "Γεια σας, καλώς ήρθατε στην εταιρεία") ]) ]))
    Εξαιρετική. Τώρα μπορούμε να καλέσουμε αυτό το σενάριο στο σχέδιο κλήσης.

    Παράδειγμα σχεδίου κλήσης με αστερίσκο

    Για να καλέσω το σενάριο, θα χρησιμοποιήσω ένα απλό σχέδιο κλήσης:

    Exten => 1234,1, Answer exten => 1234,n,wait(1) exten => 1234,n,Playback(howtomaketicket) exten => 1234,n,Playback(beep) exten => 1234,n,Set( FILE=$(CALLERID(αριθμός))--$(EXTEN)--$(STRFTIME($(EPOCH),%d-%m-%Y--%H-%M-%S)).wav) επέκταση => 1234,n,MixMonitor($(FILE),/opt/test/send.sh [email προστατευμένο]"$(CDR(src))" "$(CALLERID(όνομα))" "$(FILE)") exten => 1234,n,wait(28) exten => 1234,n,Αναπαραγωγή(μπιπ) επέκταση => 1234,n,Αναπαραγωγή(Ευχαριστώ!) επέκταση => 1234,n,Hangup()
    Χρησιμοποιώ το mixmonitor για την εγγραφή και εκτέλεση του σεναρίου όταν τελειώσω. Μπορείτε να χρησιμοποιήσετε την εγγραφή και αυτό μάλλον θα είναι καλύτερο. Παράδειγμα send.sh για αποστολή - προϋποθέτει ότι έχετε ήδη διαμορφώσει το mutt:

    #!/bin/bash #script για αποστολή ειδοποιήσεων # εξαγωγή των απαραίτητων μεταβλητών περιβάλλοντος # αρχείο άδειας Google εξαγωγή GOOGLE_APPLICATION_CREDENTIALS=/opt/test/project.json # όνομα έργου εξαγωγή GCLOUD_PROJECT=project-id # python κωδικοποίηση εξαγωγής PYTHONIOENCODING=UTF-8 #list of input variables EMAIL=$1 CALLERIDNUM=$2 CALLERIDNAME=$3 FILE=$4 # ανακωδικοποίηση αρχείο ήχουσε ακατέργαστο για να το δώσει στο Google API sox /var/spool/asterisk/monitor/$FILE -r 16000 -b 16 -c 1 /var/spool/asterisk/monitor/$FILE.raw # εκχώρηση μεταβλητή τιμήολοκληρωμένο σενάριο για τη μετατροπή του ήχου σε κείμενο και την αποκοπή του περιττού TEXT=`python /opt/test/voice.py /var/spool/asterisk/monitor/$FILE.raw | sed -e "s/.*transcript"://" -e "s/)])]))//"` # στείλτε το γράμμα, συμπεριλάβετε το αναγνωρισμένο κείμενο στο γράμμα echo "new notification from the number: $ CALLERIDNUM $CALLERIDNAME $ TEXT " | mutt -s "Αυτή είναι η κεφαλίδα του γράμματος" -e "set [email προστατευμένο] realname="Στέλνω ειδοποιήσεις"" -a "/var/spool/asterisk/monitor/$FILE" -- $EMAIL

    συμπέρασμα

    Έτσι, λύσαμε το πρόβλημα. Ελπίζω η εμπειρία μου να είναι χρήσιμη σε κάποιον. Θα χαρώ να λάβω σχόλια (ίσως αυτός είναι ο μόνος λόγος για τον οποίο αξίζει να διαβάσετε το Habr!). Στο μέλλον, σκοπεύω να εφαρμόσω ένα IVR με στοιχεία φωνητικού ελέγχου βάσει αυτού.

    Εάν πληκτρολογείτε πολύ αργά στο πληκτρολόγιο και είστε πολύ τεμπέλης για να μάθετε τη μέθοδο πληκτρολόγησης με δέκα δάχτυλα, μπορείτε να δοκιμάσετε να χρησιμοποιήσετε σύγχρονα προγράμματακαι υπηρεσίες φωνητικής εισαγωγής κειμένου.

    Το πληκτρολόγιο είναι αναμφίβολα επαρκές εύχρηστο εργαλείοέλεγχος υπολογιστή. Ωστόσο, όταν πρόκειται για πληκτρολόγηση μακρύ κείμενο, καταλαβαίνουμε όλες τις (και, για να είμαστε ειλικρινείς, τις δικές μας :)) ατέλειες... Πρέπει επίσης να μπορείτε να πληκτρολογείτε γρήγορα!

    Πριν από μερικά χρόνια, θέλοντας να απλοποιήσω τη δουλειά μου στη συγγραφή άρθρων, αποφάσισα να βρω ένα πρόγραμμα που θα μου επέτρεπε να μετατρέψω τη φωνή σε κείμενο. Σκέφτηκα πόσο ωραία θα ήταν να έλεγα όλα όσα χρειαζόμουν στο μικρόφωνο και ο υπολογιστής να πληκτρολογήσει για μένα :)

    Φανταστείτε την απογοήτευσή μου όταν συνειδητοποίησα ότι εκείνη την εποχή δεν υπήρχαν πραγματικά λειτουργικές (πόσο μάλλον δωρεάν) λύσεις για αυτό το θέμα. Υπήρχαν, ωστόσο, εγχώριες εξελίξεις, όπως το «Gorynych» και το «Dictograph». Καταλάβαιναν ρωσικά, αλλά, δυστυχώς, η ποιότητα της αναγνώρισης ομιλίας ήταν αρκετά χαμηλή και απαραίτητη μακρά εγκατάστασημε τη δημιουργία ενός λεξικού σύμφωνα με τη δική σας φωνή, και ήταν επίσης αρκετά ακριβό...

    Μετά γεννήθηκε το Android και η κατάσταση έφυγε λίγο από το νεκρό σημείο. Σε αυτό το σύστημα, η φωνητική είσοδος εμφανίστηκε ως μια ενσωματωμένη (και αρκετά βολική) εναλλακτική στην εικονική είσοδο. πληκτρολόγιο οθόνης. Και πρόσφατα σε ένα από τα σχόλια με ρώτησαν αν υπάρχει επιλογή φωνητικής εισαγωγής για Windows; Απάντησα ότι όχι ακόμα, αλλά αποφάσισα να ψάξω και αποδείχτηκε ότι, ίσως όχι εντελώς πλήρης, αλλά μια τέτοια ευκαιρία υπάρχει! Το σημερινό άρθρο θα αφορά τα αποτελέσματα της έρευνάς μου.

    Πρόβλημα αναγνώρισης ομιλίας

    Πριν αρχίσουμε να αναλύουμε τις τρέχουσες λύσεις για φωνητική είσοδο στα Windows, θα ήθελα να ρίξω λίγο φως στην ουσία του προβλήματος της αναγνώρισης ομιλίας υπολογιστή. Για πιο ακριβή κατανόηση της διαδικασίας, προτείνω να ρίξετε μια ματιά στο παρακάτω διάγραμμα:

    Όπως μπορείτε να δείτε, η μετατροπή της ομιλίας σε κείμενο πραγματοποιείται σε διάφορα στάδια:

    1. Ψηφιοποίηση φωνής. Σε αυτό το στάδιο, η ποιότητα εξαρτάται από την ευκρίνεια του λόγου, την ποιότητα του μικροφώνου και κάρτα ήχου.
    2. Συγκρίνοντας ένα λήμμα με λήμματα σε ένα λεξικό. Η αρχή «περισσότερο τόσο καλύτερα» λειτουργεί εδώ: όσο περισσότερες ηχογραφημένες λέξεις περιέχει το λεξικό, τόσο μεγαλύτερες είναι οι πιθανότητες να αναγνωριστούν σωστά οι λέξεις σας.
    3. Έξοδος κειμένου. Το σύστημα αυτόματα, με βάση τις παύσεις, προσπαθεί να αναγνωρίσει μεμονωμένα λεξήματα από τη ροή ομιλίας που αντιστοιχούν σε λεξήματα προτύπων από το λεξικό και, στη συνέχεια, εμφανίζει τις αντιστοιχίσεις που βρέθηκαν σε μορφή κειμένου.

    Το κύριο πρόβλημα, όπως μπορείτε να μαντέψετε, βρίσκεται σε δύο βασικές αποχρώσεις: την ποιότητα του ψηφιοποιημένου τμήματος ομιλίας και τον όγκο του λεξικού με πρότυπα. Το πρώτο πρόβλημα μπορεί πραγματικά να ελαχιστοποιηθεί ακόμη και με ένα φτηνό μικρόφωνο και μια τυπική κάρτα ήχου. Αρκεί μόνο να μιλάς αργά και καθαρά.

    Με το δεύτερο πρόβλημα, δυστυχώς, δεν είναι όλα τόσο απλά... Ένας υπολογιστής, σε αντίθεση με έναν άνθρωπο, δεν μπορεί να αναγνωρίσει σωστά την ίδια φράση που λένε, για παράδειγμα, μια γυναίκα και ένας άνδρας. Για να γίνει αυτό, και οι δύο εκδόσεις φωνητικής δράσης με διαφορετικές φωνές πρέπει να υπάρχουν στη βάση δεδομένων του!

    Εδώ βρίσκεται η κύρια σύλληψη. Η δημιουργία ενός λεξικού για ένα άτομο, κατ 'αρχήν, δεν είναι τόσο δύσκολη, ωστόσο, δεδομένου ότι κάθε λέξη πρέπει να γραφτεί σε πολλές εκδόσεις, αποδεικνύεται πολύ μεγάλη και απαιτητική εργασία. Επομένως, τα περισσότερα από τα προγράμματα αναγνώρισης ομιλίας που υπάρχουν σήμερα είναι είτε πολύ ακριβά είτε δεν έχουν τα δικά τους λεξικά, αφήνοντας τον χρήστη να τα δημιουργήσει μόνος του.

    Δεν είναι για τίποτα που ανέφερα το Android λίγο πιο ψηλά. Γεγονός είναι ότι η Google, που το αναπτύσσει, έχει δημιουργήσει επίσης το μοναδικό δημοσίως διαθέσιμο παγκόσμιο διαδικτυακό λεξικό για την αναγνώριση ομιλίας σήμερα (και πολύγλωσσο!) που ονομάζεται Google Voice API. Η Yandex δημιουργεί επίσης ένα παρόμοιο λεξικό για τη ρωσική γλώσσα, αλλά μέχρι στιγμής, δυστυχώς, εξακολουθεί να είναι ακατάλληλο για χρήση σε πραγματικές συνθήκες. Επομένως, σχεδόν τα πάντα δωρεάν λύσεις, με το οποίο θα εξετάσουμε παρακάτω, δουλέψτε συγκεκριμένα Λεξικά Google. Αντίστοιχα, έχουν όλα την ίδια ποιότητα αναγνώρισης και οι αποχρώσεις βρίσκονται μόνο στις πρόσθετες δυνατότητες...

    Προγράμματα φωνητικής εισαγωγής

    Δεν υπάρχουν πολλά ολοκληρωμένα προγράμματα για φωνητική εισαγωγή για Windows. Και αυτοί που υπάρχουν και καταλαβαίνουν ρωσικά πληρώνονται κυρίως... Για παράδειγμα το κόστος ενός λαϊκού σύστημα χρήστηΗ μετατροπή φωνής σε κείμενο RealSpeaker ξεκινά από 2.587 ρούβλια και το επαγγελματικό συγκρότημα Caesar-R ξεκινά από 35.900 ρούβλια!

    Αλλά ανάμεσα σε όλο αυτό το ακριβό λογισμικό, υπάρχει ένα πρόγραμμα που δεν κοστίζει ούτε μια δεκάρα, αλλά ταυτόχρονα παρέχει λειτουργικότητα που είναι περισσότερο από επαρκής για τους περισσότερους χρήστες. Ονομάζεται MSpeech:

    Το κύριο παράθυρο του προγράμματος έχει την απλούστερη δυνατή διεπαφή - μια ένδειξη στάθμης ήχου και μόνο τρία κουμπιά: έναρξη εγγραφής, διακοπή εγγραφής και άνοιγμα του παραθύρου ρυθμίσεων. Το MSpeech λειτουργεί επίσης πολύ απλά. Πρέπει να πατήσετε το κουμπί εγγραφής, να τοποθετήσετε τον κέρσορα στο παράθυρο στο οποίο πρέπει να εμφανίζεται το κείμενο και να αρχίσετε να υπαγορεύετε. Για μεγαλύτερη ευκολία, είναι προτιμότερο να την εγγράψετε και να την σταματήσετε χρησιμοποιώντας πλήκτρα πρόσβασης, τα οποία μπορούν να ρυθμιστούν στις Ρυθμίσεις:

    Εκτός από τα πλήκτρα πρόσβασης, μπορεί να χρειαστεί να αλλάξετε τον τύπο μετάδοσης κειμένου σε Windows απαραίτητα προγράμματα. Από προεπιλογή, η έξοδος ορίζεται στο ενεργό παράθυρο, ωστόσο, μπορείτε να καθορίσετε τη μετάδοση σε ανενεργά πεδία ή σε πεδία ενός συγκεκριμένου προγράμματος. Από Επιπρόσθετα χαρακτηριστικάΑξίζει να σημειωθεί η ομάδα ρυθμίσεων "Εντολές", η οποία σας επιτρέπει να εφαρμόζετε φωνητικό έλεγχο του υπολογιστή σας χρησιμοποιώντας φράσεις που καθορίζετε.

    Σε γενικές γραμμές, το MSpeech είναι αρκετά βολικό πρόγραμμα, το οποίο σας επιτρέπει να πληκτρολογείτε κείμενο με φωνή σε οποιοδήποτε παράθυρο των Windows. Η μόνη προειδοποίηση στη χρήση του είναι ότι ο υπολογιστής πρέπει να είναι συνδεδεμένος στο Διαδίκτυο για πρόσβαση στα λεξικά της Google.

    Φωνητική εισαγωγή στο διαδίκτυο

    Εάν δεν θέλετε να εγκαταστήσετε κανένα πρόγραμμα στον υπολογιστή σας, αλλά θέλετε να δοκιμάσετε να εισαγάγετε κείμενο φωνητικά, μπορείτε να χρησιμοποιήσετε μία από τις πολλές διαδικτυακές υπηρεσίες που λειτουργούν στα ίδια λεξικά της Google.

    Λοιπόν, φυσικά, το πρώτο πράγμα που αξίζει να αναφερθεί είναι η «εγγενής» υπηρεσία της Google που ονομάζεται Web Speech API:

    Αυτή η υπηρεσία σάς επιτρέπει να μεταφράζετε απεριόριστες ενότητες ομιλίας σε κείμενο σε περισσότερες από 50 γλώσσες! Απλώς πρέπει να επιλέξετε τη γλώσσα που μιλάτε, να κάνετε κλικ στο εικονίδιο του μικροφώνου στην επάνω δεξιά γωνία της φόρμας, εάν είναι απαραίτητο, να επιβεβαιώσετε την άδεια πρόσβασης του ιστότοπου στο μικρόφωνο και να αρχίσετε να μιλάτε.

    Εάν δεν χρησιμοποιείτε κάποια ιδιαίτερα εξειδικευμένη ορολογία και μιλάτε καθαρά, μπορείτε να έχετε ένα πολύ καλό αποτέλεσμα. Εκτός από τις λέξεις, η υπηρεσία «καταλαβαίνει» και τα σημεία στίξης: αν πείτε «λήμμα» ή «κόμμα», το απαιτούμενο σύμβολο θα εμφανιστεί στη φόρμα εξόδου.

    Όταν ολοκληρωθεί η εγγραφή, το αναγνωρισμένο κείμενο θα επισημανθεί αυτόματα και μπορείτε να το αντιγράψετε στο πρόχειρο ή να το στείλετε μέσω ταχυδρομείου.

    Μεταξύ των ελλείψεων, αξίζει να σημειωθεί ότι η υπηρεσία μπορεί να λειτουργήσει μόνο στο πρόγραμμα περιήγησης Google Chrome παλαιότερο από την έκδοση 25, καθώς και η έλλειψη δυνατοτήτων πολυγλωσσικής αναγνώρισης.

    Παρεμπιπτόντως, στον ιστότοπό μας στην κορυφή θα βρείτε μια εντελώς ρωσοποιημένη έκδοση της ίδιας μορφής αναγνώρισης ομιλίας. Απολαύστε το για την υγεία σας ;)

    Υπάρχουν αρκετοί παρόμοιοι διαδικτυακοί πόροι αναγνώρισης ομιλίας που βασίζονται στην υπηρεσία Google. Ένας από τους ιστότοπους που μας ενδιαφέρουν είναι το Dictation.io:

    Σε αντίθεση με το Web Speech API, το Dictation.io έχει περισσότερα κομψό σχέδιομε τη μορφή σημειωματάριου. Το κύριο πλεονέκτημά του σε σχέση με την υπηρεσία της Google είναι ότι σας επιτρέπει να σταματήσετε την εγγραφή και μετά να την ξεκινήσετε ξανά, και το κείμενο που εισαγάγατε προηγουμένως θα αποθηκευτεί μέχρι να πατήσετε το κουμπί "Διαγραφή".

    Ακριβώς όπως η υπηρεσία Google Dictation.io «μπορεί» να βάλει τελείες, κόμματα και επίσης Θαυμαστικόκαι ένα ερωτηματικό, αλλά δεν ξεκινά πάντα μια νέα πρόταση με κεφαλαίο.

    Αν ψάχνετε για μια υπηρεσία με τη μέγιστη λειτουργικότητα, τότε πιθανώς μία από τις καλύτερες από αυτή την άποψη θα είναι:

    Κύρια πλεονεκτήματα της υπηρεσίας:

    • διαθεσιμότητα διεπαφής στη ρωσική γλώσσα.
    • τη δυνατότητα προβολής και επιλογής επιλογών αναγνώρισης.
    • παρουσία φωνητικών προτροπών.
    • αυτόματη απενεργοποίηση εγγραφής μετά από μεγάλη παύση.
    • ενσωματωμένο πρόγραμμα επεξεργασίας κειμένου με λειτουργίες για την αντιγραφή κειμένου στο πρόχειρο, την εκτύπωση του σε εκτυπωτή, την αποστολή του μέσω ταχυδρομείου ή Twitter και τη μετάφρασή του σε άλλες γλώσσες.

    Το μόνο μειονέκτημα της υπηρεσίας (εκτός από αυτά που έχουν ήδη περιγραφεί) κοινές ελλείψεις Web Speech API) είναι ένας αλγόριθμος λειτουργίας που δεν είναι αρκετά εξοικειωμένος για τέτοιες υπηρεσίες. Αφού πατήσετε το κουμπί εγγραφής και υπαγορεύσετε το κείμενο, πρέπει να το ελέγξετε, να επιλέξετε την επιλογή που ταιριάζει καλύτερα με αυτό που θέλετε να πείτε και, στη συνέχεια, να το μεταφέρετε στον παρακάτω επεξεργαστή κειμένου. Μετά από αυτό η διαδικασία μπορεί να επαναληφθεί.

    Πρόσθετα για Chrome

    Εκτός από τα ολοκληρωμένα προγράμματα και τις διαδικτυακές υπηρεσίες, υπάρχει ένας άλλος τρόπος αναγνώρισης της ομιλίας σε κείμενο. Αυτή η μέθοδος υλοποιείται χρησιμοποιώντας πρόσθετα για Google browserΧρώμιο.

    Το κύριο πλεονέκτημα της χρήσης προσθηκών είναι ότι με τη βοήθειά τους μπορείτε να εισάγετε κείμενο φωνητικά όχι μόνο σε ειδική φόρμα στον ιστότοπο της υπηρεσίας, αλλά και σε οποιοδήποτε πεδίο εισαγωγής σε οποιονδήποτε πόρο ιστού! Στην πραγματικότητα, τα πρόσθετα καταλαμβάνουν μια ενδιάμεση θέση μεταξύ των υπηρεσιών και των ολοκληρωμένων προγραμμάτων για φωνητική εισαγωγή.

    Ενας από καλύτερες επεκτάσειςγια τη μετάφραση ομιλίας σε κείμενο είναι το SpeechPad:

    Δεν θα πω ψέματα αν πω ότι το SpeechPad είναι μια από τις καλύτερες υπηρεσίες μετάφρασης ομιλίας σε κείμενο στη ρωσική γλώσσα. Στον επίσημο ιστότοπο θα βρείτε ένα αρκετά ισχυρό (αν και λίγο παλιό σε σχεδιασμό) online σημειωματάριο με πολλές προηγμένες λειτουργίες, όπως:

    • υποστήριξη φωνητικές εντολέςέλεγχος υπολογιστή?
    • Βελτιωμένη υποστήριξη σημείων στίξης.
    • λειτουργία για σίγαση ήχων στον υπολογιστή.
    • ενσωμάτωση με τα Windows (αν και επί πληρωμή).
    • η δυνατότητα αναγνώρισης κειμένου από εγγραφές βίντεο ή ήχου (λειτουργία "Μεταγραφή").
    • μετάφραση αναγνωρισμένου κειμένου σε οποιαδήποτε γλώσσα·
    • αποθήκευση κειμένου σε αρχείο κειμένου, διαθέσιμο για λήψη.

    Όσο για το plugin, μας παρέχει την πιο απλοποιημένη λειτουργικότητα της υπηρεσίας. Τοποθετήστε τον κέρσορα στο πεδίο εισαγωγής που χρειάζεστε, καλέστε κατάλογος συμφραζόμενωνκαι κάντε κλικ στο στοιχείο "SpeechPad". Τώρα επιβεβαιώστε την πρόσβαση στο μικρόφωνο και, όταν το πεδίο εισαγωγής γίνει ροζ, υπαγορεύστε το επιθυμητό κείμενο.

    Αφού σταματήσετε να μιλάτε (παύση άνω των 2 δευτερολέπτων), η ίδια η προσθήκη θα σταματήσει την εγγραφή και θα εμφανίσει όλα όσα είπατε στο πεδίο. Εάν θέλετε, μπορείτε να μεταβείτε στις ρυθμίσεις της προσθήκης (δεξί κλικ στο εικονίδιο της προσθήκης στην κορυφή) και να αλλάξετε τις προεπιλεγμένες παραμέτρους:

    Παραδόξως, σε ολόκληρο το ηλεκτρονικό κατάστημα επεκτάσεων της Google δεν συνάντησα ούτε μία αξιόλογο πρόσθετο, που θα σας επέτρεπε να εφαρμόσετε φωνητική εισαγωγή σε οποιοδήποτε πεδίο κειμένου. Η μόνη παρόμοια επέκταση ήταν η αγγλική. Προσθέτει ένα εικονίδιο μικροφώνου σε όλα τα πεδία εισόδου σε μια ιστοσελίδα, αλλά δεν το τοποθετεί πάντα σωστά, επομένως μπορεί να καταλήξει εκτός οθόνης...