Pokaż wyniki 1 do 5 z 5

Temat: kodowanie i uruchomienie aplikacji w C na telefonie z Symbianem

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1

    Domyślnie kodowanie i uruchomienie aplikacji w C na telefonie z Symbianem

    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: 1. uruchomienie PocketSphinksa na telefonie z Symbianem, 2. symulacja telefonu komórkowego z Symbianem na komputerze PC. 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 :-)!

  2. #2
    Zarejestrowany
    Jul 2008
    Skąd
    /dev/random
    Postów
    556

    Domyślnie

    Ja ci powiem jedno Nie wiem dlaczego upierasz sie na symbiana gdzie bedziesz musial zdobyc najlepiej cert-a dla developerow, do tego nie jest to najlepsza platforma jesli chodzi o programowanie. Owszem mozna tylko po co sie meczyc.

    Zastanow sie moze nad Androidem gdzie masz swietne srodowisko programistyczne do tego API dla Javy i C++. Do tego z tego co sie przygladalem bardzo sympatycznie pisze sie pod ten system.

    Do tego nie wiem czy uda ci sie jakos pogodzic pod symbianem Jave z C++ (chodzi o wspolprace pomiedzy aplikacjami).

    Wiem wiem limit cenowy telefonu - tylko pamietaj ze za mniejsza kase kupisz telefon z wolniejszym prockiem i najczesciej starsza wersja symbiana. Zreszta symbian do niedawna nie byl najstabilniejszy.

    Co do ostatniego rozwiazania to ja stawial bym na zestawienie polaczenia VoIP z Asteriskiem. Tylko tutaj dodam ze Nokie to sie tak w zaleznosci od modelu roznie konfiguruje, niektore ida fajnie - natomiast w innych jest "rzezbienie w gownie"

    Co do wyboru ktora wersja to nie wiem - zalezy jaka telefon bedzie mial wydajnosc.

    Dlaczego doradzam ci Androida Bo kiedys troche kombinowalem z pisaniem pod symbiana i nie bylo to najszczesliwsze. Wole juz chyba C++ WinAPI pod Windows Mobile
    Ostatnio edytowane przez tom : 11-22-2009 - 22:41
    --
    ToM's Super Fix IT "No Fucking Problem"

  3. #3

    Domyślnie

    Dzięki za odpowiedź :-)!

    Hm, nie wiedziałem, że potrzebuję certyfikatu dla developera. Wydawało mi sie, że portowanie programów pod Symbiana nie wymaga certyfikatu.

    No dobra, powiedzmy, że przekonałeś mnie i zainteresuję się Androidem :-).

    Javy z C++ nie muszę godzić. Są dwie opcje. Jedna to rozpoznawanie mowy na komórce (wymaga PocketSphinksa napisanego w C), druga to połączyć się w jakiś sposób z komórki na serwer (myślałem o Skypie), zas na serwerze Sphinx4 w Javie. Czyli albo C albo Java, nie oba.

    Hm, podsumowując cena max 700 zł i wymagania minimalne takie http://cmusphinx.sourceforge.net/sph...-faq.html#j2me . Czy mógłbyś zasugerować jakąś komórkę :-)? Ja niestety mam tylko Motorolę V500, stąd też myślałem (i nawet znalazłem już) jakiś symulator komórki z Symbianem. Ale dobra, rozmawiamy o Androidzie. Czy możesz mi polecić jakiś symulator komórki z Androidem?

    Jak to w ogóle wyglądałoby po zakupie komórki. Dajmy na to, że mam komórkę z Symbianem do 700 zł. Jak rozumiem mogę z niej wyrzucić Symbiana i zainstalować Androida?

    Jak wygląda przeniesienie tego PocketSphinksa na komórkę z Androidem? W wypadku Symbiana to znalazłem pewne tutoriale o tym, jak się portuje programy na Symbiana. Czy możesz coś podobnego polecić a propos Androida?

    O tym VoIPie z Asteriskiem czytałem dłuższy czas temu, więc muszę przejrzeć swoje zakładki w przeglądarce i przypomnieć sobie to i owo :-). Jak to wyglądało by? Musiał bym wykupić np. u Ery jakiś dostęp do internetu na komórce i co mieć na komórce? Po prostu dzwonić pod specjalny numer? A ten numer skonfigurować, mają Asteriska i kartę Digium na serwerze? Karty Digium niestety nie są takie tanie.

    Hm, ja generalnie nie przepadam za tym, co od Microsoftu. Czyli podsumowując zamiast Symbiana niech będzie Android. Czy możesz mi polecić jakieś tutoriale o portowaniu aplikacji na Androida i jakiś symulator komórki z Androidem?

    Swoją drogą gość, który sporo siedzi w społeczności CMU Sphinx (jego nick to Nshmyrev) czyli tutaj https://sourceforge.net/projects/cmusphinx/forums/ napisał mi, że Pocketsphinx is used successfully on Symbian with minimal effort, dlatego też pomyślałem o Symbianie. Dziwi mnie jednak, że chcąc odpalić PocketSphinksa na Symbianie musiałbym portować cały program, to nie jest aż tak proste, żeby pisać "with minimal effort" :-).

    Pozdrawiam i dzięki raz jeszcze :-)!

  4. #4
    Zarejestrowany
    Jul 2008
    Skąd
    /dev/random
    Postów
    556

    Domyślnie

    Jesli chodzi o Asteriska to nie musisz kupowac kart itp. to jesli potrzebowal bys podpiac jakis trakt typu E1 czy SS7.

    Jesli chodzi o telefony na symbianie to najczesciej jest jakas aplikacja realizujaca fnkcje telefonu VoIP. Laczysz sie przez internet z swoim Asteriskiem - i to wlasciwie wszystko. Z asteriska masz na wyjsciu SIP czy co tam sobie wybierzesz. Ewentualnie jak potrzebujesz jakiegos przejscia na analog to kupujesz jakas tania bramke VoIP linksysa itp.
    Niejako ze sobie to na twoje potrzeby lokalne to nie musisz miec numeracji, ustalasz ja sobie samemu (tak jak numer wewnetrzny w biurach itp.).

    Odnosnie symbiana to wiekszosc aplikacji jest komercyjna, tak ze programisci niezbyt chetnie dziela sie doswiadczeniami. Tak samo w PL programowanie na ta platforme jest malo popularne.

    Jesli chodzi o Androida jest to system oparty o kernel Linuxa, do tego mimo ze to mlody system caly czas dynamicznie sie rozwija.

    W sumie jesli chodzi o przeportowanie aplikacji to z tym jest roznie, napewno bedziesz musial przeportowac jakies specyficzne funkcje komunikacji ze sprzetem.

    W sumie zanim podjemiesz decyzje to zacznij od tej strony:

    http://code.google.com/intl/pl/android/

    przegladnij co jest dostepne pogadaj z ludzmi - zobaczysz jakie masz szanse ruszyc z tym projektem na androidzie.
    Ostatnio edytowane przez tom : 11-23-2009 - 01:40
    --
    ToM's Super Fix IT "No Fucking Problem"

  5. #5

    Domyślnie

    Dzięki wielkie za odpowiedź :-)!

    Dlaczego tak właściwie nie potrzebuję podpiąć traktu typu E1 czy SS7? Domyślam się, że to pytane dotyczy raczej podstawowej wiedzy :-). Domyślam się, że nie potrzebuję dlatego, że jest to potrzeba raczej lokalna i nikt spoza dzwonić nie będzie.

    Jakie są takie przykładowe aplikacje, które realizują funkcje telefonu VoIP? Raczej przejść na analog nie potrzebuję, wszystko co robię jest na telefonie i serwerze.

    Rzeczywiście, z tego punktu widzenia Android byłby lepszy. Jednak Android z definicji jest w Javie, więc jeśli mój kod jest w C to niejako będę "mówił do kopii Linuksa, który jest pod Androidem". Czy to nie zbytnie utrudnienie?

    Hm, wygląda, że sporo czasu może zająć takie portowanie. Piszesz, że będę musiał przeportować jakieś specyficzne funkcje komunikacji ze sprzętem. Chyba to będzie tylko odnośnie pobierania audio input, tak sobie myślę, że raczej niewiele więcej potrzebne by było w aplikacji typu ASR PocketSphinx. Gość na forum CMU Sphinx napisał, że "Pocketsphinx is used successfully on Symbian with minimal effort". Wygląda na to, że portowanie nie jest aż taką bułką z masłem, więc to "minimal effort" jest trochę na wyrost, chyba że jest jakaś inna, łatwiejsza opcja.

    W sumie to jest jeszcze jedna, nie związana bezpośrednio z Androidem kwestia. Otóż mam aplikację w Sphinx4. Są aplikacje demo dla Sphinksa4 i inne dla PocketSphinksa. Potrafię uruchomić dema z PocketSphinksa (jak wyjaśniłem w pierwszym poście), tak samo też dema Sphinska4. Mogę zmienić kod źródłowy Sphinksa4, aby dostosować aplikację demo do swoich potrzeb. Chciałbym zrobić coś podobnego z PocketSphinksem, ale choć powinno to być proste, mam pewne z tym trudności. W Sphinx4 jest to dużo prostsze dla mnie, bo wszystkie pliki źródłowe, które muszę edytować są w jednym katalogu. W PocketSphinksie jest to jakoś inaczej rozwiązane. (http://cmusphinx.sourceforge.net/html/download.php). Bez możliwości przeniesienia swojej aplikacji ze Sphinksa4 nie ma za bardzo sensu zabierać się najpierw za to portowanie PocketSphinksa do Androida/Symbiana, to może troszkę poczekać.

    Pozdrawiam!

Podobne wątki

  1. Uruchomienie programu w konsoli
    By Michal_sh in forum Bash
    Odpowiedzi: 11
    Autor: 12-07-2009, 16:58
  2. Wifi Wlan w telefonie
    By 0606609491 in forum Wardriving
    Odpowiedzi: 6
    Autor: 06-19-2009, 21:02
  3. Utracone dane w telefonie
    By Synchro in forum GSM/GPRS/EDGE/UMTS
    Odpowiedzi: 7
    Autor: 04-20-2008, 20:45
  4. Uruchomienie 2 aplikacji (ominiecie zabezpiczenia)
    By wonsz in forum Newbie - dla początkujących!
    Odpowiedzi: 4
    Autor: 11-28-2007, 10:47
  5. uruchomienie pliku w %temp%
    By 31337 in forum Hacking
    Odpowiedzi: 3
    Autor: 06-18-2007, 23:50

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj