Come convertire il parlato in testo con Python [Processo passo-passo]

Pubblicato: 2020-08-07

Sommario

Introduzione al discorso al testo

Viviamo in un'epoca in cui i modi in cui interagiamo con le macchine sono diventati vari e complessi. Ci siamo evoluti da grossi pulsanti meccanici all'interfaccia touchscreen. Ma questa evoluzione non si limita all'hardware. Lo status quo per l'input per i computer è stato il testo sin dal concepimento. Tuttavia, con i progressi in NLP (Natural Language Processing) e ML (Machine Learning), Data Science abbiamo gli strumenti per incorporare il parlato come mezzo per interagire con i nostri gadget.

Questi strumenti ci circondano già e ci servono più comunemente come assistenti virtuali. Google, Siri, Alexa, ecc. sono traguardi importanti nell'aggiunta di un'altra dimensione più personale e conveniente dell'interazione con il mondo digitale.

A differenza della maggior parte delle innovazioni tecnologiche, la tecnologia di sintesi vocale è disponibile per tutti da esplorare, sia per il consumo che per costruire i tuoi progetti.

Python è uno dei linguaggi di programmazione più comuni al mondo e dispone di strumenti per creare applicazioni di sintesi vocale.

Storia del discorso al testo

Prima di esplorare l'istruzione in testo in Python, vale la pena apprezzare quanti progressi abbiamo fatto in questo campo. Quella che segue è la sequenza temporale semplificata di:

  • Audrey , 1952: il primo sistema di riconoscimento vocale sviluppato da 3 ricercatori dei laboratori Bells. Poteva riconoscere solo cifre.
  • IBM Showbox (1962): il primo sistema di riconoscimento vocale IBM che le bobine riconoscono 16 parole oltre alle cifre. Potrebbe risolvere semplici dettati aritmetici e stampare il risultato.
  • Defense Advanced Research Projects Agency (DARPA) (1970): DARPA ha finanziato la Speech Understanding Research, che ha portato allo sviluppo di Harpy per riconoscere 1011 parole.
  • Hidden Markov Model (HMM), anni '80: HMM è un modello statistico che modella i problemi che richiedono informazioni sequenziali. Questo modello è stato applicato a ulteriori progressi nel riconoscimento vocale.
  • Ricerca vocale di Google , 2001: Google ha introdotto la funzione di ricerca vocale che ha consentito agli utenti di eseguire ricerche utilizzando la voce. Questa è stata la prima applicazione abilitata alla voce che è diventata molto popolare.
  • Siri , 2011: Apple ha introdotto Siri che era in grado di eseguire un modo conveniente e in tempo reale per interagire con i suoi dispositivi.
  • Alexa , 2014 e google home , 2016: gli assistenti virtuali basati sui comandi vocali sono diventati mainstream come google home e Alexa vende collettivamente oltre 150 milioni di unità.

Leggi anche: Le 7 migliori librerie Python NLP

Sfide in un discorso al testo

La sintesi vocale è ancora un problema complesso che è ben lungi dall'essere un prodotto veramente finito. Diverse difficoltà tecniche lo rendono uno strumento imperfetto nella migliore delle ipotesi. Le seguenti sono le sfide comuni con la tecnologia di riconoscimento vocale:

1. Interpretazione imprecisa

Il riconoscimento vocale non interpreta sempre correttamente le parole pronunciate. VUIs (Voice User Interface) non è abile come gli esseri umani nel contesto di comprensione che cambia la relazione tra parole e frasi. Le macchine possono quindi avere difficoltà a comprendere la semantica di una frase.

2. Tempo

A volte, l'elaborazione dei sistemi di riconoscimento vocale richiede troppo tempo. Ciò potrebbe essere dovuto alla diversità dei modelli vocali che gli esseri umani possiedono. Tale difficoltà nel riconoscimento vocale può essere evitata rallentando il parlato o essendo più precisi nella pronuncia, il che toglie la comodità dello strumento.

3. Accenti

Le VUI potrebbero avere difficoltà a comprendere i dialetti che differiscono dalla media. All'interno della stessa lingua, i parlanti possono avere modi molto diversi di pronunciare le stesse parole.

4. Rumore di fondo e volume

In un mondo ideale, questi non saranno un problema, ma semplicemente non è così, e quindi le VUI potrebbero trovare difficile lavorare in ambienti rumorosi (spazi pubblici, grandi uffici, ecc.).

Da leggere: Come creare un chatbot in Python

Discorso al testo in Python

