połączenie komórka <-> serwer
Moderator: Moderatorzy
-
- Początkujący użytkownik forum
- Posty: 9
- Rejestracja: 2009-08-16, 16:54
- Lokalizacja: Opole
połączenie komórka <-> serwer
Witam :-)!
Moja wiedza dotycząca telefonii komórkowej jest ograniczona, bardziej zajmuję się programowaniem. Stąd też byłbym wdzięczny, gdybyście mogli mi zasugerować jakieś tutoriale, które omawiają potrzebne mi zagadnienia oraz odpowiedzieli na moje pytania.
Generalnie to mam do napisania pewną aplikację na telefon komórkowy (max cena docelowego telefonu to 700zł, testować będę na Sony Ericsson k750i). Aplikacja ta musi rozpoznawać mowę i w odpowiedni sposób reagować na rozpoznane liczby (liczyć sumę kontrolną i odpowiadać). Zamierzam użyć CMU Sphinx, jednak pozostaje jeszcze kwestia, czy będzie to rozpoznawanie mowy na komórce (PocketSphinx) i wysłanie rezultatów na serwer (post, httpconnection; próbowałem też Wireless Messaging API, ale coś kiepsko działało), czy też przekierowanie rozmowy na serwer (myślałem o Digium + Asterisk, ale karty Digium są dość drogie) i rozpoznawanie na serwerze (Sphinx4).
I teraz w zależności od tego, którą opcję wybiorę, pozostaje kwestia połączenia komórka <-> serwer. W wypadku opcji pierwszej jest to tylko wysłanie krótkiego pliku tekstowego na serwer. Próbowałem użyć httpconnection, metody post (get raczej odpada), ale na MIDlecie. Gdybym użył PocketSphinksa to raczej musiał bym jakoś inaczej zaimplementować wysyłanie danych, nie bardzo wiem jak. Natomiast w razie drugiej opcji to niestety moja wiedza jest niewielka i muszę się więcej dowiedzieć na temat sposobów, w jakie telefon łączy się z internetem, a to jest temat rzeka.
Tak na pierwszy rzut oka to opcja pierwsza (jeśli wypali, co może być trudne ze względu na spore wymagania PocketSphinksa i niewielkie możliwości komórek za mniej niż siedem stów - chyba że nie użyć telefonu komórkowego, ale np. palmtopa/palmfona?) wydaje się być dużo tańsza w eksploatacji (pomijając cenę karty Digium, która być może nie jest konieczna, za to kosztuje, z tego, co się orientuję, około półtorej tysiąca złotych). Może mam jakieś mylne wyobrażenia (jeśli tak, to wyprowadźcie mnie, proszę, z błędu :-P), ale łączenie się komórki z internetem to nie taka tania sprawa. Zwłaszcza, że tutaj chodzi o wykonanie kilkunastu (może więcej) połączeń w ciągu dnia z komórki na serwerm (mówię teraz o opcji drugiej).
W sumie to zasugerowano mi, że może komórka ze Skypem będzie dobrą i tanią opcją. W miejscu, w którym będę stosował aplikację, powinien być internet przewodowy w biurze (i raczej też faks - może jakoś użyć jakiejś karty telefon/faks?), natomiast komórka będzie używana do kilku kilometrów od biura. Tak na mój gust to stworzenie sieci bezprzewodowej o zasięgu paru kilometrów mija się z celem ze względu na koszty i potencjalne zakłócenia sygnału.
Raczej zajmuję się programowaniem na kompy, więc na komórkach się nie znam. (Główna część mojego projektu to wytrenowanie modelu akustycznego dla j. polskiego na komputerze przy użyciu SphinxTraina, bo na dzień dzisiejszy darmowe modele akustyczne na voxforge są dostępne tylko dla kilku języków, wśród nich nie ma polskiego). Tak że nie wiem, co jest potrzebne, żeby komórka miała tani dostęp do internetu. Jakie są opcje? Jakieś specjalne karty do telefonu? Połączenia satelitarne? VoIP, w wypadku gdy komórka znajduje się w zasięgu hotspota? Jakie jeszcze i która jest wystarczająco tania i dobra?
Z góry dzięki za odpowiedzi :-)!
Pozdrawiam :-)!
Moja wiedza dotycząca telefonii komórkowej jest ograniczona, bardziej zajmuję się programowaniem. Stąd też byłbym wdzięczny, gdybyście mogli mi zasugerować jakieś tutoriale, które omawiają potrzebne mi zagadnienia oraz odpowiedzieli na moje pytania.
Generalnie to mam do napisania pewną aplikację na telefon komórkowy (max cena docelowego telefonu to 700zł, testować będę na Sony Ericsson k750i). Aplikacja ta musi rozpoznawać mowę i w odpowiedni sposób reagować na rozpoznane liczby (liczyć sumę kontrolną i odpowiadać). Zamierzam użyć CMU Sphinx, jednak pozostaje jeszcze kwestia, czy będzie to rozpoznawanie mowy na komórce (PocketSphinx) i wysłanie rezultatów na serwer (post, httpconnection; próbowałem też Wireless Messaging API, ale coś kiepsko działało), czy też przekierowanie rozmowy na serwer (myślałem o Digium + Asterisk, ale karty Digium są dość drogie) i rozpoznawanie na serwerze (Sphinx4).
I teraz w zależności od tego, którą opcję wybiorę, pozostaje kwestia połączenia komórka <-> serwer. W wypadku opcji pierwszej jest to tylko wysłanie krótkiego pliku tekstowego na serwer. Próbowałem użyć httpconnection, metody post (get raczej odpada), ale na MIDlecie. Gdybym użył PocketSphinksa to raczej musiał bym jakoś inaczej zaimplementować wysyłanie danych, nie bardzo wiem jak. Natomiast w razie drugiej opcji to niestety moja wiedza jest niewielka i muszę się więcej dowiedzieć na temat sposobów, w jakie telefon łączy się z internetem, a to jest temat rzeka.
Tak na pierwszy rzut oka to opcja pierwsza (jeśli wypali, co może być trudne ze względu na spore wymagania PocketSphinksa i niewielkie możliwości komórek za mniej niż siedem stów - chyba że nie użyć telefonu komórkowego, ale np. palmtopa/palmfona?) wydaje się być dużo tańsza w eksploatacji (pomijając cenę karty Digium, która być może nie jest konieczna, za to kosztuje, z tego, co się orientuję, około półtorej tysiąca złotych). Może mam jakieś mylne wyobrażenia (jeśli tak, to wyprowadźcie mnie, proszę, z błędu :-P), ale łączenie się komórki z internetem to nie taka tania sprawa. Zwłaszcza, że tutaj chodzi o wykonanie kilkunastu (może więcej) połączeń w ciągu dnia z komórki na serwerm (mówię teraz o opcji drugiej).
W sumie to zasugerowano mi, że może komórka ze Skypem będzie dobrą i tanią opcją. W miejscu, w którym będę stosował aplikację, powinien być internet przewodowy w biurze (i raczej też faks - może jakoś użyć jakiejś karty telefon/faks?), natomiast komórka będzie używana do kilku kilometrów od biura. Tak na mój gust to stworzenie sieci bezprzewodowej o zasięgu paru kilometrów mija się z celem ze względu na koszty i potencjalne zakłócenia sygnału.
Raczej zajmuję się programowaniem na kompy, więc na komórkach się nie znam. (Główna część mojego projektu to wytrenowanie modelu akustycznego dla j. polskiego na komputerze przy użyciu SphinxTraina, bo na dzień dzisiejszy darmowe modele akustyczne na voxforge są dostępne tylko dla kilku języków, wśród nich nie ma polskiego). Tak że nie wiem, co jest potrzebne, żeby komórka miała tani dostęp do internetu. Jakie są opcje? Jakieś specjalne karty do telefonu? Połączenia satelitarne? VoIP, w wypadku gdy komórka znajduje się w zasięgu hotspota? Jakie jeszcze i która jest wystarczająco tania i dobra?
Z góry dzięki za odpowiedzi :-)!
Pozdrawiam :-)!
- Jo_gurt
- Guru bezprzewodowy
- Posty: 16330
- Rejestracja: 2007-11-16, 21:49
- Lokalizacja: Lublin
Re: połączenie komórka <-> serwer
johnyjj2, a GSM/3G źle? Są przecież tanie prepaidy.
-
- Guru bezprzewodowy
- Posty: 3607
- Rejestracja: 2007-04-14, 10:01
- Lokalizacja: Wrocław
Re: połączenie komórka <-> serwer
Mógłbyś określić jakie ilości danych będą przesyłane?
Jeśli chodzi o głos to ma być przesyłany "na żywo" czy biernie, np zapisany plik.
Jeśli chodzi o głos to ma być przesyłany "na żywo" czy biernie, np zapisany plik.
-
- Początkujący użytkownik forum
- Posty: 9
- Rejestracja: 2009-08-16, 16:54
- Lokalizacja: Opole
Re: połączenie komórka <-> serwer
Dzięki za odpowiedzi :-)!
Być może GSM/3G będzie odpowiednie, będę musiał więcej o tym poczytać. Jakie komercyjne oferty w Polsce mógłbyś zaproponować?
Jeśli chodzi o ilość danych to ok. trzydziestu numerów dwunastocyfrowych + być może pewne dodatkowe informacje, takie jak jakaś nazwa (zapewne jedna z grupy kilkunastu predefiniowanych) lub dodatkowe dane liczbowe.
aś co do przesyłania to raczej na żywo. Jeśli użytkownik poda numer dwunastocyfrowy, numer ten musi być rozpoznany z niewielkim opóźnieniem, następnie program (piewsza opcja - na komórce, druga opcja - na serwerze; którą opcję wybiorę to się jeszcze okaże, na ile komórka w cenie <700 zł obsłuży sprzętowo PocketSphinx) obliczy sumę kontrolną. Po rozpoznaniu numeru i obliczeniu sumy, program odpowie, że numer jest prawidłowy, bądź też nie. Następnie użytkownik zaakceptuje błędny numer lub poda go od nowa, a następnie przejdzie do kolejnego lub zakończy połączenie. Z tego właśnie powodu, że rozmowa trochę przypomina rozmowę z żywym człowiekiem, raczej ma być to na żywo (przynajmniej w wypadku drugiej opcji, gdy mowę rozpoznawać będzie serwer). Jeśli by to była pierwsza opcja, to pozostaje tylko przekierowanie dźwięku z komórki do PocketSphinksa i żaden dźwięk zapisywany ani przesyłany nigdzie być nie musi, przesyłane zostaną tylko w pliku tekstowym wyniki końcowe.
Pozdrawiam :-)!
Być może GSM/3G będzie odpowiednie, będę musiał więcej o tym poczytać. Jakie komercyjne oferty w Polsce mógłbyś zaproponować?
Jeśli chodzi o ilość danych to ok. trzydziestu numerów dwunastocyfrowych + być może pewne dodatkowe informacje, takie jak jakaś nazwa (zapewne jedna z grupy kilkunastu predefiniowanych) lub dodatkowe dane liczbowe.
aś co do przesyłania to raczej na żywo. Jeśli użytkownik poda numer dwunastocyfrowy, numer ten musi być rozpoznany z niewielkim opóźnieniem, następnie program (piewsza opcja - na komórce, druga opcja - na serwerze; którą opcję wybiorę to się jeszcze okaże, na ile komórka w cenie <700 zł obsłuży sprzętowo PocketSphinx) obliczy sumę kontrolną. Po rozpoznaniu numeru i obliczeniu sumy, program odpowie, że numer jest prawidłowy, bądź też nie. Następnie użytkownik zaakceptuje błędny numer lub poda go od nowa, a następnie przejdzie do kolejnego lub zakończy połączenie. Z tego właśnie powodu, że rozmowa trochę przypomina rozmowę z żywym człowiekiem, raczej ma być to na żywo (przynajmniej w wypadku drugiej opcji, gdy mowę rozpoznawać będzie serwer). Jeśli by to była pierwsza opcja, to pozostaje tylko przekierowanie dźwięku z komórki do PocketSphinksa i żaden dźwięk zapisywany ani przesyłany nigdzie być nie musi, przesyłane zostaną tylko w pliku tekstowym wyniki końcowe.
Pozdrawiam :-)!
-
- Guru bezprzewodowy
- Posty: 3607
- Rejestracja: 2007-04-14, 10:01
- Lokalizacja: Wrocław
Re: połączenie komórka <-> serwer
Jak szacuje będzie to kilkadziesiąt - kilkaset kilobajtów?johnyjj2 pisze: Jeśli chodzi o ilość danych to ok. trzydziestu numerów dwunastocyfrowych + być może pewne dodatkowe informacje, takie jak jakaś nazwa (zapewne jedna z grupy kilkunastu predefiniowanych) lub dodatkowe dane liczbowe.
Tylko mi chodziło o to, czy ma to działać na zasadzie połączeń telefonicznych via internet. Czy na zasadzie przesyłania danych czyli plików.johnyjj2 pisze:co do przesyłania to raczej na żywo
Ma to znaczenie o tyle, że jak chcesz przesłać w trybie rzeczywistym głos to na GPRS/EDGE tego nie zrobisz. Jak chcesz przesłać głos w pliku to jak najbardziej tak.
Nie wiem czy się rozumiemy. Weźmy za przykład przesyłanie głosu przez Skype. Rozmawiać nie da się wszędzie (GPRS/EDGE), ale za to przesłać plik już tak.
Serwer możne dostać mowę w postaci pliku czy tylko i wyłączenie wchodzi w grę mowa live tak jak ma to miejsce przez np. telefon ?johnyjj2 pisze:(przynajmniej w wypadku drugiej opcji, gdy mowę rozpoznawać będzie serwer).
Jeśli chodzi o oferty np. na kartę
http://www.bez-kabli.pl/viewtopic.php?p=196746#196746
Jest oferta np. mBank mobile 15zł/300MB rozliczane do co 1kBjohnyjj2 pisze:łączenie się komórki z internetem to nie taka tania sprawa. Zwłaszcza, że tutaj chodzi o wykonanie kilkunastu (może więcej) połączeń w ciągu dnia z komórki na serwerm (mówię teraz o opcji drugiej).
Więc tutaj ilość połączeń nie powinna być problemem.
-
- Początkujący użytkownik forum
- Posty: 9
- Rejestracja: 2009-08-16, 16:54
- Lokalizacja: Opole
Re: połączenie komórka <-> serwer
Dzięki za odpowiedź :-)!
> Tylko mi chodziło o to, czy ma to działać na zasadzie połączeń telefonicznych via internet. Czy na zasadzie przesyłania danych czyli plików.
I tutaj właśnie wychodzi mój brak wiedzy :-). Przesyłać chciałbym w czasie rzeczywistym lub z niewielkim (do kilku sekund) opóźnieniem. No a skoro to ma być "rozmowa" człowieka z komputerem to, o ile dobrze rozumiem, raczej wchodzi w grę opcja przesyłania głosu przez Skype'a. Czy możesz coś więcej napisać?
> Serwer możne dostać mowę w postaci pliku czy tylko i wyłączenie wchodzi w grę mowa live tak jak ma to miejsce przez np. telefon ?
No właśnie rzeczy w tym, że trzeba, aby program sprawdził te sumy kontrolne i odpowiednio na nie zareagował, więc raczej tylko live wchodzi w grę, czyli tak jak przez telefon.
Czy po uwzględnieniu tych dwóch informacji dalej sugerujesz oferty na kartę (link, który podałeś) lub mBank mobile?
I ważna kwestia, jak to wyglądał by odbiór rozmowy ze strony serwera? W wypadku karty Digium (czyli opcja, która przy moim obecnym stanie wiedzy raczej odpada ze względu na cenę) to właśnie karta odbiera rozmowę, przekazuje ją do Asteriska, on zaś do Sphinksa4. Nie wiem, jak miało by to wyglądać w wypadku rozwiązań zaproponowanych przez Ciebie, czyli "połączeń telefonicznych via internet" lub "przesyłania danych czyli plików".
Pozdrawiam :-)!
> Tylko mi chodziło o to, czy ma to działać na zasadzie połączeń telefonicznych via internet. Czy na zasadzie przesyłania danych czyli plików.
I tutaj właśnie wychodzi mój brak wiedzy :-). Przesyłać chciałbym w czasie rzeczywistym lub z niewielkim (do kilku sekund) opóźnieniem. No a skoro to ma być "rozmowa" człowieka z komputerem to, o ile dobrze rozumiem, raczej wchodzi w grę opcja przesyłania głosu przez Skype'a. Czy możesz coś więcej napisać?
> Serwer możne dostać mowę w postaci pliku czy tylko i wyłączenie wchodzi w grę mowa live tak jak ma to miejsce przez np. telefon ?
No właśnie rzeczy w tym, że trzeba, aby program sprawdził te sumy kontrolne i odpowiednio na nie zareagował, więc raczej tylko live wchodzi w grę, czyli tak jak przez telefon.
Czy po uwzględnieniu tych dwóch informacji dalej sugerujesz oferty na kartę (link, który podałeś) lub mBank mobile?
I ważna kwestia, jak to wyglądał by odbiór rozmowy ze strony serwera? W wypadku karty Digium (czyli opcja, która przy moim obecnym stanie wiedzy raczej odpada ze względu na cenę) to właśnie karta odbiera rozmowę, przekazuje ją do Asteriska, on zaś do Sphinksa4. Nie wiem, jak miało by to wyglądać w wypadku rozwiązań zaproponowanych przez Ciebie, czyli "połączeń telefonicznych via internet" lub "przesyłania danych czyli plików".
Pozdrawiam :-)!
-
- Guru bezprzewodowy
- Posty: 3607
- Rejestracja: 2007-04-14, 10:01
- Lokalizacja: Wrocław
Re: połączenie komórka <-> serwer
Podałem przykład aby zorientować się jaka jest Twoja potrzeba aby dobrać ofertę do wariantu. Skype to było tylko porównanie, bo obsługuje rozmowy głosowe / przesyłanie plików. Myślę, że raczej nie uda się nic wymyślić opartego na Skype, bo kod jest zamknięty i raczej ciężko będzie coś tutaj wymyślić.johnyjj2 pisze:Czy możesz coś więcej napisać?
Nie mam pojęciajohnyjj2 pisze:I ważna kwestia, jak to wyglądał by odbiór rozmowy ze strony serwera?

