Mastodon

Powiadomienie głosowe o przywróceniu internetu

6
Dodane: 10 lat temu

Wszystko nad czym pieczę trzyma człowiek ma to do siebie, że może czasem się popsuć. Tak też jest z internetem. Nie wiadomo od jak dobrego dostawcy będziemy go mieli, zawsze może nadejść ten dzień, gdy zabraknie dostępu do sieci. W takim przypadku czekamy oczywiście na jego powrót. A zamiast co chwilę sprawdzać ręcznie, czy wszystko zostało już naprawione, możemy posłużyć się sprytnym skryptem.

OS X wyposażono w syntezator mowy. Narzędzie to od wielu lat „siedzi” sobie na naszych komputerach, w większości przypadków nieużywane. Czas jednak poprosić Pana Aleksa (który jest domyślnym głosem w języku angielskim) lub Ewę albo Zosię (oczywiście polskie głosy), aby nam pomogli.

Trik polega na połączeniu trzech narzędzi w pewnego rodzaju pętlę. Całość jest dość prosta i można zawrzeć ją w jednej linijce (bo będzie to polecenie do wykonania w Terminalu):

until ping -W1 -c1 google.com; do sleep 5; done && say internet już wrócił

Teraz krótkie objaśnienie:

  • ping -W1 -c1 google.com – pingujemy adres google.com jeden raz z czasem oczekiwania na pakiet wynoszącym 1 milisekundę;
  • sleep 5 – wstrzymanie przez 5 sekund;
  • until … do … done – to jest nasza pętla, która wywołuje pierwszą opisaną komendę, a gdy nie nadejdzie odpowiedź jest wstrzymywana na pięć sekund (druga opisana komenda), po czym wykonuje operację od nowa;
  • && say internet już wrócił – jeśli narzędzie ping otrzyma odpowiedź, pętla się skończy, a po niej (oznaczenie &&) zostanie wywołane właśnie to polecenie nakazujące uruchomienie syntezatora mowy, który ma wypowiedzieć słowa „internet już wrócił” (oczywiście tekst można zmienić na inny).

Odnośnie polecenia say. Tak jak wspomniałem na początku, domyślnym głosem jest Alex, który niekoniecznie umie w naszym rodzimym języku czytać. Aby to zmienić musimy pobrać dodatkowy pakiet syntezatora mowy którejś z pań: Ewy lub Zosi. W tym celu uruchamiamy Preferencje systemowe i wybieramy Dyktowanie i mowa.

Następnie przechodzimy do zakładki Synteza mowy, a z zakładki Głos systemowy wybieramy opcję Dostosuj….

W oknie wybierania mowy wskazujemy którąś z wymienionych wcześniej pań (bądź zaznaczamy obie).

Po zatwierdzeniu rozpocznie się pobieranie pakietu mowy (ponad 100 MB na pakiet). Po tym polecenia wykonywane za pomocą say będą odczytywane w języku polskim, kobiecym głosem.


Polecenie informowania o przywróceniu internetu warto zapisać jako skrypt wykonywalny, aby nie było potrzeby zapamiętywania całej komendy. W tym celu w edytorze tekstowym (np. TextEdit) wklejamy poniższy tekst:

#!/bin/bash
until ping -W1 -c1 google.com; do sleep 5; done && say internet już wrócił

Następnie zapisujemy plik z rozszerzeniem .command, np. internet.command w jakimś wygodnym dla nas miejscu (np. w katalogu domowym). Następnie w Terminalu wpisujemy poniższą komendę dającą prawa do wykonywania skryptu:

chmod a+x /ścieżka/dopliku/internet.command

Teraz wystarczy, że dwukrotnie klikniemy plik internet.command w Finderze, a Terminal sam się otworzy i uruchomi polecenie sprawdzające połączenie.

Źródło: OS X Daily

Maciej Skrzypczak

Użytkownik sprzętu z nadgryzionym jabłkiem, grafik komputerowy, Redaktor iMagazine.pl. Mastodon: mcskrzypczak@c.im

Zapraszamy do dalszej dyskusji na Mastodonie lub Twitterze .

Komentarze: 6

A w jakim edytorze zapisujesz? Jeśli w TextEdit, to wejdź w menu Format i tam wybierz Zamień na tekst zwykły. Teraz wciśnij Shift+Alt+Cmd+S i jeszcze raz nadaj nazwę i rozszerzenie .command. Powinno zadziałać.

Komenda say ma też opcję -v [nazwa głosu] co pozwala “w locie” zmieniać głosy i języki (o ile są zainstalowane) bez konieczności zmiany ustawienia standardowego głosu. Zakładając więc, że ktoś ma ustawiony jako standardowy głos Agaty (która umie czytać po polsku), może dla urozmaicenia końcówkę powyższego polecenia zapisać:
&& say -v Alex the internet is back