Jak przekonwertować mowę na tekst za pomocą Pythona [proces krok po kroku]

Opublikowany: 2020-08-07

Spis treści

Wprowadzenie do mowy w tekście

Żyjemy w epoce, w której sposoby interakcji z maszynami stały się zróżnicowane i złożone. Przeszliśmy ewolucję od masywnych przycisków mechanicznych do interfejsu dotykowego. Ale ta ewolucja nie ogranicza się do sprzętu. Status quo danych wejściowych dla komputerów jest tekstem od poczęcia. Mimo to, dzięki postępom w NLP (przetwarzanie języka naturalnego) i ML (uczeniu maszynowym), Data Science, mamy narzędzia do włączenia mowy jako medium do interakcji z naszymi gadżetami.

Te narzędzia już nas otaczają i służą nam najczęściej jako wirtualni asystenci. Google, Siri, Alexa itp. to kamienie milowe w dodawaniu kolejnego, bardziej osobistego i wygodnego wymiaru interakcji ze światem cyfrowym.

W przeciwieństwie do większości innowacji technologicznych, technologia zamiany mowy na tekst jest dostępna dla każdego, zarówno w celu konsumpcji, jak i tworzenia projektów.

Python to jeden z najpopularniejszych języków programowania na świecie, który ma narzędzia do tworzenia mowy na aplikacje tekstowe.

Historia mowy na tekst

Zanim przyjrzymy się wypowiedziom do tekstu w Pythonie, warto docenić, jak duży postęp poczyniliśmy w tej dziedzinie. Poniżej przedstawiono uproszczony harmonogram :

  • Audrey 1952: pierwszy system rozpoznawania mowy opracowany przez naukowców z 3 Bells labs. Rozpoznawał tylko cyfry.
  • IBM Showbox (1962): pierwszy system rozpoznawania mowy IBM, w którym cewki rozpoznają 16 słów oprócz cyfr. Potrafi rozwiązać proste dyktanda arytmetyczne i wydrukować wynik.
  • Agencja Zaawansowanych Projektów Badawczych Obrony (DARPA) (1970): DARPA sfinansowała badanie rozumienia mowy, które doprowadziło do opracowania Harpy do rozpoznawania 1011 słów.
  • Ukryty model Markowa (HMM), lata 80.: HMM to model statystyczny, który modeluje problemy wymagające informacji sekwencyjnych. Model ten został zastosowany do dalszych postępów w rozpoznawaniu mowy.
  • Wyszukiwanie głosowe przez Google 2001: Google wprowadził funkcję wyszukiwania głosowego, która umożliwia użytkownikom wyszukiwanie za pomocą mowy. Była to pierwsza aplikacja obsługująca głos, która stała się bardzo popularna.
  • Siri , 2011: Apple przedstawił Siri, który był w stanie wykonywać w czasie rzeczywistym i wygodny sposób interakcji ze swoimi urządzeniami.
  • Alexa , 2014 i google home ,2016: wirtualni asystenci wykorzystujący polecenia głosowe stali się głównym nurtem, ponieważ google home i Alexa łącznie sprzedają ponad 150 milionów sztuk.

Przeczytaj także: Top 7 bibliotek Python NLP

Wyzwania w mowie do tekstu

Mowa na tekst to wciąż złożony problem, któremu daleko do prawdziwie skończonego produktu. Kilka trudności technicznych sprawia, że ​​jest to w najlepszym razie niedoskonałe narzędzie. Oto typowe wyzwania związane z technologią rozpoznawania mowy:

1. Nieprecyzyjna interpretacja

Rozpoznawanie mowy nie zawsze poprawnie interpretuje wypowiadane słowa. VUI (Voice User Interface) nie jest tak biegły jak ludzie w kontekście zrozumienia, który zmienia relacje między słowami i zdaniami. Maszyny mogą więc mieć trudności ze zrozumieniem semantyki zdania.

2 razy

Czasami przetwarzanie przez systemy rozpoznawania głosu trwa zbyt długo. Może to być spowodowane różnorodnością wzorców głosowych, które posiadają ludzie. Takich trudności w rozpoznawaniu głosu można uniknąć, spowalniając mowę lub precyzyjniej w wymowie, co odbiera wygodę narzędzia.

3. Akcenty

VUI może mieć trudności ze zrozumieniem dialektów różniących się od przeciętnych. W tym samym języku użytkownicy mogą mieć bardzo różne sposoby wypowiadania tych samych słów.

4. Hałas i głośność w tle

W idealnym świecie nie będą to stanowić problemu, ale tak nie jest, więc VUI może mieć trudności z pracą w głośnym otoczeniu (przestrzenie publiczne, duże biura itp.).

Musisz przeczytać: Jak zrobić chatbota w Pythonie

Mowa na tekst w Pythonie

