Jak wykonać rozpoznawanie mowy. Najlepszy rosyjski program do rozpoznawania mowy

Usługa SendPulse to narzędzie marketingowe do tworzenia bazy subskrypcji i konwersji przypadkowych odwiedzających Twoją witrynę na zwykłych. SendPulse łączy najważniejsze funkcje przyciągania i utrzymywania klientów na jednej platformie:
● newslettery e-mailowe,
● web-push,
● wysyłek SMS,
● SMTP,
● mailingi w Viber,
● wysyłać wiadomości do komunikatora na Facebooku.

Biuletyny e-mailowe

Możesz korzystać z różnych taryf za prowadzenie biuletynów e-mailowych, w tym bezpłatnych. Bezpłatny abonament ma ograniczenia: baza subskrypcji nie przekracza 2500.
Pierwszą rzeczą, od której należy zacząć pracę z usługą poczty e-mail, jest stworzenie własnego książka adresowa. Ustaw tytuł i prześlij listę adresów e-mail.


SendPulse ułatwia tworzenie formularze subskrypcji w postaci wyskakującego okienka, osadzonych formularzy, pływających i nieruchomych w określonej części ekranu. Za pomocą formularzy subskrypcyjnych zbierzesz od podstaw bazę subskrybentów lub uzupełnisz swoją bazę o nowe adresy.
W kreatorze formularzy możesz stworzyć dokładnie taki formularz subskrypcji, który najlepiej odpowiada Twoim potrzebom, a porady serwisowe pomogą Ci poradzić sobie z tym zadaniem. Możliwe jest również skorzystanie z jednego z dostępnych gotowych formularzy.


Przy tworzeniu formularzy subskrypcji obowiązkowe jest korzystanie z poczty e-mail z domeną firmową. Przeczytaj jak.
Szablony wiadomości pomoże pięknie zaprojektować Twoje listy do subskrybentów. Możesz stworzyć własny szablon listu w specjalnym konstruktorze.


Automatyczne mailingi. Menedżerowie treści aktywnie korzystają z automatycznej dystrybucji. Pomaga zautomatyzować proces pracy z klientami. Istnieje kilka sposobów na utworzenie automatycznej poczty:
Sekwencyjny ciąg liter. Jest to najprostsza opcja, gdy niezależnie od warunków napisanych zostanie kilka listów, które zostaną wysłane do odbiorców w określonej kolejności. Tutaj mogą być opcje - seria wiadomości(prosty łańcuch wiadomości), specjalna data(listy są datowane na określone daty), list wyzwalający- list jest wysyłany w zależności od działań subskrybenta (otwarcie wiadomości itp.).
Automatyzacja360– mailing z określonymi filtrami i warunkami, a także z uwzględnieniem konwersji.
Gotowe łańcuchy według szablonu. Możesz stworzyć serię listów na podstawie danego szablonu lub zmodyfikować szablon i dostosować go do swoich potrzeb.
Testy A/B pomoże Ci poeksperymentować z różnymi opcjami wysyłania serii e-maili i określić najlepszą opcję dla otwarć lub przejść.

Wysyłanie powiadomień push

Push-mailingi to subskrypcja w oknie przeglądarki, jest to swego rodzaju zamiennik dla rss-subscriptions. Technologie web-push szybko wkroczyły w nasze życie i już teraz trudno jest znaleźć witrynę, która nie wykorzystuje wysyłek push do przyciągania i zatrzymywania klientów. Zażądaj skryptu dla , możesz wysyłać e-maile zarówno ręcznie, jak i tworzyć automatyczne transmisje, tworząc serię e-maili lub zbierając dane z RSS. Druga opcja oznacza, że ​​po pojawieniu się nowego artykułu na Twojej stronie, powiadomienie o tym zostanie automatycznie wysłane do Twoich subskrybentów z krótkim ogłoszeniem.


Nowy z Wyślijpuls– teraz możesz zarabiać na swojej stronie dzięki powiadomieniom push, osadzając w nich reklamy. Po osiągnięciu 10 $, w każdy poniedziałek płatności są dokonywane na jeden z systemów płatności - Visa / mastercard, PayPal lub Webmoney.
Wiadomości push w serwisie są całkowicie bezpłatne. Płatność pobierana jest tylko za White Label - mailingi bez wspominania o usłudze SendPulse, ale jeśli logo usługi Ci nie przeszkadza, to możesz korzystać z powiadomień push za darmo bez ograniczeń.

SMTP

Funkcja SMTP chroni Twoją listę mailingową przed umieszczeniem na czarnej liście przy użyciu białych adresów IP. Technologie podpisów kryptograficznych DKIM i SPF wykorzystywane w wysyłkach SendPulse zwiększają wiarygodność wysyłanych wiadomości e-mail, dzięki czemu Twoje wiadomości e-mail są mniej prawdopodobne, że znajdą się w spamie lub na czarnej liście.

Boty na Facebooku

Chatbot Facebooka jest w fazie testów beta. Możesz podłączyć go do swojej strony i wysyłać wiadomości do subskrybentów.

Wysyłanie SMS-ów

Dzięki usłudze SendPulse można łatwo wysyłać mailingi do bazy numerów telefonów. Najpierw musisz utworzyć książkę adresową z listą numerów telefonów. Aby to zrobić, wybierz sekcję „Książka adresowa”, utwórz nową książkę adresową, prześlij numery telefonów. Teraz możesz utworzyć listę mailingową SMS dla tej bazy danych. Cena wysyłki SMS różni się w zależności od operatorów telekomunikacyjnych odbiorców i wynosi średnio od 1,26 rubla do 2,55 rubla za 1 wysłaną wiadomość SMS.

Program partnerski

SendPulse wdraża program partnerski, w którym zarejestrowany użytkownik korzystający z Twojego linku, który zapłacił taryfę, przyniesie Ci 4000 rubli. Zaproszony użytkownik otrzymuje zniżkę w wysokości 4000 rubli przez pierwsze 5 miesięcy korzystania z usługi.

Podpis telefonu dla osób niesłyszących i niedosłyszących

Zmień swój ekran w niesamowity nagłówek telefonu. Jest to w pełni automatyczne, bez słyszących maszynistek piszących twoje rozmowy. Trudno jest dziadkom słyszeć rodzinę i przyjaciół przez telefon? Włącz dla nich Speechlogger i przestań krzyczeć przez telefon. Wystarczy podłączyć wyjście audio telefonu do wejścia audio komputera i uruchomić Speechlogger. Przydaje się również w interakcjach twarzą w twarz.

Automatyczna transkrypcja

Nagrałeś wywiad? Zaoszczędź trochę czasu, przepisując go z automatycznej mowy Google na tekst przesłany do przeglądarki przez Speechlogger. Odtwórz nagrany wywiad do mikrofonu (lub linii) komputera i pozwól rejestratorowi mowy wykonać transkrypcję. Speechlogger zapisuje transkrypcję tekstu wraz z datą, godziną i Twoimi komentarzami. Pozwala także na edycję tekstu. Rozmowy telefoniczne mogą być transkrybowane tą samą metodą. Możesz także nagrywać pliki audio bezpośrednio z komputera, jak opisano poniżej.

