Mozilla wprowadziła silnik rozpoznawania mowy DeepSpeech 0.6
Przesłane przez wydanie silnika rozpoznawania mowy opracowanego przez Mozillę Głęboka mowa 0.6, który implementuje architekturę rozpoznawania mowy o tej samej nazwie, proponowane przez badaczy z Baidu. Implementacja została napisana w języku Python z wykorzystaniem platformy uczenia maszynowego TensorFlow oraz dystrybuowane przez na bezpłatnej licencji MPL 2.0. Obsługuje pracę na systemach Linux, Android, macOS i Windows. Wydajność jest wystarczająca do wykorzystania silnika na płytach LePotato, Raspberry Pi 3 i Raspberry Pi 4.
Również w zestawie oferowany wytrenowane modele, przykłady pliki dźwiękowe i narzędzia rozpoznawania z wiersza poleceń. Aby zintegrować funkcję rozpoznawania mowy z Twoimi programami, oferowane są gotowe moduły dla Pythona, NodeJS, C++ i .NET (zewnętrzni programiści mają osobno przygotowane moduły dla Rdza и Go). Gotowy model jest dostarczany tylko w języku angielskim, ale w innych językach wg przyłączonyinstrukcje możesz samodzielnie przeszkolić system dane głosowe, zebrane w ramach projektu Common Voice.
DeepSpeech jest znacznie prostszy niż tradycyjne systemy, a jednocześnie zapewnia wyższą jakość rozpoznawania w obecności obcych szumów. Omija tradycyjne modele akustyczne i koncepcję fonemów, zamiast tego wykorzystuje wysoce zoptymalizowany system uczenia maszynowego oparty na sieci neuronowej, który eliminuje potrzebę opracowywania oddzielnych komponentów do modelowania różnych anomalii, takich jak hałas, echo i cechy mowy.
Wadą tego podejścia jest to, że aby uzyskać wysokiej jakości rozpoznawanie i uczenie sieci neuronowej, silnik DeepSpeech wymaga dużej ilości heterogenicznych danych, podyktowanych w rzeczywistych warunkach różnymi głosami i w obecności naturalnego szumu.
Projekt stworzony w Mozilli zbiera takie dane. Wspólny głos, dostarczając zweryfikowany zbiór danych obejmujący 780 godzin język angielski, 325 w języku niemieckim, 173 w języku francuskim i 27 godzin w języku rosyjskim.
Ostatecznym celem projektu Common Voice jest zgromadzenie 10 tysięcy godzin nagrań różnych wymów typowych zwrotów mowy ludzkiej, co pozwoli na osiągnięcie akceptowalnego poziomu błędów w rozpoznawaniu. W obecnej formie uczestnicy projektu podyktowali już łącznie 4.3 tys. godzin, z czego 3.5 tys. zostało przetestowanych. Podczas szkolenia ostatecznego modelu języka angielskiego dla DeepSpeech wykorzystano 3816 godzin mowy, oprócz Common Voice obejmującego dane z projektów LibriSpeech, Fisher i Switchboard, a także około 1700 godzin transkrypcji nagrań audycji radiowych.
W przypadku korzystania z gotowego modelu języka angielskiego oferowanego do pobrania, wskaźnik błędów rozpoznawania w DeepSpeech wynosi 7.5% przy ocenie za pomocą zestawu testowego Libriseeech. Dla porównania poziom błędu w rozpoznawaniu przez człowieka jest oceniany w 5.83%.
DeepSpeech składa się z dwóch podsystemów – modelu akustycznego i dekodera. Model akustyczny wykorzystuje metody głębokiego uczenia maszynowego do obliczenia prawdopodobieństwa obecności określonych znaków w dźwięku wejściowym. Dekoder wykorzystuje algorytm wyszukiwania promieni do konwersji danych dotyczących prawdopodobieństwa znaku na reprezentację tekstową.
Głównym innowacje DeepSpeech 0.6 (gałąź 0.6 nie jest kompatybilna z poprzednimi wydaniami i wymaga aktualizacji kodu i modelu):
Zaproponowano nowy dekoder strumieniowy, który zapewnia wyższą responsywność i jest niezależny od rozmiaru przetwarzanych danych audio. W rezultacie w nowej wersji DeepSpeech udało się zmniejszyć opóźnienie rozpoznawania do 260 ms, czyli o 73% szybciej niż wcześniej, i umożliwia wykorzystanie DeepSpeech w rozwiązaniach do rozpoznawania mowy w locie.
Wprowadzono zmiany w interfejsie API i wykonano prace nad ujednoliceniem nazw funkcji. Dodano funkcje umożliwiające uzyskanie dodatkowych metadanych dotyczących synchronizacji, co pozwala nie tylko otrzymać reprezentację tekstową jako wynik, ale także śledzić powiązanie poszczególnych znaków i zdań z pozycją w strumieniu audio.
Do zestawu narzędzi dla modułów szkoleniowych dodano obsługę korzystania z biblioteki CuDNN optymalizację pracy z rekurencyjnymi sieciami neuronowymi (RNN), co pozwoliło uzyskać znaczny (około dwukrotny) wzrost wydajności uczenia modeli, wymagało jednak zmian w kodzie naruszających kompatybilność z wcześniej przygotowanymi modelami.
Minimalne wymagania wersji TensorFlow zostały podniesione z 1.13.1 do 1.14.0. Dodano obsługę lekkiej wersji TensorFlow Lite, która zmniejsza rozmiar pakietu DeepSpeech z 98 MB do 3.7 MB. Do użytku na urządzeniach wbudowanych i mobilnych zmniejszono także rozmiar spakowanego pliku z modelem ze 188 MB do 47 MB (do kompresji po przeszkoleniu modelu wykorzystywana jest metoda kwantyzacji).
Model językowy został przetłumaczony na inny format struktury danych, który umożliwia mapowanie plików do pamięci po załadowaniu. Zakończono obsługę starego formatu.
Zmieniono sposób ładowania pliku z modelem językowym, co zmniejszyło zużycie pamięci i zmniejszyło opóźnienia przy przetwarzaniu pierwszego żądania po utworzeniu modelu. Podczas działania DeepSpeech zużywa teraz 22 razy mniej pamięci i uruchamia się 500 razy szybciej.
W modelu językowym odfiltrowano rzadkie słowa. Łączną liczbę słów zmniejszono do 500 tysięcy najpopularniejszych słów występujących w tekście użytym do szkolenia modelu. Czyszczenie umożliwiło zmniejszenie rozmiaru modelu językowego z 1800 MB do 900 MB, praktycznie bez wpływu na współczynnik błędów rozpoznawania.
Dodano obsługę różnych technik tworzenie dodatkowych wariacji (wzmacnianie) danych audio wykorzystywanych podczas treningu (na przykład dodawanie zniekształceń lub szumów do zestawu opcji).
Dodano bibliotekę z powiązaniami do integracji z aplikacjami opartymi na platformie .NET.
Dokumentacja została przerobiona i jest obecnie zgromadzona na osobnej stronie internetowej. deepspeech.readthedocs.io.