VoxMotoChat aplikacja Android
UWAGA: udostępniona wersja aplikacji to wersja Beta. Może zawierać błędy (oraz uproszczone grafiki/UI/szablony/wygląd, placeholdery itp.), które mogą wpływać na niepoprawne działanie aplikacji jak: zawieszanie się, spontaniczne zamykanie się aplikacji, braki komunikacji, niepoprawne działanie niektórych funkcji itd. (zazwyczaj restart aplikacji (wymuszone zamknięcie) pomaga przywrócić aplikację do działania). Wygląd aplikacji oraz funkcje mogą ulec zmianom.
Aplikacja VoxMotoChat to jest projekt hobbystyczny. Aplikacja jest (lub będzie, zależy od czasu akceptacji po stronie sklepów) dostępna za darmo (bez opłat, bez reklam) przez sklep Google (Play Store), Samsung Galaxy Store oraz przez oficjalną stronę VoxMotoChat.
Licencja (EULA): https://voxmotochat.com/pl/eula (wersja angielska: https://voxmotochat.com/eula)
VoxMotoChat to aplikacja chatu głosowego (VoIP - do komunikacji głosowej w czasie rzeczywistym) dedykowana dla motocyklistów do komunikacji głosowej w grupie z wykorzystaniem dowolnych interkomów motocyklowych (rozwiązuje to problem komunikacji pomiędzy różnymi markami oraz modelami interkomów motocyklowych, ale wymaga połączenia z siecią internet).
Aplikacja z powodzeniem może być używana także do komunikacji głosowej wykorzystując dowolną słuchawkę bluetooth lub system głośnomówiący bluetooth (np. w samochodzie), a nawet z głośnikiem i mikrofonem wbudowanym w telefon.
VoxMotoChat może służyć do komunikacji w trasie pomiędzy samochodami lub na wycieczkach pieszych czy rowerowych w terenie.
Częste braki internetu, zrywanie połączenia z internetem wpływają na jakość audio co może prowadzić np. do przerywania odtwarzanego lub nadawanego audio i aplikacja VoxMotoChat nie ma na to wpływu, natomiast nie destabilizuje to działania aplikacji, nie powoduje zamykania aplikacji lub nagłego nieplanowanego rozłączania się z serwerem z powodu utraconych pakietów, ale jeśli dojdzie do rozłączenia z serwerem (na wskutek długotrwałej utraty połączenia z siecią internet) to aplikacja automatycznie wznowi połączenie z serwerem kiedy tylko to będzie możliwe (kiedy będzie połączenie z siecią internet oraz serwerem).
1.1 PORADA: w celu poprawy jakości/stabilności internetu w podróży w telefonach komórkowych zalecane jest wyłącznie sieci 5G, w systemie Android (ustawienia sieci i internet -> sieć mobilna -> preferowane typy sieci -> ustawić 2G/3G/4G). Sieci komórkowe/internet mobilny cechuje się niestabilnością i wysokimi opóźnieniami i aplikacja nie ma na to wpływu, taka jest cecha sieci mobilnej i dostępu mobilnego do internetu i z problemami z tymi związanymi borykają się wszystkie aplikacje VoIP. W ustabilizowaniu połączenia z internetem mobilnym kosztem niższej prędkości transferu danych (aczkolwiek wciąż w zupełności wystarczającym) może pomóc wyłączenie obsługi sieci 5G, ponieważ telefony które mają włączoną sieć 5G z racji słabego zasięgu sieci 5G często przełączają się pomiędzy trybem np. 4G i 5G co prowadzi do częstego przerywania nadawania pakietów audio, zrywania głosu, wysokiego zużycia baterii w telefonie.
UWAGA VoxMotoChat można używać w sieci lokalnej, ale telefon nie może używać sieci WiFi 2.4 GHz i równocześnie interkomu/słuchawek Bluetooth (łączność będzie przerywana, bardzo mocno opóźniona lub w ogóle nie będzie możliwa) ponieważ Bluetooth pracuje także w paśmie 2.4 GHz przez co WiFi 2.4 GHz i Bluetooth (2.4 GHz) zakłócają się wzajemnie (można używać trybu głośnomówiącego z wyłączonym Bluetooth).
ROZWIĄZANIE to podłączenie do telefonu słuchawek mini-jack/usb-c i nie używanie Bluetooth lub podłączenie telefonu do sieci WiFi 5 GHz i wtedy można równocześnie używać interkomu/słuchawek Bluetooth (jest to zagadnienie natury sprzętowej telefonów, a nie problem aplikacji).
Aplikacja została zaprojektowana tak, aby działać stabilnie w zmiennych i trudnych warunkach połączenia z internetem mobilnym w czasie jazdy (gdy występują częste utraty pakietów, przerwy połączenia z internetem, kilkuminutowe braki połączenia z internetem, duże opóźnienia itd.)
2.1 PORADA: aplikacja VoxMotoChat nie ma na to wpływu, ale jeżeli początki komunikatów z aplikacji Yanosik są ucinane to w aplikacji Yanosik należy ustawić opóźnienie odtwarzania komunikatów (ustawienia->bluetooth->opóźnienie komunikatów np. 2000 ms), niestety ucinanie komunikatów wynika często z agresywnego oszczędzania energii przez urządzenia bluetooth i aplikacja VoxMotoChat nie ma na to wpływu. Jeśli interkom audio nie odtwarza audio (np. rozmowy) to tor audio bluetooth jest "zamykany" w celu oszczędności baterii przez urządzenie bluetooth. Jeżeli jest prowadzona rozmowa (odtwarzane jest np. audio chatu) to komunikaty z innych aplikacji nie są ucinane, ponieważ cały czas jest otwarta sesja audio do urządzenia bluetooth. Ustawienie opóźnienia komunikatów w aplikacji Yanosik daje czas na "wybudzenie" urządzenia bluetooth/otwarcie toru audio w urządzeniu bluetooth i odtworzenie całego komunikatu.
Przy pierwszym uruchomieniu pola "Nick" i "Pokój" należy uzupełnić, pole "Hasło pokoju" jest opcjonalne.