Automatyczny tłumacz ustny i pisemny

Spotkanie z zagranicznymi gośćmi? Przynieś laptopa (lub dwa) z rejestratorem mowy i mikrofonem. Każda ze stron będzie widziała wypowiedziane słowa drugiej strony przetłumaczone na ich własny język w czasie rzeczywistym. Pomocne jest również wykonanie rozmowy telefonicznej w języku obcym, aby upewnić się, że w pełni rozumiesz drugą stronę. Podłącz wyjście audio telefonu do wejścia liniowego komputera i uruchom Speechlogger.

Ucz się języków obcych i doskonal swoje umiejętności wymowy

Speechlogger to świetne narzędzie do nauki języków, które można wykorzystać na wiele sposobów. Możesz go używać do nauki słownictwa, mówiąc w swoim ojczystym języku i pozwalając oprogramowaniu go przetłumaczyć. Możesz uczyć się i ćwiczyć poprawną wymowę, mówiąc w obcym języku i sprawdzając, czy Speechlogger rozumie, czy nie. Jeśli tekst jest przepisany czarną czcionką, oznacza to, że dobrze go wymówiłeś.

Generowanie napisów do filmów

Speechlogger może automatycznie nagrywać filmy lub inne pliki dźwiękowe. Następnie weź plik i automatycznie przetłumacz go na dowolny język, aby uzyskać międzynarodowe napisy.

Dyktuj zamiast pisać

Pisać list? Dokumenty? Listy? Streszczenie? Cokolwiek chcesz wpisać, spróbuj podyktować to Speechloggerowi. Speechlogger automatycznie zapisze go dla Ciebie i pozwoli Ci wyeksportować go do dokumentu.

Zabawna gra :)

Czy potrafisz naśladować Chińczyka? Francuski? A co z rosyjskim? Spróbuj naśladować język obcy i zobacz, co właśnie powiedziałeś za pomocą Speechloggera. Użyj tłumaczenia symultanicznego Speechloggera, aby zrozumieć, co właśnie powiedziałeś. Uzyskaj niesamowite rezultaty - to świetna zabawa!

Na Facebooku zapytano nas:
„Aby pracować z tekstem, muszę przepisać 3 godziny nagrania głosowego. Próbowałem wgrać plik audio ze zdjęciem na YouTube i użyć ich transkrypcji tekstu, ale okazuje się, że jest to jakaś abrakadabra. Czy możesz mi powiedzieć, jak rozwiązać ten problem technicznie? Dziękuję Ci!
Aleksander Konowałow»

Alexander, istnieje proste rozwiązanie techniczne - ale wynik będzie zależał wyłącznie od jakości nagrania. Pozwólcie, że wyjaśnię, o jakiej jakości mówię.

W ostatnich latach rosyjskie technologie rozpoznawania mowy znacznie się rozwinęły. Odsetek błędów rozpoznawania spadł do takiego poziomu, że łatwiej „wypowiedzieć” inny tekst w specjalnej aplikacji mobilnej lub serwisie internetowym, ręcznie poprawiając poszczególne „błędy” – niż wpisywać cały tekst na klawiaturze.

Aby jednak sztuczna inteligencja systemu rozpoznawania mogła wykonać swoje zadanie, użytkownik musi wykonać swoje. Mianowicie: mów do mikrofonu wyraźnie i miarowo, unikaj silnych dźwięków otoczenia, jeśli to możliwe, użyj zestawu słuchawkowego stereo lub zewnętrznego mikrofonu przymocowanego do dziurki na guzik (dla jakości rozpoznawania ważne jest, aby mikrofon był zawsze w tej samej odległości od ust , a ty sam mówisz z taką samą głośnością ). Oczywiście im wyższa klasa urządzenia audio, tym lepiej.

Łatwo jest spełnić te warunki, jeśli zamiast bezpośredniego dostępu do usługi internetowej rozpoznawania mowy użyjesz dyktafonu jako urządzenia pośredniczącego. Nawiasem mówiąc, taka „osobista sekretarka” jest szczególnie niezbędna, gdy nie masz dostępu do Internetu. Oczywiście lepiej jest użyć przynajmniej niedrogiego profesjonalnego dyktafonu niż urządzenia nagrywającego wbudowanego w tani odtwarzacz mp3 lub smartfon. Da to znacznie większe szanse na „zasilenie” odebranych rekordów do usługi rozpoznawania mowy.

Jest to trudne, ale można przekonać rozmówcę, z którym przeprowadzasz rozmowę, do przestrzegania tych zasad (jeszcze jedna rada: jeśli nie masz w zestawie mikrofonu zewnętrznego na klamerce do bielizny, przynajmniej trzymaj rejestrator obok rozmówcy , a nie z tobą).

Ale „zarysowanie” konferencji czy seminarium na wymaganym poziomie w trybie automatycznym jest moim zdaniem praktycznie nierealne (w końcu nie będziesz w stanie zapanować nad mową prelegentów i reakcją publiczności). Chociaż dość ciekawa opcja: zamiana profesjonalnie nagranych wykładów audio i audiobooków na tekst (jeśli nie nałożono na nie podkładu muzycznego i dźwięków).

Miejmy nadzieję, że jakość nagrania z dyktafonu jest wystarczająco wysoka, aby móc je rozszyfrować w tryb automatyczny.

Jeśli nie, z prawie każdą jakością nagrywania, możesz odszyfrować w tryb półautomatyczny.

Ponadto w wielu sytuacjach największe oszczędności czasu i wysiłku przyniosą, paradoksalnie, dekodowanie w tryb ręczny. Dokładniej wersja, z której sam korzystam od kilkunastu lat.

Więc w porządku.

1. Automatyczne rozpoznawanie mowy

Wielu zaleca transkrypcję nagrań głosowych na YouTube. Ale ta metoda zmusza użytkownika do spędzenia czasu na pobraniu pliku audio i obrazu tła, a następnie oczyszczeniu wynikowego tekstu ze znaczników czasu. Tymczasem ten czas jest łatwy do zaoszczędzenia.

Nagrania dźwiękowe można rozpoznać bezpośrednio z komputera, korzystając z możliwości jednej z usług internetowych zasilanych przez silnik rozpoznawania Google (polecam Speechpad.ru lub Speechlogger.com). Wszystko, co musisz zrobić, to zrobić małą sztuczkę: zamiast głosu odtwarzanego z mikrofonu przekieruj strumień audio odtwarzany przez odtwarzacz komputerowy do usługi.

Ta sztuczka nazywa się programowym mikserem stereo (zwykle używanym do nagrywania muzyki na komputerze lub przesyłania jej z komputera do Internetu).

Mikser stereo był częścią systemu Windows XP - ale został usunięty przez programistów z późniejszych wersji tego systemu operacyjnego (mówią, aby chronić prawa autorskie: aby gracze nie kradli muzyki z gier itp.). Jednak często zdarza się, że mikser stereo jest wyposażony w sterowniki do kart dźwiękowych (na przykład karty Realtec wbudowane w płytę główną). Jeśli nie możesz znaleźć miksera stereo na swoim komputerze, korzystając z poniższych zrzutów ekranu, spróbuj ponownie zainstalować sterowniki audio z płyty CD dostarczonej z płytą główną lub ze strony internetowej producenta płyty głównej.

Jeśli to nie pomoże, zainstaluj alternatywny program na swoim komputerze. Na przykład - darmowe VB-CABLE Virtual Audio Device : właściciel wspomnianej usługi Speechpad.ru zaleca jej używanie.

pierwszy krok musisz wyłączyć mikrofon do użytku w trybie nagrywania i zamiast tego włączyć mikser stereo (lub wirtualny VB-CABLE).

Aby to zrobić, kliknij ikonę głośnika w prawym dolnym rogu (obok zegara) - lub wybierz sekcję „Dźwięk” w „Panelu sterowania”. W zakładce "Nagraj" w oknie, które się otworzy, kliknij prawym przyciskiem myszy i zaznacz pola obok pozycji "Pokaż odłączone urządzenia" i "Pokaż odłączone urządzenia". Kliknij prawym przyciskiem myszy ikonę mikrofonu i wybierz „Wycisz” (ogólnie wyłącz wszystkie urządzenia oznaczone zieloną ikoną).

Kliknij prawym przyciskiem myszy ikonę miksera stereo i wybierz „Włącz”. Na ikonie pojawi się zielona ikona, wskazując, że mikser stereo stał się urządzeniem domyślnym.

Jeśli zdecydujesz się użyć VB-CABLE, włącz go w ten sam sposób w zakładce "Nagraj".

A także - w zakładce „Odtwarzanie”.

Drugi krok. Włącz nagrywanie dźwięku w dowolnym odtwarzaczu (jeśli chcesz odszyfrować ścieżkę dźwiękową wideo, możesz także uruchomić odtwarzacz wideo). Jednocześnie załaduj usługę Speechpad.ru w przeglądarce Chrome i kliknij w niej przycisk „Włącz nagrywanie”. Jeśli nagranie jest wystarczająco wysokiej jakości, zobaczysz, jak usługa zamienia mowę na sensowną i bliską oryginalnemu tekstowi na twoich oczach. To prawda, bez znaków interpunkcyjnych, które będziesz musiał sam ułożyć.

Jako odtwarzacz audio radzę skorzystać z AIMP, który zostanie omówiony bardziej szczegółowo w trzecim podrozdziale. Teraz zaznaczę tylko, że ten odtwarzacz pozwala spowolnić nagrywanie bez zniekształceń mowy, a także poprawić niektóre inne błędy. Może to nieco poprawić rozpoznawanie nagrań o niezbyt wysokiej jakości. (Czasami zaleca się nawet wstępne przetworzenie złych nagrań w profesjonalnych programach do edycji dźwięku. Moim zdaniem jest to jednak zbyt pracochłonne zadanie dla większości użytkowników, którzy znacznie szybciej wpisują tekst ręcznie. :))

2. Półautomatyczne rozpoznawanie mowy

Tutaj wszystko jest proste. Jeśli nagranie jest kiepskiej jakości i rozpoznawanie „dławi się” lub usługa powoduje zbyt wiele błędów, pomóż sobie „wsadzając” w łańcuch: „odtwarzacz audio – spiker – system rozpoznawania”.

Twoim zadaniem jest odsłuchanie nagranej mowy w słuchawkach i jednoczesne podyktowanie jej przez mikrofon do usługi rozpoznawania internetowego. (Oczywiście nie musisz przełączać się z mikrofonu na mikser stereo lub wirtualny kabel na liście urządzeń nagrywających, jak w poprzedniej sekcji). A jako alternatywę dla wspomnianych wyżej usług internetowych, możesz skorzystać z aplikacji na smartfony, takich jak darmowy Yandex.Dictation lub funkcja dyktowania na iPhonie z iOS 8 i wyższym.

Zwracam uwagę, że w trybie półautomatycznym masz możliwość natychmiastowego dyktowania znaków interpunkcyjnych, których usługi nie są jeszcze w stanie umieścić w trybie automatycznym.

Jeśli uda Ci się dyktować synchronicznie z odtwarzaniem nagrania w odtwarzaczu, wstępna transkrypcja zajmie prawie tyle samo czasu, co samo nagranie (nie licząc późniejszego czasu poświęconego na poprawianie błędów ortograficznych i gramatycznych). Ale nawet praca według schematu: „posłuchaj frazy - podyktuj - posłuchaj frazy - podyktuj” może dać ci dobrą oszczędność czasu w porównaniu z tradycyjnym pisaniem.

Jako odtwarzacz audio polecam używanie tego samego AIMP. Po pierwsze, możesz go użyć do spowolnienia odtwarzania do szybkości, z którą wygodnie jest dyktować synchronicznie. Po drugie, ten odtwarzacz może zwracać nagranie przez określoną liczbę sekund: jest to czasem konieczne, aby lepiej usłyszeć niezrozumiałą frazę.

3. Ręczna transkrypcja dyktafonu

W praktyce możesz się przekonać, że zbyt szybko męczy Cię półautomatyczne dyktowanie. Lub popełniasz zbyt wiele błędów z usługą. Lub, dzięki umiejętności szybkiego pisania, znacznie łatwiej jest stworzyć gotowy, poprawiony tekst na klawiaturze niż za pomocą dyktowania. Lub dyktafon, stereofoniczny mikrofon zestawu słuchawkowego, karta dźwiękowa nie zapewniają akceptowalnej jakości dźwięku dla usługi. A może po prostu nie masz możliwości dyktowania na głos w pracy lub w domowym biurze.

We wszystkich tych przypadkach pomoże Ci moja autorska metoda ręcznego dekodowania (odsłuchaj nagrania w AIMP - wpisz Word). Dzięki niemu możesz zamienić notatkę w tekst szybciej niż wielu profesjonalnych dziennikarzy, których szybkość pisania jest podobna do Twojej! Jednocześnie wydasz znacznie mniej energii i nerwów niż oni.

Jaki jest główny powód marnowania energii i czasu podczas transkrypcji nagrań audio w tradycyjny sposób? Dzięki temu, że użytkownik wykonuje wiele niepotrzebnych ruchów.

Użytkownik nieustannie wyciąga rękę do dyktafonu, a następnie do klawiatury komputera. Zatrzymałem odtwarzanie - wpisałem odsłuchiwany fragment w edytorze tekstu - ponownie włączyłem odtwarzanie - przewinąłem nieczytelne nagranie z powrotem - itd., itd.

Korzystanie ze zwykłego odtwarzacza oprogramowania na komputerze sprawia, że ​​proces jest nieco łatwiejszy: użytkownik musi stale minimalizować / rozszerzać program Word, zatrzymywać / uruchamiać odtwarzacz, a nawet czołgać się tam iz powrotem za pomocą suwaka odtwarzacza, aby znaleźć nieczytelny fragment, a następnie wrócić do ostatniego odsłuchiwanego miejsca w nagraniu.

