Witam :-)!

PODSUMOWANIE: Jak uruchomić pocketsphinx_continuous na telefonie komórkowym z Symbianem, i jak zrobić to z symulatorem komórki z Symbianem? PocketSphinx można ściągnąć za darmo tutaj, zarówno pod Windowsy jak i Linuksa: http://cmusphinx.sourceforge.net/html/download.php .


KRÓTKIE WYJAŚNIENIE

Chciałbym stworzyć aplikację na telefon komórkowy, taką żeby:

  1. Użytkownik uruchamiał aplikację na telefonie z Symbianem, aplikacja będzie używać PocketSphinx. Jest to oprogramowanie typu Automatic Speech Recognition, czyli Automatyczne Rozpoznawanie Mowy dla urządzeń takich, jak telefony komórkowe, napisane w C. Ktoś mi napisał, że "PocketSphinx może być bez problemu uruchomiony na Symbianie z minimalnym wysiłkiem". Moja wiedza o Symbianie jest ograniczona, ale wiem trochę na temat CMU Sphinx. Czy możecie pomóc mi, proszę, uruchomić PocketSphinksa na Symbianie? Potrzebuję też znaleźć symulator telefonu komórkowego z Symbianem. Znalazłem Wireless Toolkit i przetestowałem jak używać ten emulator, ale myślę, że nie pozwala on na symulację komórki z Symbianem. (Swoją drogą muszę się zdecydować na telefon nie droższy nić 700 zł; która wersja Symbiana będzie najlepsza dla mojej aplikacji?
  2. Ta aplikacja będzie się komunikować z użytkownikiem. Użytkownik mówi cyfry i parę innych słów (słownik zawiera około piętnastu wyrazów, jestem w stanie samemu stworzyć modele językowy i akustyczny, jak również gramatykę formalną w CMU Sphinx, przy użyciu SphinxTrain). Aplikacja będzie rozpoznawać te cyfry.
  3. Bazując na rozmowie, telefon komórkowy wysyła informacje o rezultatach rozpoznawania mowy na serwer. Mogę to zrobić w Javie dla CLDC/MIDP z httpconnection, metodą POST po stronie telefonu komórkowego i serwerem Tomcat po po stronie komputera. Myślę, że httpconnection musi być również możliwe nie tylko w Javie ME, ale również w Symbianie C. Tym jednak będę się martwił później, najpierw chcę uruchomić pocketsphinx_continuous na Symbianie i spróbować zmodyfikować go pod kątem moich potrzeb.

Podsumowując, chciałbym wiedzieć jak uruchomić demo pocketsphinx_continuous na telefonie komórkowym z Symbianem i jak zrobić to na symulatorze telefonu komórkowego z Symbianem. (Mam Wireless Toolkit, ale myślę, że nie jest on zdony do emulacji Symbiana). PocketSphinx może być ściągnięty za darmo, zarówno pod Windowsy jak i Linuksa, stąd: http://cmusphinx.sourceforge.net/html/download.php . Są dwie opcje instalacji PocketSphinksa pod Ubuntu. Pierwsza to rozpakować (jest to tar.gz), wejść do jego katalogu i wpisać "./configure", "make", "sudo make install". Druga, inna, jest opisana w pliku README, to jest uruchomić autogen.sh, "./configure", "make clean all", "make test", "make install". Powinno to utworzyć między innymi javadoc w katalogu doc.


DŁUGIE WYJAŚNIENIE

Wszystko co jest potrzebne, żeby mi podpowiedzieć, zostało opisane powyżej. Więc jeśli nie chcecie / nie macie czasu czytać wszystkiego, samo powyższe wyjaśnienie jest wystarczające. Pomimo tego poniżej opisuję inne sposoby, w jakie próbowałem osiągnąć swój cel. Są one gorsze, niż pierwszy pomysł, opisany powyżej, ale również spróbowałem je wykorzystać i mogą one dać dokładniejsze spojrzenie na to, co próbuję osiągnąć.

CMU Sphinx zawiera SphinxTrain do stworzenia modelu akustycznego. Ma on kilka różnych programów do rozpoznawania, czyli recognizers (zwane również dekoderami), są to PocketSphinx, Sphinx4 i parę innych. PocketSphinx jest napisany w C i jest dla urządzeń takich, jak telefony komórkowe. Sphinx4 jest aplikacją w Javie dla komputerów PC, ponieważ wymaga lepszego sprzętu. Jest dobry tutorial o używaniu SphinxTrain ze Sphinx4. Znajduje się on tutaj: http://www.speech.cs.cmu.edu/sphinx/tutorial.html . Nie ma podobnego tutoriala dla PocketSphinksa. Chociaż myślę, że z odrobiną wiedzy na temat Symbiana i C jest możliwe uruchomienie PocketSphinksa pod Symbianem. Inną możliwością niż PocketSphinx jest użycie Sphinx4. Aczkolwiek wymaga to połączenia między telefonem komórkowym i serwerem, wysyłania danych audio z telefonu komórkowego na serwer. Może to być osiągnięte ze Skypem, ale wciąż jest problem na stronie serwera z przekierowywaniem dźwięku ze Skype'a do Sphinksa4. Więc jak widzicie są dwie możłiwości. Jedna to uruchomienie rozpoznawania mowy na telefonie z PocketSphinksem i Symbianem. Druga to rozpoznawaniem mowy na serwerze ze Sphinx4. Jest kilka sposobów na wykonanie tej drugiej opcji. Jedna to Skype zarówno na serwerze jak i telefonie komórkowym. (Ale jest problem z przekierowaniem mowy ze Skype'a do Sphinksa4). Inna to zbyt droga karta Digium. Pozostaje jeszcze IVR, ale wciąż szukam dobrego oprogramowania open-source typu IVR. Wszystkie te trzy sposoby drugiej opcji wymagają Sphinksa4. Dużo prostsze jest stworzenie aplikacji ze Sphinx4. Jest ono dla PC, a nie telefonów komórkowych, ponieważ wymaga lepszego urządzenia, tzw. "extensive floating point math" i paru innych rzeczy. Ale ma lepszą dokumentację, niż PocketSphinx. Niemniej chciałbym użyć PocketSphinksa, ponieważ wtedy nie musiał bym płacić nikomu za wysłanie małego pliku tekstowego przy użyciu httpconnection, metody POST. Oto dlaczego proszę, żebyście mi pomogli z uruchomieniem pocketsphinx_continuous na symulatorze telefonu z Symbianem, z PocketSphinksem. (Swoją drogą mam u siebie na dysku zainstalowane S60 Developer Tools -> 3rd Edition FP1 SDK -> MIDP -> Emulator).

Podsumowując w postaci listy, następujące programy są w CMU Sphinx:
I. SphinxTrain, którego używam do stworzenia plików potrzebnych do rozpoznawania polskiej mowy
II. dekodery, które używają wejścia mowy i paru innych plików, które tworzę ze SphinxTrain, w celu umożliwienia rozpoznawania mowy (wejściowa mowa + pliki ze SphinxTrain = są używane przez dekoder)
II-1. PocketSphinx, napisany w C, dla urządzeń takich jak telefony komórkowe
II-2. Sphinx3, napisany w C, dla komputerów PC, obecnie najbardziej rozwijany
II-3. Sphinx4, napisany w Javie, dla komputerów PC, z najlepszą dokumentacją
II-4. Parę innych, starszych wersji

Widzę następujące sposoby rozwiązania mojego problemu:
I. Rozpoznawanie mowy na telefonie komórkowym z PocketSphinksem. Jest to opcja lepsza, niż [II].
Problemy: [u]1. uruchomienie PocketSphinksa na telefonie z Symbianem, 2. symulacja telefonu komórkowego z Symbianem na komputerze PC[/u]. Pomyślałem też, że może powinienem zastanowić się nad Maemo, co o tym sądzicie? Lub użyć innego programu rozpoznawania mowy, np. Simon, HTK, Julius. Poczytałem trochę o tych innych silnikach rozpoznawania mowy i myślę, że PocketSphinx będzie najlepszą opcją.
II. Rozpoznawanie mowy na serwerze ze Sphinx4. Jest kilka sposobów ustanowienia połączenia głosowego pomiędzy telefonem i serwerem:
II-1. zwykła rozmowa z telefonu na serwer; serwer ma kartę Digium. Minus: karty Digium są drogie.
II-2. użycie Skype'a na telefonie komórkowym i serwerze. Problem: przekierowanie dźwięku ze Skype'a do Sphinksa4 i vice versa.
II-3. czy macie pomysł jak inaczej to rozwiązać? Pomyślałem, że Asterisk może być użyteczny.

Pozdrawiam :-)!