Server - lista serwerów chatu głosowego (oficjalnych publicznych i publicznych nieoficjalnych społecznościowych ) do których może się aplikacja podłączyć
Nick (tylko litery i cyfry) - dowolny pseudonim użytkownika (max 32 znaki długości nazwy). Jeśli dana nazwa użytkownika jest już zajęta to serwer automatycznie do nicku/pseudonimu doda losowe cyfry.
UWAGA: nie można używać niektórych znaków specjalnych w tym polskich znaków
Pokój (tylko litery i cyfry) - dowolna nazwa pokoju do którego dołączyć chce użytkownik (max 32 znaki długości nazwy)
UWAGA: nie można używać niektórych znaków specjalnych w tym polskich znaków. Ważna jest wielkość liter co znaczy, że pokój o nazwie: "Wycieczka" to inny pokój niż pokój o nazwie "wycieczka". Każdy użytkownik musi mieć wpisaną taką samą nazwę pokoju (z zachowaniem wielkości liter) i opcjonalne hasło (jeśli zostało ustawione przez pierwszą osobę dołączającą do pokoju).
Pokój jest tworzony na serwerze w momencie, w którym dołącza do niego pierwszy użytkownik i to pierwszy użytkownik dołączający do pokoju ustala hasło pokoju, które muszą podać pozostali użytkownicy. Może się zdarzyć, że ktoś już utworzył pokój o wybranej nazwie i zabezpieczył go hasłem, w takiej sytuacji jeśli nie znamy hasła pokoju aplikacja nie dołączy do tego pokoju i rozłączy się z serwerem (zwróci informację, że nieprawidłowe hasło). Należy wtedy wybrać inną nazwę pokoju.
Pokoje na serwerze nie są stałe/nie są trwałe, jeżeli z pokoju o danej nazwie wyjdą wszyscy użytkownicy to pokój na serwerze zostaje zamknięty po kilku sekundach, a nazwa zostaje uwolniona (staje się dostępna dla innych).
Hasło pokoju (opcjonalne) - opcjonalne hasło pokoju. Do pokoju zabezpieczonego hasłem dołączyć mogą tylko użytkownicy z poprawnie wpisanym hasłem. Hasło jest opcjonalne i jeśli nie zostanie podane przez pierwszego użytkownika tworzącego pokój (pole hasło jest puste/ma 0 znaków długości) to pokój będzie bez hasła i będzie mógł dołączyć każdy kto zna nazwę pokoju.
Serwer - po kliknięciu na pole otwiera się przeglądarka serwerów, która umożliwia wybranie serwera z listy lub wpisanie adresu serwera. Domyślnie aplikacja wybrany ma oficjalny serwer publiczny i z nim się połączy o ile nie zostanie wybrany inny serwer, wszyscy użytkownicy muszą być podłączeni do tego samego serwera żeby móc ze sobą rozmawiać.
Urządzenie audio - lista wyboru urządzenia audio (nagrywanie mikrofonu/odtwarzanie dźwięku). Opcja Telefon wybiera do komunikacji urządzenie głośnomówiące w telefonie (głośnik i mikrofon wbudowany w telefon). Opcja Bluetooth wybiera do komunikacji urządzenie bluetooth. Jeśli z telefonem jest połączony interkom lub słuchawka bluetooth to aplikacja użyje do komunikacji to urządzenie (działa również z systemami głośnomówiącymi w samochodach).
w celu uniknięcia problemów/dziwnych zachowań najlepiej aby urządzenie bluetooth np. interkom był połączony z telefonem przed połączeniem z serwerem (zanim wciśniemy przycisk połącz). Jeśli urządzenie bluetooth nie jest dostępne to aplikacja nie połączy się z serwerem ponieważ nie będzie miała urządzenia do komunikacji, wtedy należy połączyć telefon z urządzeniem bluetooth np. interkomem lub przełączyć się na telefon (wbudowany głośnik i mikrofon w telefonie).
Połącz - przycisk łączy serwerem. Zielony przycisk połącz oznacza gotowość do połączenia i po wciśnięciu aplikacja połączy się z serwerem, przycisk połącz zamienia się w przycisk anuluj w trakcie łączenia się z serwerem, gdy przycisk anuluj jest koloru czerwonego to kliknięcie w niego anuluje operację łączenia z serwerem.
Zamknij - przycisk zamyka aplikację
Przykładowy ekran logowania z wypełnionymi polami, który dołączy do serwera jako użytkownik MotoRider do pokoju (utworzy pokój bez hasła) o nazwie MyRoom, naszym domyślnym urządzeniem komunikacyjnym będzie urządzenie Bluetooth

Historia pokoi - pole pokój zapamiętuje ustaloną wartość (minimum 10) ostatnich pokoi do których się łączył użytkownik (zapamiętuje nazwę pokoju i hasło) dzięki czemu można wybrać z historii pokój i nie trzeba wpisywać ponownie wszystkich danych.
Przykład:

W przeglądarce serwerów z listy "Serwer publiczne" można wybrać serwer z którym chcemy się połączyć. Aby wybrać serwer należy "kliknąć" na wybrany "kafelek" z serwerem, po "kliknięciu" serwer zostanie wybrany i aplikacja wróci do ekranu głównego/logowania. Przycisk "odśwież" odświeża listę serwerów, a przycisk "anuluj" wraca do ekranu logowania.
Lista serwerów jest sortowana wg. najniższego pingu/opóźnienia
serwer z kłódką przed nazwą serwera oznacza, że serwer wymaga podania hasła żeby się z nim połączyć.
Jeżeli jakiś serwer nie jest widoczny na liście serwerów publicznych (został uruchomiony jako "ukryty") to w polu "Niestandardowy adres serwera" (adres IP/domena oraz port) należy wprowadzić adres IP/domenę serwera oraz port serwera i kliknąć potwierdź aby aplikacja ustawiła wprowadzone dane i wróciła do ekranu logowania

Ekran chatu, który się wyświetla po połączeniu się z serwerem i po dołączeniu do wybranego pokoju.