Aby zredukować te i inne straty czasu, wyspecjalizowane firmy IT opracowują transkrybatory oprogramowania i sprzętu. To dość drogie rozwiązania dla profesjonalistów – tych samych dziennikarzy, stenografów sądowych, śledczych itp. Ale w rzeczywistości do naszych celów potrzebne są tylko dwie funkcje:

  • możliwość spowolnienia odtwarzania nagrania głosowego bez jego zniekształcania i obniżania tonu (wielu graczy pozwala na spowolnienie prędkości odtwarzania - ale, niestety, w tym samym czasie ludzki głos zamienia się w monstrualny głos robota, który jest trudno słyszeć przez długi czas);
  • możliwość zatrzymania nagrywania lub cofnięcia go na określoną liczbę sekund i przywrócenia go z powrotem bez zatrzymywania pisania i bez minimalizacji okna edytora tekstu.

W swoim czasie testowałem dziesiątki programów audio - i znalazłem tylko dwie niedrogie płatne aplikacje, które spełniają te wymagania. Mam jednego z nich. Poszukałem trochę więcej moich drogich czytelników 🙂 - i znalazłem cudowne darmowe rozwiązanie - odtwarzacz AIMP, z którego sam nadal korzystam.

„Po wprowadzeniu ustawień AIMP znajdź sekcję Global Keys i ponownie skonfiguruj klawisz Stop/Start do klawisza Escape (Esc). Uwierz mi, tak jest najwygodniej, bo nie musisz się nad tym zastanawiać, a palec przypadkowo nie spadnie na inne klawisze. Ustaw pozycje „Przesuń trochę do tyłu” i „Przesuń trochę do przodu” odpowiednio do klawiszy Ctrl + wstecz/do przodu (masz cztery klawisze strzałek na klawiaturze - wybierz dwa z nich). Ta funkcja jest potrzebna, aby ponownie odsłuchać ostatni fragment lub przeskoczyć trochę do przodu.

Następnie, wywołując EQ, możesz zmniejszyć wartości Velocity i Tempo - i zwiększyć wartość Pitch. W takim przypadku zauważysz, że prędkość odtwarzania zwolni, ale wysokość głosu (jeśli dobrze wybierzesz wartość „Pitch”) nie zmieni się. Wybierz te dwa parametry, abyś miał czas na pisanie prawie jednocześnie, tylko sporadycznie go zatrzymując.

Gdy wszystko jest skonfigurowane, pisanie zajmie Ci mniej czasu, a Twoje ręce będą się mniej męczyć. Nagranie będzie można przepisywać spokojnie i wygodnie, praktycznie bez odrywania palców od pisania na klawiaturze.”

Mogę tylko dodać do tego, co zostało powiedziane, że jeśli nagranie nie jest bardzo wysokiej jakości, możesz spróbować poprawić jego odtwarzanie, eksperymentując z innymi ustawieniami w Menedżerze efektów dźwiękowych AIMP.

I liczbę sekund, przez którą najwygodniej będzie przechodzić do tyłu lub do przodu przez nagranie za pomocą klawiszy skrótu - ustaw w sekcji „Odtwarzacz” w oknie „Ustawienia” (które można wywołać, naciskając klawisze skrótu „Ctrl + P”).

Życzę Ci zaoszczędzenia więcej czasu na rutynowych zadaniach - i owocnego wykorzystania go na najważniejsze rzeczy! 🙂 I nie zapomnij włączyć mikrofonu na liście urządzeń nagrywających, gdy będziesz rozmawiać przez Skype!

3 sposoby transkrypcji nagrania głosowego: rozpoznawanie mowy, dyktowanie, tryb ręczny

Zaktualizowano: poniedziałek, 31 lipca 2017 r.

Co ma wspólnego na poły fantastyczny pomysł rozmowy z komputerem z profesjonalną fotografią? Prawie żaden, jeśli nie jesteś fanem idei niekończącego się rozwoju całego środowiska technicznego człowieka. Wyobraź sobie przez chwilę, że wydajesz polecenia głosowe do aparatu, aby zmienić ogniskową i ustawić kompensację ekspozycji o pół kroku plus. Zdalne sterowanie kamerą zostało już zaimplementowane, ale tam trzeba po cichu naciskać przyciski, a tu fotik słuchowy!

Tradycją stało się przywoływanie jakiegoś fantastycznego filmu jako przykładu komunikacji ludzkiego głosu z komputerem, przynajmniej „Odyseja kosmiczna 2001” w reżyserii Stanleya Kubricka. Tam komputer pokładowy nie tylko prowadzi znaczący dialog z astronautami, ale potrafi czytać z ruchu warg jak osoba niesłysząca. Innymi słowy, maszyna nauczyła się rozpoznawać ludzką mowę bez błędów. Być może ktoś uzna zdalne sterowanie aparatem głosowym za zbędne, ale wielu chciałoby to zdanie „Zdejmij nas kochanie” a zdjęcie całej rodziny na tle palmy jest gotowe.

Cóż, tutaj oddałem hołd tradycji, trochę fantazjowałem. Ale, przemawiając z głębi serca, ten artykuł był trudny do napisania, a wszystko zaczęło się od prezentu w postaci smartfona z systemem Android 4. Ten model HUAWEI U8815 ma mały czterocalowy ekran dotykowy i klawiaturę ekranową. Nieco niezwykłe jest pisanie na nim, ale okazało się, że nie jest to szczególnie konieczne. (zdjęcie01)

1. Rozpoznawanie głosu w smartfonie w systemie operacyjnym Android

Podczas wypróbowywania nowej zabawki zauważyłem grafikę mikrofonu w pasku wyszukiwania. Google i na klawiaturze w Notatkach. Wcześniej nie interesowało mnie, co oznacza ten symbol. prowadziłem rozmowy w Skype i wpisywane litery na klawiaturze. To właśnie robi większość internautów. Ale jak mi później wyjaśnili, w wyszukiwarce Google dodano wyszukiwanie głosowe w języku rosyjskim i pojawiły się programy umożliwiające dyktowanie krótkich wiadomości podczas korzystania z przeglądarki Chrom.

Wypowiedziałem zdanie składające się z trzech słów, program zidentyfikował je i pokazał w komórce z niebieskim tłem. Było coś do zdziwienia, bo wszystkie słowa zostały napisane poprawnie. Jeśli klikniesz tę komórkę, fraza pojawi się w polu tekstowym notatnika Androida. Powiedział więc kilka fraz i wysłał wiadomość do asystenta przez SMS.


2. Krótka historia programów rozpoznawania głosu.

Nie było dla mnie odkryciem, że współczesne osiągnięcia w dziedzinie sterowania głosowego pozwalają wydawać polecenia sprzętom AGD, samochodowi, robotowi. Tryb poleceń został wprowadzony w poprzednich wersjach systemów Windows, OS/2 i Mac OS. Widziałem programy typu talker, ale jaki jest z nich pożytek? Być może jest to moja osobliwość, że łatwiej mi mówić niż pisać na klawiaturze, a na komórce nie mogę w ogóle nic pisać. Musisz nagrywać kontakty na laptopie za pomocą normalnej klawiatury i przesyłać za pomocą kabla USB. Ale po prostu mówić do mikrofonu, a komputer sam wpisywał tekst bez błędów – to było dla mnie marzenie. Atmosferę beznadziei wspierały dyskusje na forach. Wszędzie mieli taką smutną myśl:

„Jednak w praktyce do tej pory programy do prawdziwego rozpoznawania mowy (a nawet w języku rosyjskim) praktycznie nie istnieją i oczywiście nie zostaną wkrótce utworzone. Co więcej, nawet odwrotne zadanie rozpoznawania - syntezy mowy, które wydaje się, że jest znacznie prostsze niż rozpoznawanie, nie zostało w pełni rozwiązane. (ComputerPress №12, 2004)

„Do dziś nie ma normalnych programów do rozpoznawania mowy (nie tylko rosyjskiego), ponieważ zadanie jest dość trudne dla komputera. A najgorsze jest to, że mechanizm rozpoznawania słów przez osobę nie został zrealizowany, więc nie ma na czym budować przy tworzeniu programów rozpoznawania. (Kolejna dyskusja na forum).

Jednocześnie przeglądy programów do wprowadzania tekstu w języku angielskim wskazywały na wyraźne sukcesy. Na przykład, IBM ViaVoice 98 Executive Edition posiadał podstawowy słownik zawierający 64 000 słów i możliwość dodawania takiej samej liczby własnych słów. Odsetek rozpoznawania słów bez szkolenia programu wyniósł około 80%, a przy późniejszej pracy z konkretnym użytkownikiem osiągnął 95%.

Z programów do rozpoznawania języka rosyjskiego warto zwrócić uwagę na „Gorynych” – dodatek do anglojęzycznego Dragon Dictate 2.5. O poszukiwaniach, a potem „bitwie z pięcioma Gorynychami” opowiem w drugiej części recenzji. Najpierw znalazłem „angielskiego smoka”.

3. Program rozpoznawania mowy ciągłej „Dragon Naturally Speaking”

Nowoczesna wersja programu firmy Niuans okazał się być z moim starym przyjacielem z mińskiego Instytutu Języków Obcych. Przywiozła go z zagranicznej podróży i kupiła, myśląc, że mogłaby zostać „sekretarką komputerową”. Ale coś nie zadziałało, a program pozostał prawie zapomniany na laptopie. Z powodu braku zrozumiałych doświadczeń musiałem sam udać się do koleżanki. Całe to przydługie wprowadzenie jest niezbędne do właściwego zrozumienia wyciągniętych przeze mnie wniosków.

Pełna nazwa mojego pierwszego smoka brzmiała: . Program jest w języku angielskim i wszystko w nim jest jasne nawet bez instrukcji. Pierwszym krokiem jest stworzenie profilu konkretnego użytkownika, aby określić cechy brzmienia słów w jego wykonaniu. Co zrobiłem - ważny jest wiek mówiącego, kraj, osobliwości wymowy. Mój wybór to: wiek 22-54, angielski UK, standardowa wymowa. Następnie pojawia się kilka okien, w których konfigurujesz mikrofon. (zdjęcie04)

Następnym etapem w poważnych programach rozpoznawania mowy jest trening wymowy konkretnej osoby. Zapraszam do wyboru charakteru tekstu: mój wybór to krótka instrukcja dotycząca dyktowania, ale można też „zamówić” humorystyczną historię.

Istota tego etapu pracy z programem jest niezwykle prosta - tekst jest wyświetlany w oknie, nad nim znajduje się żółta strzałka. Przy poprawnej wymowie strzałka porusza się po frazach, a na dole znajduje się pasek postępu treningu. Konwersacje po angielsku zostały przeze mnie całkiem zapomniane, więc poruszałam się z trudem. Czas też był ograniczony – przecież komputer nie był mój i musiałem przerwać trening. Ale koleżanka powiedziała, że ​​przystąpiła do testu w mniej niż pół godziny. (zdjęcie05)

Odmawiając dostosowania programu do mojej wymowy, wszedłem do głównego okna i uruchomiłem wbudowany edytor tekstu. Wypowiedział oddzielne słowa z niektórych tekstów, które znalazł na komputerze. Te słowa, które powiedział poprawnie, program wydrukowany, te, które powiedział źle, zastąpiono czymś „angielskim”. Po wyraźnym wymówieniu polecenia „erase line” w języku angielskim, program spełnił je. Oznacza to, że poprawnie czytam polecenia, a program rozpoznaje je bez wcześniejszego szkolenia.

Ale ważne było dla mnie, jak ten „smok” pisze po rosyjsku. Jak zrozumiałeś z poprzedniego opisu, podczas treningu programu możesz wybrać tylko tekst w języku angielskim, po prostu nie ma tam tekstu rosyjskiego. Oczywiste jest, że trenowanie rozpoznawania mowy rosyjskiej nie zadziała. Na następnym zdjęciu możesz zobaczyć, jaką frazę wpisał program podczas wymawiania rosyjskiego słowa „Cześć”. (zdjęcie06)

Rezultat komunikacji z pierwszym smokiem okazał się nieco komiczny. Jeśli uważnie przeczytasz tekst na oficjalnej stronie internetowej, możesz zobaczyć angielską „specjalizację” tego oprogramowania. Ponadto podczas ładowania czytamy w oknie programu „Angielski”. Więc dlaczego to wszystko było konieczne? Oczywiste jest, że winne są fora i plotki ...

Ale jest też przydatne doświadczenie. Moja przyjaciółka poprosiła o sprawdzenie stanu jej laptopa. Jakoś powoli zaczął pracować. Nic w tym dziwnego – partycja systemowa miała tylko 5% wolnego miejsca. Podczas usuwania niepotrzebnych programów zauważyłem, że oficjalna wersja zajmuje ponad 2,3 GB. Ten numer będzie nam potrzebny później. (zdjęcie.07)



Rozpoznanie mowy rosyjskiej, jak się okazało, nie było trywialnym zadaniem. W Mińsku udało mi się znaleźć „Gorynych” od znajomego. Długo szukał płyty w swoich starych gruzach i według niego jest to oficjalna publikacja. Program zainstalował się natychmiast i dowiedziałem się, że jego słownik zawiera 5000 rosyjskich słów plus 100 poleceń i 600 angielskich słów plus 31 poleceń.

Najpierw musisz ustawić mikrofon, co zrobiłem. Następnie otworzyłem słownik i dodałem słowo "badanie" bo nie było go w słowniku programu. Próbowałem mówić wyraźnie, monotonnie. W końcu otworzyłem program Gorynych Pro 3.0, włączyłem tryb dyktowania i dostałem tę listę „słów, które brzmią podobnie”. (zdjęcie.09)

Wynik mnie zdziwił, bo wyraźnie różnił się na gorsze od pracy smartfona z Androidem i postanowiłem wypróbować inne programy od „ Sklep internetowy Google Chrome". A zajmowanie się „gorynymi wężami” odłożył na później. Myślałem, że to odroczenie działanie w oryginalnym rosyjskim duchu

5. Możliwości głosowe Google

Aby pracować z głosem na zwykłym komputerze z systemem operacyjnym Windows, musisz zainstalować przeglądarkę Google Chrome. Jeśli pracujesz w nim w Internecie, w prawym dolnym rogu możesz kliknąć link do sklepu z oprogramowaniem. Tam za darmo znalazłem dwa programy i dwa rozszerzenia do głosowego wprowadzania tekstu. Programy nazywają się „Notatnik głosowy” oraz "Voysnot - głos na tekst". Po instalacji można je znaleźć w zakładce "Aplikacje" Twoja przeglądarka "Chrom". (zdjęcie 10)