Se non si vuole passare attraverso l'arduo processo di costruzione di una dichiarazione al testo da zero, utilizzare quanto segue come guida. Questa guida è solo un'introduzione di base alla creazione della tua applicazione di sintesi vocale. Assicurati di avere un microfono funzionante oltre a una versione relativamente recente di Python.

Passaggio 1 :

Scarica i seguenti pacchetti Python:

  • speech_recogntion (pip install SpeechRecogntion): questo è il pacchetto principale che esegue il passaggio più cruciale della conversione del parlato in testo. Altre alternative hanno pro e contro, come appeal, assembly, google-cloud-search, pocketphinx, Watson-developer-cloud, wit, ecc.
  • Il mio audio (pip installa Pyaudio)
  • Portaudio (pip installa Portaudio)

Passaggio 2 :

Crea un progetto (chiamalo come vuoi) e importa speech_recogntion come sr.

Crea tante istanze della classe di riconoscimento.

Passaggio 3 :

Dopo aver creato queste istanze, ora dobbiamo definire l'origine dell'input.

Per ora, definiamo la sorgente come il microfono stesso (potresti usare un file audio esistente)

Passaggio 4 :

Definiremo ora una variabile per memorizzare l'input. Usiamo il metodo "ascolta" per prendere informazioni dalla fonte. Quindi, nel nostro caso, useremo il microfono come sorgente che abbiamo stabilito nella riga di codice precedente.

Passaggio 5 :

Ora che abbiamo definito l'input (microfono come sorgente) e lo abbiamo memorizzato in una variabile ('audio'), dobbiamo semplicemente usare il metodo riconoscere_google per convertirlo in testo. Possiamo memorizzare il risultato in una variabile o semplicemente stampare il risultato. Non dobbiamo fare affidamento esclusivamente su riconoscere_google, abbiamo anche altri metodi che utilizzano API diverse che funzionano altrettanto bene. Esempi di tali metodi sono:

riconoscere_bing()

Recongize_google_cloud()

Recongize_houndify()

riconoscere_ibm()

recongize_Sphinx() (funziona anche offline)

Il metodo seguente ha utilizzato i pacchetti esistenti che aiutano a ridurre la necessità di sviluppare da zero il software di riconoscimento vocale in testo. Questi pacchetti hanno più strumenti che possono aiutarti a costruire i tuoi progetti che risolvono problemi più specifici. Un esempio di una funzione utile è che puoi cambiare la lingua predefinita dall'inglese per dire hindi. Ciò cambierà i risultati che vengono stampati in hindi (sebbene allo stato attuale, la sintesi vocale sia più sviluppata per comprendere l'inglese).

Ma è un buon esercizio di pensiero per sviluppatori severi per capire come funziona tale software.

Analizziamolo.

Nella sua forma più fondamentale, la parola è semplicemente un'onda sonora. Tali onde sonore o segnali audio hanno alcune proprietà caratteristiche (che possono sembrare familiari alla fisica dell'acustica) come ampiezza, cresta e depressione, lunghezza d'onda, ciclo e frequenza.

Tali segnali audio sono continui e quindi hanno punti dati infiniti. Per convertire un tale segnale audio in un segnale digitale, in modo tale che un computer possa elaborarlo, la rete deve prendere una distribuzione discreta di campioni che assomigli molto alla continuità di un segnale audio.

Una volta che abbiamo una frequenza di campionamento appropriata (8000 Hz è un buon standard poiché la maggior parte delle frequenze vocali si trova in questo intervallo), ora possiamo elaborare i segnali audio librerie Python come LibROSA e SciPy. Possiamo quindi basarci su questi input suddividendo il set di dati in 2, addestrando il modello e l'altro per convalidare i risultati del modello.

In questa fase, si può utilizzare l'architettura del modello di Conv1d, una rete neurale convoluzionale che funziona lungo una sola dimensione. Possiamo quindi costruire un modello, definire la sua funzione di perdita e utilizzare le reti neurali per salvare il modello migliore dalla conversione del parlato in testo. Utilizzando il deep learning e la NLP ( Natural Language Processing ), possiamo perfezionare le istruzioni in testo per applicazioni e adozioni più estese.

Applicazioni del riconoscimento vocale

Come abbiamo appreso, gli strumenti per eseguire questa innovazione tecnologica sono più accessibili perché si tratta principalmente di un'innovazione software e nessuna azienda ne è proprietaria. Questa accessibilità ha aperto le porte agli sviluppatori con risorse limitate per inventare la loro applicazione di questa tecnologia.