Myślałem, że można napisać program który "nagrywa" rozmowę przesyła przez transmisje pakietową a serwer liczy z tego sumę kontrolną. Niestety stan mojej wiedzy nie jest zbyt dobry jeśli chodzi o programowanie.johnyjj2 pisze:Nie wiem, jak miało by to wyglądać w wypadku rozwiązań zaproponowanych przez Ciebie, czyli "połączeń telefonicznych via internet" lub "przesyłania danych czyli plików".
-
- Początkujący użytkownik forum
- Posty: 9
- Rejestracja: 2009-08-16, 16:54
- Lokalizacja: Opole
Re: połączenie komórka <-> serwer
Dzięki za odpowiedź :-)!
Wysłałem maila do pomocy technicznej Skype i odpowiedzieli mi:
Z góry dzięki!
Pozdrawiam :-)!
Wysłałem maila do pomocy technicznej Skype i odpowiedzieli mi:
Znalazłem coś takiego jak MyToGo (https://extras.skype.com/1014/view i http://saveonphoneservices.com/modules. ... icle&sid=9) i myślę, że w jakiś sposób mogło by to mi pomóc, ale jak :-)? Druga rzecz to https://developer.skype.com/Docs czyli Skype Public API. Spróbowałem też trochę popytać na forum: http://forum.skype.com/index.php?showtopic=464711 . Czy mogę liczyć na jakieś dalsze sugestie, jak rozwiązać mój problem?Unfortunately Skype does not have any features that would make it
possible to send/route calls to other software. However, as an
alternative solution, you may install Skype on your server, then you
should buy an online number. When using an online number, there is a
possibility to accept calls automatically. Regarding the third question
[pytanie było takie: how to redirect speech from/to other application and Skype
(i.e. allow Skype to send speech to Sphinx4 and receive speech from Sphinx4)?]
Skype does not support this in any way. If you look around Skype's
"extras" there might be a possibility to find a solution fitting your
needs. Please note, that Skype does not provide any support for any of
its extras.
Z góry dzięki!
Pozdrawiam :-)!