Rozszerzenia nazywają się „Słowo-kluczowe wyszukiwania głosowego Google (Beta) 0.1.0.5” oraz "Tekst głosowy - Speechpad.ru 5.4". Po instalacji można je wyłączyć lub usunąć w zakładce „Rozszerzenia”.(zdjęcie 11)

Notatka głosowa. Na karcie aplikacji w przeglądarce Chrome kliknij dwukrotnie ikonę programu. Otworzy się okno dialogowe, jak pokazano na poniższym obrazku. Klikając ikonę mikrofonu, wypowiadasz krótkie frazy do mikrofonu. Program wysyła Twoje słowa do serwera rozpoznawania mowy i wpisuje tekst w oknie. Wszystkie słowa i wyrażenia pokazane na ilustracji zostały wpisane za pierwszym razem. Oczywiście ta metoda działa tylko przy aktywnym połączeniu internetowym. (zdjęcie 12)

Notatnik głosowy. Jeśli uruchomisz program na karcie aplikacji, otworzy się nowa karta strony internetowej Speechpad.ru. Dostępna jest szczegółowa instrukcja korzystania z tej usługi oraz kompaktowy formularz. Ten ostatni pokazano na poniższej ilustracji. (zdjęcie 13)

Wejście głosowe tekst umożliwia wypełnianie za pomocą głosu pól tekstowych na stronach internetowych. Na przykład wszedłem na moją stronę Google+. W polu wprowadzania nowej wiadomości kliknij prawym przyciskiem myszy i wybierz „SpeechPad”. Różowe pole wprowadzania mówi, że możesz dyktować swój tekst. (zdjęcie 14)

Wyszukiwanie głosowe Google umożliwia wyszukiwanie głosowe. Po zainstalowaniu i aktywowaniu tego rozszerzenia na pasku wyszukiwania pojawi się symbol mikrofonu. Po jego naciśnięciu pojawi się symbol w dużym czerwonym kółku. Po prostu powiedz wyszukiwaną frazę, a pojawi się ona w wynikach wyszukiwania. (zdjęcie 15)

Ważna uwaga: aby mikrofon działał z rozszerzeniami Chrome, musisz zezwolić na dostęp do mikrofonu w ustawieniach przeglądarki. Jest domyślnie wyłączone ze względów bezpieczeństwa. Przechodzą w Ustawienia→Dane osobowe→Ustawienia treści. (Aby uzyskać dostęp do wszystkich ustawień na końcu listy, kliknij Pokaż ustawienia zaawansowane). Otworzy się okno dialogowe Ustawienia zawartości strony. Wybierz pozycję na liście Multimedia→mikrofon.

6. Wyniki pracy z rosyjskimi programami rozpoznawania mowy

Niewielkie doświadczenie w korzystaniu z programów do wprowadzania tekstu za pomocą głosu wykazało doskonałą implementację tej funkcji na serwerach firmy internetowej Google. Bez wcześniejszego szkolenia słowa są rozpoznawane poprawnie. Wskazuje to, że problem rozpoznawania mowy rosyjskiej został rozwiązany.

Teraz możemy powiedzieć, że wynik rozwoju Google będzie nowym kryterium oceny produktów innych producentów. Chciałbym, żeby system rozpoznawania działał offline bez kontaktu z serwerami firmy – jest to wygodniejsze i szybsze. Ale kiedy zostanie wydany niezależny program do pracy z ciągłym strumieniem mowy rosyjskiej, nie wiadomo. Warto jednak założyć, że przy okazji trenowania tej „kreacji” nastąpi prawdziwy przełom.

Programy rosyjskich programistów „Gorynych”, "Dyktograf" oraz "Walka" Omówię szczegółowo w drugiej części tej recenzji. Ten artykuł został napisany bardzo powoli, ponieważ poszukiwanie oryginalnych płyt jest teraz trudne. W tej chwili mam już wszystkie wersje rosyjskiego oprogramowania do rozpoznawania głosu na tekst, z wyjątkiem Combat 2.52. Żaden z moich znajomych ani kolegów nie ma tego programu, a ja sam mam tylko kilka pochwalnych recenzji na forach. Co prawda była taka dziwna opcja - pobierz "Combat" przez SMS, ale mi się to nie podoba. (zdjęcie 16)


Krótki filmik pokaże Ci, jak działa rozpoznawanie mowy w smartfonie z systemem Android. Cechą wybierania głosowego jest konieczność łączenia się z serwerami Google. Internet powinien więc działać dla Ciebie

) na prawdziwym przykładzie Hello World sterowania sprzętem AGD.
Dlaczego AGD? Tak, bo dzięki takiemu przykładowi można to docenić szybkość i dokładność, co można osiągnąć za pomocą całkowicie lokalny rozpoznawanie mowy bez serwerów typu Google ASR lub Yandex SpeechKit.
Do artykułu dołączam również wszystkie kody źródłowe programu oraz sam montaż dla Androida.

Dlaczego nagle?

Niedawno natknąłem się na to, że zapytałem autora, dlaczego chce używać rozpoznawania mowy po stronie serwera w swoim programie (moim zdaniem było to zbędne i powodowało pewne problemy). Na co otrzymałem kontr-pytanie o to, czy mógłbym bardziej szczegółowo opisać zastosowanie metod alternatywnych dla projektów, w których nie trzeba niczego rozpoznawać, a słownik składa się ze skończonego zbioru słów. Ponadto z przykładem praktycznego zastosowania ...

Dlaczego potrzebujemy czegoś innego oprócz Yandex i Google?

Jako bardzo „praktyczną aplikację” wybrałem temat inteligentne sterowanie głosowe w domu.
Dlaczego taki przykład? Ponieważ na nim widać te kilka zalet całkowicie lokalnego rozpoznawania mowy nad rozpoznawaniem przy użyciu rozwiązań chmurowych. Mianowicie:
  • Prędkość- nie jesteśmy uzależnieni od serwerów, a zatem nie zależymy od ich dostępności, przepustowości itp. czynniki
  • Precyzja- nasz silnik działa tylko ze słownikiem, którym interesuje się nasza aplikacja, podnosząc tym samym jakość rozpoznawania
  • Cena £- nie musimy płacić za każde żądanie do serwera
  • Aktywacja głosowa- jako dodatkowy bonus do pierwszych punktów - możemy stale "słuchać w powietrzu" bez marnowania naszego ruchu i bez ładowania serwera

Notatka

Od razu zastrzegam, że te zalety można uznać za zalety tylko dla określonej klasy projektów, Gdzie jesteśmy wiemy na pewno, jakiego słownika i jakiej gramatyki będzie używał użytkownik. To znaczy, gdy nie musimy rozpoznawać dowolnego tekstu (na przykład wiadomości SMS lub zapytania wyszukiwania). W przeciwnym razie niezbędne jest rozpoznawanie chmur.

Więc Android może rozpoznawać mowę bez Internetu!
Tak, tak... Tylko na JellyBean. I tylko z pół metra, nie więcej. I to uznanie to to samo dyktando, tylko przy użyciu znacznie mniejszego modelu. Nie możemy więc nim zarządzać i konfigurować. A co wróci do nas następnym razem, nie jest znane. Chociaż na sms-ok w sam raz!