Alcuni dei campi in cui il riconoscimento vocale sta crescendo sono i seguenti:

  • Evoluzione nei motori di ricerca: il riconoscimento vocale aiuterà a migliorare la precisione della ricerca colmando il divario tra comunicazione verbale e scritta.
  • Impatto sul settore sanitario: il riconoscimento vocale sta diventando una caratteristica comune nel settore medico aiutando il completamento della refertazione medica. Man mano che le VUI migliorano la comprensione del gergo medico, l'adozione di questa tecnologia libererà tempo dal lavoro amministrativo per i medici.
  • Industria dei servizi: nelle tendenze crescenti dell'automazione, può accadere che un cliente non riesca a convincere un essere umano a rispondere a una domanda e, quindi, i sistemi di riconoscimento vocale possono colmare questa lacuna. Vedremo la rapida crescita di questa funzione negli aeroporti, nel trasporto pubblico, ecc.
  • Fornitori di servizi: i fornitori di telecomunicazioni possono fare ancora più affidamento sui sistemi di sintesi vocale che possono ridurre i tempi di attesa aiutando a stabilire le richieste del chiamante e indirizzandolo all'assistenza appropriata.

Leggi anche: Tecnologia di ricerca vocale: fatti interessanti

Conclusione

La sintesi vocale è una potente tecnologia che presto sarà onnipresente. La sua usabilità ragionevolmente semplice in combinazione con Python (uno dei linguaggi di programmazione più popolari al mondo) semplifica la creazione delle sue applicazioni. Mentre facciamo progressi in questo campo, stiamo aprendo la strada a un mondo in cui l'accesso al mondo digitale non è solo a portata di mano, ma anche a parole.

Se sei interessato a saperne di più sull'elaborazione del linguaggio naturale, dai un'occhiata al nostro programma Executive PG in Machine Learning e AI, progettato per i professionisti che lavorano e oltre 450 ore di formazione rigorosa.

Se sei curioso di conoscere la scienza dei dati, dai un'occhiata al programma Executive PG in Data Science di IIIT-B e upGrad, creato per i professionisti che lavorano e offre oltre 10 casi di studio e progetti, workshop pratici pratici, tutoraggio con esperti del settore, 1 -on-1 con mentori del settore, oltre 400 ore di apprendimento e assistenza al lavoro con le migliori aziende.

Che cos'è la conversione da discorso a testo?

Agli albori del riconoscimento vocale, un trascrittore sedeva con un auricolare e registrava il parlato. Il processo ha richiesto molto tempo e ha prodotto trascrizioni di bassa qualità. Oggi i sistemi di riconoscimento vocale utilizzano i computer per convertire il parlato in testo. Questa è chiamata conversione da discorso a testo. Il riconoscimento vocale (noto anche come conversione da discorso a testo) è il processo di conversione delle parole pronunciate in dati leggibili dalla macchina. Lo scopo è consentire alle persone di comunicare con le macchine tramite la voce e consentire alle macchine di comunicare con le persone producendo voce. Il software di sintesi vocale viene utilizzato per eseguire questa conversione.

Quali sono le sfide nella conversione vocale in testo?

Ci sono molte sfide nella conversione da discorso a testo. Le sfide principali sono: Precisione, in cui il sistema deve ottenere le parole pronunciate correttamente per estrarre l'intento dell'utente. Velocità, il sistema deve essere in grado di eseguire quanto sopra abbastanza velocemente per essere accettabile per l'utente. Naturalezza, il sistema dovrebbe suonare il più naturale possibile, in modo che l'utente non senta di dover parlare in modo innaturale. Robustezza, il sistema dovrebbe essere in grado di gestire una grande quantità di rumore di fondo, altro parlato e qualsiasi altro effetto che potrebbe interferire con il processo di conversione.

Quali sono le applicazioni del parlato all'elaborazione del testo?

Il motivo per cui è necessario convertire il parlato in testo è perché è un modo molto veloce e conveniente per comunicare. L'elaborazione della sintesi vocale può essere utilizzata in molte applicazioni diverse, ad esempio può essere utilizzata in un dispositivo di comunicazione mobile, in cui l'utente può utilizzare la propria voce per inviare messaggi ed effettuare chiamate invece di digitare sulla tastiera. Un'altra applicazione dell'elaborazione vocale per testo è il controllo della macchina. È un modo per controllare un motore o un'altra macchina industriale parlando con esso.