il rilascio del motore di riconoscimento vocale sviluppato da Mozilla , che implementa l'architettura di riconoscimento vocale omonima, da ricercatori di Baidu. L'implementazione è scritta in Python utilizzando la piattaforma di machine learning TensorFlow e distribuita con licenza MPL 2.0. È supportato il funzionamento su Linux, Android, macOS e Windows. Le performance sono sufficienti per utilizzare il motore su schede LePotato, Raspberry Pi 3 e Raspberry Pi 4.
Il pacchetto include anche modelli addestrati, file audio e strumenti per il riconoscimento da riga di comando. Per integrare la funzionalità di riconoscimento vocale nelle proprie applicazioni, sono disponibili moduli pronti all'uso per Python, NodeJS, C++ e .NET (moduli preparati separatamente da sviluppatori di terze parti per e ). Il modello fornito è disponibile solo in inglese, ma per altre lingue è possibile addestrare il sistema autonomamente utilizzando , raccolti dal progetto Common Voice.
DeepSpeech è notevolmente più semplice rispetto ai sistemi tradizionali e offre una qualità di riconoscimento superiore anche in presenza di rumore di fondo. Non utilizza modelli acustici tradizionali né la concezione di fonemi; invece, impiega un sistema di apprendimento automatico ben ottimizzato basato su reti neurali, che consente di evitare lo sviluppo di componenti separati per modellare varie deviazioni, come rumore, eco e particolarità vocali.
Il rovescio della medaglia di questo approccio è che per ottenere un riconoscimento di alta qualità e addestrare la rete neurale, il motore DeepSpeech richiede un gran numero di dati eterogenei, registrati in condizioni reali da diverse voci e in presenza di rumori naturali.
La raccolta di questi dati è curata dal progetto creato da Mozilla , che fornisce un set di dati verificato con 780 ore in , 325 in tedesco, 173 in francese e 27 ore in russo.
L'obiettivo finale del progetto Common Voice è accumulare 10.000 ore di registrazioni di diverse pronunce di frasi standard del linguaggio umano, consentendo di raggiungere un livello accettabile di errori nel riconoscimento. Attualmente, i partecipanti al progetto hanno già registrato un totale di 4.3 mila ore, di cui 3.5 mila sono state verificate. Per l'addestramento del modello finale di lingua inglese per DeepSpeech sono state utilizzate 3816 ore di discorsi, oltre a Common Voice, coprendo dati da progetti come LibriSpeech, Fisher e Switchboard, e includendo circa 1700 ore di registrazioni trascritte di programmi radiofonici.
Utilizzando il modello pronto per il download della lingua inglese, il livello di errore di riconoscimento in DeepSpeech è del 7.5% nel test con il set di dati di valutazione. . A titolo di confronto, il livello di errore nel riconoscimento da parte di un essere umano è del 5.83%.
DeepSpeech è composto da due sottosistemi: il modello acustico e il decodificatore. Il modello acustico utilizza metodi di apprendimento automatico profondo per calcolare la probabilità della presenza di determinati simboli nel suono in ingresso. Il decodificatore applica un algoritmo di ricerca a fasci per trasformare i dati delle probabilità dei simboli in una rappresentazione testuale.
Principali DeepSpeech 0.6 (la versione 0.6 non è compatibile con le versioni precedenti e richiede aggiornamenti al codice e ai modelli):
- È stato introdotto un nuovo decodificatore in streaming che offre una maggiore reattività e non dipende dalla dimensione dei dati audio trattati. Di conseguenza, nella nuova versione di DeepSpeech, la latenza del riconoscimento è stata ridotta a 260 ms, il che è il 73% più veloce rispetto a prima, permettendo così di utilizzare DeepSpeech in soluzioni di riconoscimento vocale in tempo reale.
- Sono state apportate modifiche all'API e sono stati fatti sforzi per uniformare i nomi delle funzioni. Sono state aggiunte funzioni per ottenere metadati aggiuntivi sulla sincronizzazione, permettendo non solo di ottenere una rappresentazione testuale in uscita, ma anche di tracciare l'associazione di singoli simboli e frasi con la posizione nel flusso audio.
- Nell'insieme di strumenti per l'apprendimento sono stati aggiunti il supporto per l'uso della libreria per ottimizzare le prestazioni delle reti neurali ricorrenti (RNN), consentendo un aumento significativo (circa il doppio) delle prestazioni dell'addestramento del modello, ma richiedendo modifiche al codice che compromettono la compatibilità con i modelli precedentemente preparati.
- I requisiti minimi per la versione di TensorFlow sono stati innalzati da 1.13.1 a 1.14.0. È stato aggiunto il supporto per la versione leggera TensorFlow Lite, il cui utilizzo ha ridotto la dimensione del pacchetto DeepSpeech da 98 MB a 3.7 MB. La dimensione del file impacchettato con il modello è stata ridotta da 188 MB a 47 MB per l'uso su dispositivi embedded e mobili (è stato utilizzato il metodo di quantizzazione dopo il completamento dell'addestramento del modello).
- Il modello linguistico è stato convertito in un altro formato di struttura dati, consentendo il mapping dei file in memoria durante il caricamento. Il supporto per il vecchio formato è stato interrotto.
- È stato modificato il modo in cui vengono caricati i file con il modello linguistico, consentendo una riduzione del consumo di memoria e una diminuzione dei ritardi nella gestione della prima richiesta dopo la creazione del modello. Ora, durante il funzionamento, DeepSpeech consuma 22 volte meno memoria e si avvia 500 volte più velocemente.
- È stata effettuata una filtrazione delle parole rare nel modello linguistico. Il numero totale di parole è stato ridotto a 500.000 delle parole più popolari, presenti nel testo utilizzato per l'addestramento del modello. Questa pulizia ha consentito di ridurre le dimensioni del modello linguistico da 1800MB a 900MB, senza praticamente influenzare le metriche del tasso di errore di riconoscimento.
- Aggiunta il supporto per varie di creazione di ulteriori variazioni (augmentation) dei dati audio utilizzati durante l'addestramento (ad esempio, l'aggiunta a un insieme di varianti in cui sono introdotte distorsioni o rumori).
- È stata aggiunta una libreria con binding per l'integrazione con applicazioni basate sulla piattaforma .NET.
- È stata rielaborata la documentazione, ora raccolta su un sito separato .
Fonte: opennet.ru