Co robimy?

Wdrożymy głosowego pilota do sprzętu AGD, który będzie działał dokładnie i szybko, z odległości kilku metrów, a nawet na tanich hamulcach na bardzo niedrogich smartfonach, tabletach i zegarkach z Androidem.
Logika będzie prosta, ale bardzo praktyczna. Aktywujemy mikrofon i wypowiadamy jedną lub więcej nazw urządzeń. Aplikacja rozpoznaje je i włącza lub wyłącza w zależności od aktualnego stanu. Albo otrzymuje od nich stan i wypowiada go przyjemnym kobiecym głosem. Na przykład aktualna temperatura w pomieszczeniu.

Mnóstwo praktycznych zastosowań

Rano, nie otwierając oczu, uderzyli ekranem smartfona w szafkę nocną i wydali komendę „Dzień dobry!” - zaczyna się scenariusz, ekspres włącza się i brzęczy, słychać przyjemną muzykę, rozsuwają się zasłony.
Zawieś taniego (2 tys., nie więcej) smartfona w każdym pokoju na ścianie. Wracamy po pracy do domu i nakazujemy w pustkę „Inteligentny dom! Światło, telewizor! - Myślę, że co się dalej dzieje, nie trzeba mówić.

Transkrypcje



Gramatyka opisuje, co co użytkownik może powiedzieć. Aby Pocketsphinx wiedział Jak on to wymówi, konieczne jest, aby każde słowo z gramatyki napisało, jak brzmi w odpowiednim modelu językowym. To znaczy transkrypcja każde słowo. Nazywa się słownik.

Transkrypcje są opisane przy użyciu specjalnej składni. Na przykład:
inteligentny uu m n ay j dom do oo m

W zasadzie nic skomplikowanego. Podwójna samogłoska w transkrypcji oznacza stres. Podwójna spółgłoska to miękka spółgłoska, po której następuje samogłoska. Wszystkie możliwe kombinacje dla wszystkich dźwięków języka rosyjskiego.

Oczywiste jest, że nie możemy z góry opisać wszystkich transkrypcji w naszej aplikacji, ponieważ nie znamy z góry nazw, jakie użytkownik nada swoim urządzeniom. Dlatego będziemy generować takie transkrypcje w locie zgodnie z niektórymi zasadami rosyjskiej fonetyki. Aby to zrobić, możesz zaimplementować taką klasę PhonMapper, która może otrzymać ciąg znaków jako dane wejściowe i wygenerować dla niego poprawną transkrypcję.

Aktywacja głosowa

Jest to zdolność silnika rozpoznawania mowy do „słuchania powietrza” przez cały czas, aby odpowiedzieć na predefiniowaną frazę (lub frazy). Wszystkie inne dźwięki i mowa zostaną odrzucone. To nie to samo, co opisywanie gramatyki i włączanie mikrofonu. Nie będę tu podawał teorii tego zadania i mechaniki jego działania. Powiem tylko, że ostatnio programiści pracujący nad Pocketsphinxem zaimplementowali taką funkcję, a teraz jest ona dostępna od razu w API.

Warto wspomnieć o jednej rzeczy. Dla frazy aktywacyjnej musisz nie tylko określić transkrypcję, ale także wybrać odpowiednią wartość progu czułości. Zbyt mała wartość doprowadzi do wielu fałszywych alarmów (jest to sytuacja, w której nie wypowiedziałeś frazy aktywacyjnej, ale system ją rozpozna). I zbyt wysoki - na odporność. Dlatego to ustawienie ma szczególne znaczenie. Przybliżony zakres wartości - od 1e-1 do 1e-40 w zależności od frazy aktywacyjnej.

Aktywacja zbliżeniowa

To zadanie jest specyficzne dla naszego projektu i nie jest bezpośrednio związane z rozpoznaniem. Kod można zobaczyć bezpośrednio w głównej działalności.
Ona zdaje sobie sprawę CzujnikZdarzeńOdbiornik i w momencie zbliżenia (wartość czujnika jest mniejsza niż wartość maksymalna) uruchamia timer, sprawdzając po pewnym opóźnieniu, czy czujnik nadal jest zablokowany. Ma to na celu uniknięcie fałszywych alarmów.
Gdy czujnik nie zostanie ponownie zablokowany, przestajemy rozpoznawać, otrzymując wynik (patrz opis poniżej).

Rozpoczynamy rozpoznawanie

Pocketsphinx zapewnia wygodny interfejs API do konfigurowania i uruchamiania procesu rozpoznawania. To są zajęcia Rozpoznawanie Spech oraz Konfiguracja rozpoznawania mowy.
Oto jak wygląda konfiguracja i uruchomienie rozpoznawania:

PhonMapper phonMapper = nowy PhonMapper(getAssets().open("dict/ru/hotwords")); Gramatyka gramatyczna = new Grammar(names, phonMapper); gramatyka.addWords(słowo-kluczowe); DataFiles dataFiles = new DataFiles(getPackageName(), "ru"); Plik hmmDir = new File(dataFiles.getHmm()); File dict = new File(dataFiles.getDict()); Plik jsgf = new File(dataFiles.getJsgf()); copyAssets(hmmDir); saveFile(jsgf, gramatyka.getJsgf()); saveFile(dict, grammar.getDict()); mRecognizer = SpeechRecognizerSetup.defaultSetup() .setAcousticModel(hmmDir) .setDictionary(dict) .setBoolean("-remove_noise", false) .setKeywordThreshold(1e-7f) .getRecognizer(); mRecognizer.addKeyphraseSearch (KWS_SEARCH, słowo-klucz); mRecognizer.addGrammarSearch (COMMAND_SEARCH, jsgf);

Tutaj najpierw kopiujemy wszystkie potrzebne pliki na dysk (Pocketpshinx wymaga modelu akustycznego, gramatyki i słownika transkrypcji na dysku). Następnie konfigurowany jest sam silnik rozpoznawania. Określone są ścieżki do plików modelu i słownika, a także niektóre parametry (próg czułości dla frazy aktywacyjnej). Następnie konfigurowana jest ścieżka do pliku gramatycznego oraz fraza aktywacyjna.

Jak widać z tego kodu, jeden silnik jest jednocześnie skonfigurowany do rozpoznawania gramatyki i fraz aktywacyjnych. Dlaczego tak się dzieje? Abyśmy mogli szybko przełączać się między tym, co obecnie musimy rozpoznać. Tak wygląda uruchomienie procesu rozpoznawania fraz aktywacyjnych:

MRecognizer.startListening(KWS_SEARCH);
I tak - rozpoznawanie mowy według podanej gramatyki:

MRecognizer.startListening(COMMAND_SEARCH, 3000);
Drugi argument (opcjonalny) to liczba milisekund, po których rozpoznawanie zakończy się automatycznie, jeśli nikt nic nie powie.
Jak widać, do rozwiązania obu problemów można użyć tylko jednego silnika.

Jak uzyskać wynik rozpoznania

