Pytanie:
Tworzenie od podstaw rozpoznawania mowy dla nowego języka
Monolord's Knight
2015-02-12 16:26:28 UTC
view on stackexchange narkive permalink

Znam C ++ i PHP, znam OOP i zastosowania technologii bazodanowych. Muszę stworzyć oprogramowanie do rozpoznawania mowy dla własnego kraju, którego symbole są unikalne, ale obsługiwane przez UTF-8. i jak dotąd żadna firma programistyczna nie podjęła takiej inicjatywy. Muszę wiedzieć, jaki język programowania będzie idealny i jakie kursy wybrać, aby nauczyć się tego procesu. Nie lubię przetwarzać języka za pomocą SAPI ani budować w technologiach rozpoznawania, ponieważ są one oparte na języku angielskim (tu problem gramatyki i składni jest tak różny - jest oparty na indoeuropejskim). Chcę zrobić to od zera (przetwarzanie na poziomie maszyny / głosu - chcę, aby przetworzony dźwięk był bezpośrednio przetwarzany na moje symbole (bez angielskiej transformacji)). Mam nadzieję, że zrozumiesz, bo nie mogę się doczekać, ponieważ jest to wymóg mojego narodu. Nie ma to na celu promowania żadnego języka programowania ani kursu. Po prostu muszę to teraz wiedzieć. (jeśli moje pytanie nie pasuje tutaj, proszę, aby pasowało najbardziej i bądź na tyle uprzejmy, aby przejść na to forum. Miałem gorzkie doświadczenia)

posiadanie solidnej bazy danych na temat sposobu wypowiadania słów jest konieczne. To jest tak zwany silnik TTS. Ostatnio pracowałem dla naszej firmy do stworzenia własnego syntezatora mowy, ponieważ niektóre języki / dialekty nie były dostępne na rynku. Potrzebujesz 2 intepretnych, męskich i żeńskich o ogólnym tonie głosu, a istnieje określona lista słów, które muszą przeczytać i nagrać. generuje prawie każdy możliwy dźwięk, jakiego potrzebujesz. Większość języków wymaga nagrania od 600 000 do 700 000 słów.
@Franck, Dzięki. Nasza społeczność jest gotowa udostępniać te dźwięki, bez względu na to, ile razy tego potrzebujesz. Swoją drogą, jakiej technologii używała Twoja ostatnia firma do tworzenia systemu?
O ile wiem, nie było kodowania do rozpoznawania i budowania bazy danych. Mieliśmy profesjonalną salę nagrań, w której kobiety nagrywały te 700 tysięcy słów przez około 10 miesięcy do 1 roku. W końcu do rozpoznawania mowy mieliśmy serwer TTS, który jest dość drogi. Jeśli pamiętam, jest to 6 cyfr i jest to cały system operacyjny sam. Nazywaliśmy to za pomocą C #, asp classic, asp.net, VXML i jakiegoś sprzętowego systemu telefonicznego.
dzięki za te informacje.
Mechanizm TTS (Text to Speech) jest odwrotnością rozpoznawania mowy, prawda? TTS umożliwia komputerowi wytwarzanie mowy, a nie jej rozumienie.
Nie wiem, jak sobie radzą z rozpoznawaniem mowy, ale Python i Java mają zestawy narzędzi NLP. Jeśli chodzi o szybkość, przejdź do C ++
Jeśli nazwiesz swój język, łatwiej będzie Ci udzielić bardziej ukierunkowanych porad.
Dwa odpowiedzi:
Nikolay Shmyrev
2015-03-16 04:50:20 UTC
view on stackexchange narkive permalink

Dodanie obsługi nowego języka jest całkiem proste, w rzeczywistości wystarczy postępować zgodnie z dokumentacją i przejść do rzeczy. Musisz także posiadać znajomość języka skryptowego, która pomoże Ci odciąć ręczną pracę na niektórych etapach. Uniksowa obsługa wiersza poleceń to duży plus, chociaż możesz pracować również w systemie Windows.

1) Przeczytaj Wprowadzenie, aby zapoznać się z koncepcjami rozpoznawania mowy - funkcjami, modelami akustycznymi, językiem modele itp.

2) Wypróbuj CMUSphinx z modelem w języku angielskim (USA), aby zrozumieć, jak to działa. Spróbuj trenować z przykładową amerykańską bazą danych AN4 w języku angielskim, postępując zgodnie z samouczkiem szkoleniowym dotyczącym modelu akustycznego.

3) Przeczytaj o swoim języku w Wikipedii.

4) Zbierz zestaw transkrybowanych nagrań na Twój język - podcasty, audycje radiowe, audiobooki. Możesz również samodzielnie nagrać początkową kwotę. Aby rozpocząć, potrzebujesz około 20 godzin transkrypcji danych, 100 godzin, aby stworzyć dobry model.

5) Na podstawie zebranych danych utwórz listę słów i słownik fonetyczny. Większość słowników fonetycznych można utworzyć za pomocą prostych reguł z małym skryptem w Twoim ulubionym języku skryptowym, takim jak Python. Zobacz Generowanie słownika, aby uzyskać szczegółowe informacje.

6) Podziel dźwięk na krótkie zdania ręcznie lub za pomocą alignera sphinx4, utwórz bazę danych z wymaganymi plikami zgodnie z opisem w samouczku.

7) Zintegruj nowy model ze swoją aplikacją i zaprojektuj zbiór danych, aby ulepszyć swój model.

Jeśli masz pytania, możesz je zadać na CMU Sphinx / Fora.

Matthew Lock
2015-02-12 17:19:37 UTC
view on stackexchange narkive permalink

Sprawdź, czy jakiekolwiek istniejące systemy rozpoznawania mowy umożliwiają dodanie własnego języka. Pozwoli ci to zaoszczędzić lata wysiłku. Nawet wtedy zgromadzenie dużej bazy danych słów i gramatyki w Twoim języku będzie ogromne.

Oto kilka wskazówek, które pomogą Ci zacząć:

Jeśli nie, to prawdopodobnie będziesz używać C / C ++ do wystarczająco szybkiego przetwarzania przychodzącego dźwięku. Więcej informacji o zasadach rozpoznawania mowy znajdziesz tutaj: http://en.wikipedia.org/wiki/Speech_recognition

dzięki za informację. Daj mi znać o każdej otrzymanej aktualizacji. Wypróbowuję je.
Właściwie jedna osoba może to zrobić w około miesiąc, wymagana jest tylko pasja. Nie jest to takie skomplikowane i C / C ++ nie jest potrzebne.
@NikolayShmyrev super!


To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...