wydanie silnika rozpoznawania mowy rozwijanego przez firmę Mozilla , który realizuje architekturę rozpoznawania mowy o tej samej nazwie, przez badaczy z firmy Baidu. Implementacja została napisana w języku Python przy użyciu platformy do uczenia maszynowego TensorFlow i wydana na licencji MPL 2.0. Obsługiwana jest praca w systemach Linux, Android, macOS i Windows. Wydajność jest wystarczająca do użycia silnika na płytach LePotato, Raspberry Pi 3 i Raspberry Pi 4.
W zestawie znajdują się także wyuczone modele, plików dźwiękowych oraz narzędzia do rozpoznawania z poziomu wiersza poleceń. W celu wbudowania funkcji rozpoznawania mowy w swoje programy oferowane są gotowe moduły do użycia w Pythonie, NodeJS, C++ i .NET (moduły opracowane przez zewnętrznych twórców są dostępne osobno dla i ). Gotowy model dostarczany jest tylko dla języka angielskiego, ale dla innych języków można wytrenować system, korzystając z , zebranych w ramach projektu Common Voice.
DeepSpeech jest znacznie prostszy niż tradycyjne systemy, a jednocześnie zapewnia wyższą jakość rozpoznawania w obecności zakłóceń. W rozwoju nie są wykorzystywane tradycyjne modele akustyczne ani koncepcja fonemów, zamiast nich zastosowano dobrze zoptymalizowany system uczenia maszynowego oparty na sieciach neuronowych, który pozwala na zrezygnowanie z tworzenia oddzielnych komponentów do modelowania różnych zakłóceń, takich jak hałas, echo i cechy mowy.
Drugą stroną tego podejścia jest to, że aby uzyskać wysoką jakość rozpoznawania i wytrenować sieć neuronową, silnik DeepSpeech wymaga dużej ilości różnorodnych danych, nagranych w rzeczywistych warunkach różnymi głosami i przy obecności naturalnych hałasów.
Zbieraniem takich danych zajmuje się stworzony w Mozilli projekt , który oferuje zweryfikowany zestaw danych z 780 godzinami w , 325 w niemieckim, 173 we francuskim i 27 godzinami w rosyjskim.
Ostatecznym celem projektu Common Voice jest zgromadzenie 10 tysięcy godzin nagrań różnych wymówień typowych fraz mowy ludzkiej, co pozwoli na osiągnięcie akceptowalnego poziomu błędów w rozpoznawaniu. W bieżącej wersji uczestnicy projektu już nagrali łącznie 4,3 tysiąca godzin, z czego 3,5 tysiąca przeszło weryfikację. Do przeszkolenia końcowego modelu języka angielskiego dla DeepSpeech użyto 3816 godzin mowy, oprócz danych z Common Voice obejmujących informacje z projektów LibriSpeech, Fisher i Switchboard, a także około 1700 godzin transkrybowanych nagrań audycji radiowych.
Przy użyciu dostępnego do pobrania modelu języka angielskiego poziom błędów rozpoznawania w DeepSpeech wynosi 7,5% według testowania na zbiorze testowym. . Dla porównania, poziom błędów przy rozpoznawaniu przez człowieka na 5,83%.
DeepSpeech składa się z dwóch podsystemów — modelu akustycznego i dekodera. Model akustyczny wykorzystuje metody głębokiego uczenia maszynowego do obliczania prawdopodobieństwa występowania określonych symboli w dźwięku podawanym na wejście. Dekoder wykorzystuje algorytm przeszukiwania ścieżki do przekształcania danych o prawdopodobieństwie symboli w tekstowe przedstawienie.
Podstawowe DeepSpeech 0.6 (gałąź 0.6 nie jest zgodna z wcześniejszymi wydaniami i wymaga aktualizacji kodu i modeli):
- Zaproponowano nowy dekoder strumieniowy, zapewniający wyższą responsywność i niezależny od rozmiaru przetwarzanych danych dźwiękowych. W rezultacie w nowej wersji DeepSpeech udało się obniżyć opóźnienie w rozpoznawaniu do 260 ms, co jest o 73% szybsze niż wcześniej, i pozwala na zastosowanie DeepSpeech w rozwiązaniach do rozpoznawania mowy w czasie rzeczywistym.
- Wprowadzono zmiany w API i przeprowadzono prace nad unifikacją nazw funkcji. Dodano funkcje umożliwiające uzyskanie dodatkowych metadanych o synchronizacji, pozwalające nie tylko na uzyskanie tekstowego przedstawienia, ale także na śledzenie powiązania poszczególnych symboli i zdań z pozycją w strumieniu dźwiękowym.
- Do narzędzi do szkolenia modeli dodano wsparcie dla biblioteki Aby zoptymalizować działanie z rekurencyjnymi sieciami neuronowymi (RNN), co pozwoliło na uzyskanie znacznego (około dwukrotnego) zwiększenia wydajności uczenia się modelu, konieczne było wprowadzenie zmian w kodzie, które naruszyły zgodność z wcześniej przygotowanymi modelami.
- Minimalne wymagania dotyczące wersji TensorFlow wzrosły z 1.13.1 do 1.14.0. Dodano wsparcie dla lekkiej wersji TensorFlow Lite, której użycie zmniejszyło rozmiar pakietu DeepSpeech z 98 MB do 3.7 MB. W przypadku zastosowań na wbudowanych i mobilnych urządzeniach rozmiar spakowanego pliku z modelem również skrócono z 188 MB do 47 MB (dla kompresji zastosowano metodę kwantyzacji po zakończeniu szkolenia modelu).
- Model językowy został przekonwertowany na inny format struktur danych, co umożliwia mapowanie plików w pamięci podczas ładowania. Wsparcie dla starego formatu zostało zakończone.
- Zmieniono tryb ładowania pliku z modelem językowym, co zmniejszyło zużycie pamięci i skróciło opóźnienia podczas przetwarzania pierwszego zapytania po utworzeniu modelu. W trakcie działania DeepSpeech teraz zużywa 22 razy mniej pamięci i uruchamia się 500 razy szybciej.
- Przeprowadzono filtrację rzadkich słów w modelu językowym. Ogólna liczba słów została zmniejszona do 500 tysięcy najpopularniejszych słów występujących w tekście użytym podczas szkolenia modelu. Przeprowadzona czyszczenie pozwoliło obniżyć rozmiar modelu językowego z 1800 MB do 900 MB, praktycznie nie wpływając na wskaźniki błędów rozpoznawania.
- Dodano wsparcie dla różnych tworzenia dodatkowych wariacji (augmentation) danych dźwiękowych używanych podczas szkolenia (na przykład, dodawanie do zbioru wariantów, w których wprowadzono zniekształcenia lub szumy).
- Dodano bibliotekę z wiązaniami dla integracji z aplikacjami opartymi na platformie .NET.
- Przepracowano dokumentację, która teraz została zebrana na osobnej stronie .
Źródło: opennet.ru