Aby uzyskać wynik rozpoznawania, musisz również określić detektor zdarzeń, który implementuje interfejs RozpoznawanieSłuchacz.
Ma kilka metod, które są wywoływane przez kieszonkowego sfinksa, gdy wystąpi jedno ze zdarzeń:
  • na początku mowy- silnik usłyszał jakiś dźwięk, może to mowa (a może nie)
  • onEndOfSpeech- dźwięk się skończył
  • onPartialResult- istnieją pośrednie wyniki rozpoznawania. Dla frazy aktywacyjnej oznacza to, że zadziałało. Argument Hipoteza
  • onResult- końcowy wynik rozpoznania. Ta metoda zostanie wywołana po wywołaniu metody Zatrzymaj się w Rozpoznawanie mowy. Argument Hipoteza zawiera dane rozpoznawcze (ciąg i wynik)

Implementując metody onPartialResult i onResult w taki czy inny sposób, możesz zmienić logikę rozpoznawania i uzyskać ostateczny wynik. Oto jak to się robi w naszej aplikacji:

@Override public void onEndOfSpeech() ( Log.d(TAG, "onEndOfSpeech"); if (mRecognizer.getSearchName().equals(COMMAND_SEARCH)) ( mRecognizer.stop(); ) ) @Override public void onPartialResult(hipoteza) ( if (hipoteza == null) return; String text = hypothesis.getHypstr(); if (KWS_SEARCH.equals(mRecognizer.getSearchName())) ( startRecognition(); ) else ( Log.d(TAG, text); ) ) @Override public void onResult(hipoteza hipotezy) ( mMicView.setBackgroundResource(R.drawable.background_big_mic); mHandler.removeCallbacks(mStopRecognitionCallback); String text = hipoteza != null ? hypothesis.getHypstr. :(TAG;null; , "onResult " + tekst); if (COMMAND_SEARCH.equals(mRecognizer.getSearchName())) ( if (text != null) ( Toast.makeText(this, text, Toast.LENGTH_SHORT).show()); process(text ); ) mRecognizer.startListening(KWS_SEARCH); ) )

Gdy otrzymamy zdarzenie onEndOfSpeech, a jednocześnie rozpoznamy polecenie do wykonania, to musimy przerwać rozpoznawanie, po czym natychmiast zostanie wywołane onResult.
W onResult musisz sprawdzić, co właśnie zostało rozpoznane. Jeśli jest to polecenie, musisz uruchomić je w celu wykonania i przełączyć silnik, aby rozpoznał frazę aktywacyjną.
W onPartialResult interesuje nas tylko rozpoznawanie frazy aktywacyjnej. Jeśli go wykryjemy, natychmiast rozpoczynamy proces rozpoznawania polecenia. Oto jak to wygląda:

Prywatne zsynchronizowane void startRecognition() ( if (mRecognizer == null || COMMAND_SEARCH.equals(mRecognizer.getSearchName())) return; mRecognizer.cancel (); nowy ToneGenerator(AudioManager.STREAM_MUSIC, ToneGenerator.MAX_VOLUME).startTone(ToneGenerator. TONE_CDMA_PIP, 200); post(400, new Runnable() ( @Override public void run() ( mMicView.setBackgroundResource(R.drawable.background_big_mic_green); mRecognizer.startListening(COMMAND_SEARCH, 3000); Log.d(TAG, "Listen polecenia"); post(4000, mStopRecognitionCallback); ) )); )
Tutaj najpierw odtwarzamy mały sygnał, aby użytkownik wiedział, że go usłyszeliśmy i jesteśmy gotowi na jego polecenie. W tym czasie mikrofon musi być wyłączony. Dlatego rozpoznawanie rozpoczynamy po krótkim czasie oczekiwania (nieco dłuższym niż czas trwania sygnału, aby nie słyszeć jego echa). Rozpoczyna również wątek, który wymusi zatrzymanie rozpoznawania, jeśli użytkownik mówi zbyt długo. W tym przypadku jest to 3 sekundy.

Jak zamienić rozpoznany ciąg w polecenia

Cóż, wszystko jest już specyficzne dla konkretnej aplikacji. W przypadku nagiego przykładu po prostu wyciągamy z wiersza nazwy urządzeń, szukamy żądanego urządzenia i albo zmieniamy jego stan za pomocą żądania HTTP do sterownika inteligentnego domu, albo zgłaszamy jego aktualny stan (jak w przypadku termostat). Tę logikę można zobaczyć w klasie Controller.

Jak zsyntetyzować mowę

Synteza mowy to odwrotna operacja rozpoznawania. Wręcz przeciwnie, musisz zamienić wiersz tekstu na mowę, aby użytkownik mógł go usłyszeć.
W przypadku termostatu musimy sprawić, by nasze urządzenie z Androidem podało aktualną temperaturę. Korzystanie z API Tekst na mowę jest to dość proste (dzięki Google za piękną kobiecą TTS dla języka rosyjskiego):

Private void speak(String text) (zsynchronizowane (mSpeechQueue) ( ​​mRecognizer.stop(); mSpeechQueue.add(text); HashMap params = nowa HashMap (2); params.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, UUID.losowyUUID().toString()); params.put(TextToSpeech.Engine.KEY_PARAM_STREAM, String.valueOf(AudioManager.STREAM_MUSIC)); params.put(TextToSpeech.Engine.KEY_FEATURE_NETWORK_SYNTHESIS, "prawda"); mTextToSpeech.speak(tekst, TextToSpeech.QUEUE_ADD, parametry); ) )

Pewnie powiem, że to banalne, ale przed procesem syntezy konieczne jest wyłączenie rozpoznawania. Na niektórych urządzeniach (na przykład we wszystkich Samsungach) generalnie niemożliwe jest jednoczesne słuchanie mikrofonu i syntezowanie czegoś.
Koniec syntezy mowy (czyli koniec procesu wypowiadania tekstu przez syntezator) można prześledzić w słuchaczu:

Private final TextToSpeech.OnUtteranceCompletedListener mUtteranceCompletedListener = new TextToSpeech.OnUtteranceCompletedListener() ( @Override public void onUtteranceCompleted(String utteranceId) ( zsynchronizowany (mSpeechQueue) ( ​​mSpeechEchEu.Queuty. KWS_SEARCH););)))));

W nim po prostu sprawdzamy, czy w kolejce syntezy jest coś jeszcze i włączamy rozpoznawanie fraz aktywacyjnych, jeśli nie ma nic innego.

I to wszystko?

TAk! Jak widać, szybkie i dokładne rozpoznanie mowy bezpośrednio na urządzeniu nie jest trudne, dzięki obecności tak wspaniałych projektów jak Pocketsphinx. Zapewnia bardzo przydatne API, które można wykorzystać do rozwiązywania problemów związanych z rozpoznawaniem poleceń głosowych.

W tym przykładzie skręciliśmy rozpoznawanie do całkowicie poprawnego zadania - sterowanie głosowe inteligentnych urządzeń domowych. Dzięki rozpoznaniu lokalnemu osiągnęliśmy bardzo dużą szybkość i zminimalizowaliśmy błędy.
Oczywiste jest, że ten sam kod można wykorzystać do innych zadań związanych z głosem. To nie musi być inteligentny dom. Dodaj tagi