podświetlona ramka na około kafelka z nazwą użytkownika oznacza, że dany użytkownik nadaje audio / mówi
gdy jesteśmy połączeni z pokojem możemy dowolnie zmieniać urządzenie komunikacyjne np. przełączyć się na głośnomówiący system w telefonie lub na podłączone urządzenie bluetooth. Wyświetlona nazwa urządzenia (na obrazku jest wybrany telefon) oznacza, że właśnie to urządzenie jest aktualnie wybrane do komunikacji. Jeżeli zostanie wybrane urządzenie Bluetooth, a urządzenie bluetooth nie będzie dostępne to aplikacja wróci do urządzenia "Telefon".
PING - aplikacja nie ma wpływu na opóźnienie sieci internet/mobilnej, niestety sieci mobilne (komórkowe) cechują się niestabilnym połączeniem/częstym zrywaniem i zmiennymi i często dość wysokimi opóźnieniami w zależności od zasięgu/siły sygnału sieci komórkowej (internetu LTE/5G). Całkowite opóźnienie komunikacji audio zależy od naszego pingu (opóźnienia komunikacji z serwerem) i opóźnienia pozostałych klientów.
Przykładowo (w uproszczeniu) nasz ping to 50 ms czyli serwer nasze pakiety audio otrzymuje po 25 ms, drugi użytkownik w pokoju w danym momencie ma opóźnienie 200 ms co oznacza, że pakiety otrzyma po 125 ms (25 ms + 100 ms) więc opóźnienie odtworzenia audio u drugiego użytkownik będzie wynosić 125 ms i nie jest to wina aplikacji, jest to cecha komunikacji w sieci i dotyczy to wszystkich aplikacji komunikacji głosowej czasu rzeczywistego (VoIP).
Częstotliwość próbkowania: 8 kHz lub 16 kHz, jest to informacja z jaką częstotliwością próbkowania audio aktualnie działa urządzenie komunikacyjne (jest to zależne tylko i wyłącznie od używanego urządzenia). Starsze urządzenia bluetooth wspierają często tylko 8 kHz, nowsze wspierają tzw. HD czyli 16 kHz. Aplikacja zawsze wykonuje próbkowanie/testy audio i stara się ustanowić połączenie w jak najlepszej jakości (16 kHz). Jeżeli jeden z użytkowników ma wyraźnie gorszą jakość głosu (stłumiona, mniejszy/węższy zakres częstotliwości przenoszonego głosu) to często oznacza, że aplikacja ustanowiła połączenie 8 kHz z urządzeniem bluetooth. Jakość dźwięku rozmówców zależy także od mikrofonu urządzenia używanego do komunikacji. Interkomy/słuchawki bluetooth itp. mają różnej jakości mikrofony i pomimo 16 kHz jakości audio niektóre urządzenia będą brzmieć lepiej, a innej gorzej.
BLUETOOTH: jeżeli naszym urządzeniem komunikacyjnym jest urządzenie bluetooth i wyłączymy interkom/słuchawkę bluetooth lub urządzenie bluetooth znajdzie się poza zasięgiem telefonu to aplikacja automatycznie przełączy się na urządzenie "Telefon" (czyli przełączy się na tryb głośnomówiący). Może to prowadzić do odtwarzania echa/sprzężeń mikrofonów jeśli znajdujemy się blisko pozostałych użytkowników. Natomiast gdy urządzenie bluetooth będzie ponownie w zasięgu i wcześniej było wybranym urządzeniem (użytkownik niczego nie zmieniał) to aplikacja automatycznie powróci do urządzenia bluetooth (z Telefon wróci do Bluetooth).
Dostępne funkcje są zależne częściowo od sprzętu na którym działa aplikacja. Przycisk w kolorze białym oznacza, że wybrana funkcja jest uruchomiona, przycisk w kolorze czerwonym oznacza, że wybrana funkcja jest wyłączona. Jeżeli przycisk jest szary tzn., że wybrana funkcja jest niedostępna na danym urządzeniu (screenshot to tylko podgląd).

W niektórych interkomach może zajść potrzeba ustawienia VAD na poziom 1 czyli szybkie wykrywanie z racji np. niskiej jakości mikrofonu/słabej czułości mikrofonu. Do wykrywania mowy zaimplementowany został lekki model AI - VAD Silero (https://github.com/snakers4/silero-vad).
Kontakt z deweloperem (masz pytania, sugestie, pomysły itd. to pisz śmiało):