Jeśli nie chcesz przechodzić przez żmudny proces budowania od podstaw oświadczenia do tekstu, skorzystaj z poniższych wskazówek. Ten przewodnik jest jedynie podstawowym wprowadzeniem do tworzenia własnej aplikacji mowy do tekstu. Upewnij się, że masz działający mikrofon oprócz stosunkowo najnowszej wersji Pythona.

Krok 1 :

Pobierz następujące pakiety Pythona:

  • speech_recognition (pip install SpeechRecogntion): Jest to główny pakiet, który uruchamia najważniejszy etap konwersji mowy na tekst. Inne alternatywy mają zalety i wady, takie jak odwołanie, montaż, wyszukiwanie w chmurze Google, kieszonkowy sfinks, chmura dewelopera Watson, dowcip itp.
  • Moje audio (pip install Pyaudio)
  • Portaudio (pip zainstaluj Portaudio)

Krok 2 :

Utwórz projekt (nadaj mu dowolną nazwę) i zaimportuj rozpoznawanie mowy jako sr.

Utwórz tyle wystąpień klasy aparatu rozpoznawania.

Krok 3 :

Po utworzeniu tych instancji musimy teraz zdefiniować źródło danych wejściowych.

Na razie zdefiniujmy źródło jako sam mikrofon (możesz użyć istniejącego pliku audio)

Krok 4 :

Zdefiniujemy teraz zmienną do przechowywania danych wejściowych. Używamy metody „nasłuchuj”, aby pobrać informacje ze źródła. Tak więc w naszym przypadku użyjemy mikrofonu jako źródła, które ustaliliśmy w poprzednim wierszu kodu.

Krok 5 :

Teraz, gdy mamy zdefiniowane wejście (mikrofon jako źródło) i przechowujemy je w zmiennej ('audio'), po prostu musimy użyć metodycogniz_google, aby przekonwertować je na tekst. Możemy przechowywać wynik w zmiennej lub po prostu wydrukować wynik. Nie musimy polegać wyłącznie nacogniz_google, mamy inne metody, które wykorzystują różne interfejsy API, które również działają. Przykładami takich metod są:

rozpoznać_bing()

recongize_google_cloud()

recongize_houndify()

recongize_ibm()

recongize_Sphinx() (działa również w trybie offline)

W poniższej metodzie wykorzystano istniejące pakiety, które pomagają ograniczyć konieczność tworzenia od podstaw oprogramowania rozpoznającego mowę na tekst. Te pakiety zawierają więcej narzędzi, które mogą pomóc w tworzeniu projektów, które rozwiązują bardziej szczegółowe problemy. Jednym z przykładów przydatnej funkcji jest możliwość zmiany domyślnego języka z angielskiego na hindi. Spowoduje to zmianę wyników, które zostaną wydrukowane w języku hindi (chociaż w obecnej formie mowa na tekst jest najlepiej przystosowana do rozumienia języka angielskiego ).

Ale jest to dobre ćwiczenie dla poważnych programistów, aby zrozumieć, jak działa takie oprogramowanie.

Rozbijmy to.

W swojej najbardziej podstawowej postaci mowa jest po prostu falą dźwiękową. Takie fale dźwiękowe lub sygnały dźwiękowe mają kilka charakterystycznych właściwości (które mogą wydawać się znajome fizyce akustyki), takich jak amplituda, szczyt i dolina, długość fali, cykl i częstotliwość.

Takie sygnały audio są ciągłe, a zatem mają nieskończoną liczbę punktów danych. Aby przekonwertować taki sygnał audio na sygnał cyfrowy, tak aby komputer mógł go przetworzyć, sieć musi przyjąć dyskretną dystrybucję próbek, która bardzo przypomina ciągłość sygnału audio.

Gdy mamy już odpowiednią częstotliwość próbkowania (8000 Hz to dobry standard, ponieważ większość częstotliwości mowy mieści się w tym zakresie), możemy teraz przetwarzać sygnały audio bibliotekami Pythona, takimi jak LibROSA i SciPy. Następnie możemy oprzeć się na tych danych wejściowych, dzieląc zestaw danych na 2, trenując model, a drugi, aby zweryfikować wyniki modelu.

Na tym etapie można wykorzystać architekturę modelową Conv1d, splotowej sieci neuronowej działającej tylko w jednym wymiarze. Następnie możemy zbudować model, zdefiniować jego funkcję strat i użyć sieci neuronowych, aby uratować najlepszy model przed konwersją mowy na tekst. Korzystając z głębokiego uczenia się i NLP (przetwarzania języka naturalnego), możemy przekształcić wypowiedź w tekst w celu uzyskania szerszych zastosowań i zastosowania.

Zastosowania rozpoznawania mowy

Jak się dowiedzieliśmy, narzędzia do uruchamiania tej innowacji technologicznej są bardziej dostępne, ponieważ jest to głównie innowacja w zakresie oprogramowania i żadna firma nie jest jej właścicielem. Dostępność ta otworzyła drzwi programistom o ograniczonych zasobach do wymyślenia zastosowania tej technologii.

Niektóre z dziedzin, w których rozwija się rozpoznawanie mowy, to:

  • Ewolucja w wyszukiwarkach: rozpoznawanie mowy pomoże poprawić dokładność wyszukiwania, wypełniając lukę między komunikacją werbalną a pisemną.
  • Wpływ na branżę opieki zdrowotnej: rozpoznawanie mowy staje się powszechną funkcją w sektorze medycznym, ułatwiając sporządzanie raportów medycznych. Ponieważ VUI lepiej rozumieją żargon medyczny, zastosowanie tej technologii pozwoli lekarzom zwolnić czas na pracę administracyjną.
  • Branża usługowa: W rosnących trendach automatyzacji może się zdarzyć, że klient nie będzie w stanie skłonić człowieka do odpowiedzi na zapytanie, a tym samym systemy rozpoznawania mowy mogą wypełnić tę lukę. Szybki rozwój tej funkcji zobaczymy na lotniskach, w transporcie publicznym itp.
  • Dostawcy usług: dostawcy usług telekomunikacyjnych mogą w jeszcze większym stopniu polegać na systemach wykorzystujących mowę do tekstu, które mogą skrócić czas oczekiwania, pomagając określić wymagania dzwoniącego i kierując go do odpowiedniej pomocy.

Przeczytaj także: Technologia wyszukiwania głosowego – ciekawe fakty

Wniosek

Mowa na tekst to potężna technologia, która wkrótce będzie wszechobecna. Jego dość prosta użyteczność w połączeniu z Pythonem (jednym z najpopularniejszych języków programowania na świecie) ułatwia tworzenie aplikacji. Robiąc postępy w tej dziedzinie, torujemy drogę do świata, w którym dostęp do świata cyfrowego jest nie tylko na wyciągnięcie ręki, ale także na słowo mówione.

Jeśli chcesz dowiedzieć się więcej o przetwarzaniu języka naturalnego, sprawdź nasz program Executive PG w uczeniu maszynowym i sztucznej inteligencji, który jest przeznaczony dla pracujących profesjonalistów i obejmuje ponad 450 godzin rygorystycznego szkolenia.

Jeśli jesteś zainteresowany nauką o danych, sprawdź program IIIT-B i upGrad Executive PG w dziedzinie Data Science , który jest stworzony dla pracujących profesjonalistów i oferuje ponad 10 studiów przypadków i projektów, praktyczne warsztaty praktyczne, mentoring z ekspertami z branży, 1 -on-1 z mentorami branżowymi, ponad 400 godzin nauki i pomocy w pracy z najlepszymi firmami.

Co to jest konwersja mowy na tekst?

Na początku rozpoznawania mowy transkrypcjoner siedział z zestawem słuchawkowym i nagrywał mowę. Proces ten trwał długo i dawał transkrypcje niskiej jakości. Obecnie systemy rozpoznawania mowy wykorzystują komputery do konwersji mowy na tekst. Nazywa się to konwersją mowy na tekst. Rozpoznawanie mowy (znane również jako konwersja mowy na tekst) to proces konwersji wypowiadanych słów na dane odczytywalne maszynowo. Celem jest umożliwienie ludziom komunikowania się z maszynami za pomocą głosu oraz umożliwienie maszynom komunikowania się z ludźmi poprzez wytwarzanie mowy. Do wykonania tej konwersji używane jest oprogramowanie do zamiany mowy na tekst.

Jakie są wyzwania związane z konwersją mowy na tekst?

Istnieje wiele wyzwań związanych z konwersją mowy na tekst. Główne wyzwania to: Dokładność, w której system musi prawidłowo uchwycić wypowiadane słowa, aby wydobyć intencję użytkownika. Szybkość, system musi być w stanie wykonać powyższe wystarczająco szybko, aby był akceptowalny dla użytkownika. Naturalność, system powinien brzmieć jak najbardziej naturalnie, aby użytkownik nie czuł, że musi mówić w nienaturalny sposób. Solidność, system powinien być w stanie poradzić sobie z dużą ilością szumów tła, mowy i wszelkich innych efektów, które mogą zakłócać proces konwersji.

Jakie są zastosowania mowy do przetwarzania tekstu?

Powodem, dla którego musisz przekonwertować mowę na tekst, jest to, że jest to bardzo szybki i wygodny sposób komunikowania się. Przetwarzanie mowy na tekst może być wykorzystywane w wielu różnych aplikacjach, na przykład w urządzeniu komunikacji mobilnej, gdzie użytkownik może używać swojej mowy do wysyłania wiadomości i wykonywania połączeń zamiast pisania na klawiaturze. Innym zastosowaniem mowy do przetwarzania tekstu jest sterowanie maszyną. Jest to sposób na kontrolowanie silnika lub innej maszyny przemysłowej poprzez rozmowę z nim.