Šikula

český hlasový asistent -=- obvyklé funkce -=- ovládání prohlížeče, pc i domácnosti -=- dotazování na chatGPT/openAI -=- osobní trenér a virtuální sluha


Kdo je šikula?

Šikula je v Pythonu naprogramovaný hlasový asistent v češtině pro zjednodušení práce s počítačem a domácnosti zapojenou do systému. Díky spojení s Arduino deskou ESP8266 lze ovládat cokoliv připojeného na tuto desku a propojit ji s Šikulou. Rozpoznávání řeči (v češtině) funguje přes GoogleAPI a online rozpoznávání řeči googlu. Šikula má i možnost zeptat se chatbota od openAI a přečíst výsledek, jakoby data zpracovával sám. Text na řeč pak obsluhuje stávající systém předčítání ve Windows (v českém jazyce)

co umí?

Veškeré funkce Šikuly jsou popsány níže. Postupně se snažím mnoho dalších funkcí doplnit. Pokud jste vývojář, nebo nadšenec, nebudu se zlobit za případný další tip na funkce, případně se můžete zapojit a přidat vlastní modul.
Dokáže ovládat základní práci s prohlížečem a okny, zjednodušuje stahování z youtube, hledání informací, předčítání zpráv, nebo výstupů z chatbotu od openAI.

Co Šikula potřebuje?


    K samotnému chodu programu:
  • Windows 10, český hlas pro předčítání textu (hlas Jakub), přístup k internetu, Python 3
  • Volitelně:
  • zásuvky na 433MHz dálkové ovládání, objímky na 433MHz dálkové ovládání, vypínače na 433MHz dálkové ovládání, meteostanice s 433MHz externími sondami, ESP8266 WiFi modul, 433MHz vysílač a přijímač pro Arduino, Adaptér 220V/5V, Senzory a čidla dle použití a uvážení (teplota, vlhkost, tlak, světlo, ovládání motorků pro žaluzie, ovládání mechanického zamykání když jem doma apod.)

FUNKCE

Pokud chcete od Šikuly odpověď musí Váš dotaz obsahovat jeho jméno. Je jedno v jakém pořadí. Můžete se ptát "Šikulo, kolik je hodin?", nebo i "Kolik je hodin Šikulo?". Pokud dodržíte klíčová slova, větná stavba pak záleží na Vás. Můžete se tedy ptát i "Můj milý Šikulo, byl bys tak laskav a řekl mi, kolik je hodin?" apod.

Udělat

  • Přidat modifikovatelné nastavení Šikuly: výběr hlasu, výběr zdroje mikrofonu, výběr audio výstupu, přejmenování Šikuly, výchozí město (pro počasí), výchozí cesta adresářů (telefon, prohlížeč, spustitelné programy), vlastní API (openAI, openWeatherMap), IP adresy pro IOT zařízení v domácí síti
  • po skončení vtipu čekat na reakci. Pokud řeknu "to je blbost" apod. smaže daný vtip z databáze
  • vlastní MP3 přehrávač, který budu moci jednoduše ovládat hlasem
  • použití mikrofonu z bluetooth handsfree - vyřešit kvalitu
  • práce s telefonem (kopírování hudby, fotek apod.)
  • práce s telefonem (zprávy, volání, norifikace apod.)
  • odpočty do různých svátků, narozenin a dat
  • upomínky a vlastní kalendář s denním připomenutím a souhrnem
  • svátky a narozeniny připomínat (Dnes má svátek tamten a zítra má svátek tamten a narozeniny tamten)
  • čas v různých časových zónách podle měst
  • při stahování mp3 z youtube automaticky načítat danou url z prohlížeče
  • připojení hledání ve více databázích (ARES apod.)

Kdo šikulu staví?



ŠIKULA

Funkce na pozadí

  • logování aktivity do souboru log.txt
  • kontrola cvičení-pokud nebyl spuštěn program cvičení a nedoběhl do konce, bude Šikula co dvě hodiny připomínat cvičení (případně jakoukoliv jinou pravidelnou aktivitu)
  • kontroluje ukoly.txt, kde kontroluje zadané data úkolů a budíků a pokud se shodují s aktuálním datem a časem, vypíše oznámení

Kolik je hodin? Jaký je čas?

Zjistí a oznámí aktuální čas

Jaký je den?

Zjistí a oznámí aktuální datum a den v týdnu

Nastav budík

Zeptá se na čas budíku, poté uloží nastavený čas do ukoly.txt, který se automaticky kontroluje

Jaké je počasí? Jak je venku?

Zjistí a oznámí aktuální počasí pro zadanou domovskou lokalitu. Poté se dotáže, jestli chcete zobrazit radar (otevře browser s radarem), nebo počasí pro jiné město - openweathermap.org API

Jaké je počasí ve světě?

Šikula se dotáže na město a poté zjistí aktuální počasí v daném městě - openweathermap.org API

Kdo má svátek?

z webu svatky.cz si najde a stáhne, kdo má dnes svátek, přečte a zároveň oznámí kdo má svátek zítra

Jaké je cena Bitcoinu?

Zjístí přes API coinbase aktuální cenu bitcoinu v USD a přečte

kolik korun je ... zlotých

vraci konverzi měn na CZK (aktuálně zlotý, přidat lze jakoukoliv měnu)

Najdi na ...

googlu, youtube, wikipedii, v hadexu - otevře prohlížeč s curl query dotazem

co je, nebo kdo je?

vyhledá dotaz na wikipedii a přečte prvních pár vět

Kde je?

ukáže dotaz na mapy.cz

Zeptej se AI/umělé inteligence

Zeptá se na dotaz, následně jej pošle chatbotovi od openAI a po přijetí odpovědi ji přečte. Tento prvek dodává šikulovi obrovské možnosti využití.

přelož do češtiny/angličtiny

Zeptá se na překládanou frázi, kterou následně přeloží, vypíše a přečte

stáhni hudbu/mp3

výzva k zadání url s videem z youtube, automatické stáhnutí do složky (pokud jste na stránce s videem, adresa se automaticky zkopíruje do schránky, lze tedy pouze přepnout okno a v Šikulovi pouze zmáčknout CTRL+V)

pusť hudbu

spustí playlist uložených mp3

stáhni video

výzva k zadání url s videem z youtube, automatické stáhnutí do složky (pokud jste na stránce s videem, adresa se automaticky zkopíruje do schránky, lze tedy pouze přepnout okno a v Šikulovi pouze zmáčknout CTRL+V). Video stahuje v maximální dostupné kvalitě

domácí zprávy

načte poslední zprávy z ceskenoviny.cz přes rss, vypíše a dotáže se, jestli chcete přečíst titulky

zprávy z kultury

načte poslední zprávy z ceskenoviny.cz přes rss, vypíše a dotáže se, jestli chcete přečíst titulky

zprávy z ekonomiky

načte poslední zprávy z ceskenoviny.cz přes rss, vypíše a dotáže se, jestli chcete přečíst titulky

neposlouchej/přestaň poslouchat

Dotáže se jak dlouho, nastaví si tento čas a uspí poslech na danou dobu

vyfoť/udělej fotku

Použije vestavěnou webkameru a udělá z ní snímek

Napiš poznámku/nová poznámka

zeptá se na obsah poznámky a přidá ji pod stávající v poznamky.txt

ukaž poznámky

ukáže všechny zapsané poznámky v poznamky.txt

Napiš úkol/nový úkol

zeptá se na obsah úkolu a kdy chcete úkol připomenout, poté přidá data s časovým razítkem úkolu do ukoly.txt, který se kontroluje. Jakmile nadejde datum úkolů, spustí se oznámení a okno s připomenutím

ukaž úkoly

ukáže všechny zapsané ukoly v ukoly.txt

Napiš recept/nový recept

Dotáže se na název jídla, ingredience, postup, vše zopakuje a po potvrzení uloží do recepty.txt

ukaž recepty

ukáže všechny zapsané recepty v recepty.txt

řekni vtip/pobav mě

náhodný vtip ze své databáze vtipy.txt

citát/moudro/motivuj

náhodný citát ze své databáze citaty.txt

zajímavost

náhodná krátká zajímavost ze své databáze zajimavosti.txt

řekni hlášku

náhodná hláška ze své databáze hlášek ze seriálů a filmů hlasky.txt

jake je doma/venku

Vypíše a přečte data z domácí wifi meteostanice běžící na esp8266, připojení k wifi (teplota in/out, vlhkost in/out, tlak)

přepni okno

simulace ALT+TAB

zavři okno

simulace ALT+F4

posuň dolů

simulace PAGE DOWN

posuň nahoru

simulace PAGE UP

nový panel

simulace CTRL+T

další panel

simulace CTRL+TAB

předchozí panel

simulace CTRL+SHIFT+TAB

zavři panel

simulace CTRL+W

kopíruj adresu

simulace ALT+D (označení adresního řádku) a CTRL+C

restasrtovat/vypnout/odhlásit/uspat

Tyto operace lze provádět hlasově. Při opětovném spuštění nebo přihlášení je Šikula automaticky spuštěn

Přepnout/zavřít okno

Operace s okny pro zjednodušení práce, pokud zrovna nemáte volné ruce, například v dílně ateliéru apod.

kopírovat URL

automaticky přejde do adresního řádku a zkopíruje do schránky danou URL adresu

vložit

klasická operace CTRL+V pro vložení obsahu schránky

cvičíme/tréning/jdeme makat

přednapsaný variabilní program pro cvičení a posilování celého těla. Podle zvoleného cvičení pak Šikula odříkává celý postup, včetně úvodu, času na protáhnutí, rozcvičku a následné cviky, kdy nejdříve každý popíše a pak odstartuje počítání. Po každém cviku dává také čas na protáhnutí a pro zkrácení chvil říká vtipy, motivační citáty, nebo zajímavosti. Celý tréningový plán jsem se snažil co nejvíce přiblížit živému trenérovi (akorát Vás Šikula nevidí... zatím)

rozsviť/zhasni světlo v obýváku/ložnici/kuchyni/chodbě

dá curl dotaz na lokální ip adresu, na které je spuštěn ESP server a přes rádiové rozhraní 433MHz ovládá bezdrátově zásuvky, objímky a vypínače

Všude rozsviť/zhasni

stejnou cestou všude s 300ms prodlevou zhasne (pěkný efekt pokud je rozsvíceno více světel)

co vidí Pingy?

otevře okno se stramem z kamery robotka Pingyho

edituj svůj kód

otevře svůj kód v pspadu pro rychlé úpravy

co umíš?/pomoc

otevře se prohlížeč s tímto webem

Dobrou noc

popřeje zpátky dobrou noc a zavře program

běž spát/odpočiň si

poděkuje, popřeje pěkný den a zavře program

LUCY

Android verze hlasového asistenta s kontinuálním poslechem a reakcí na jméno Lucy

Kolik je hodin? Jaký je čas?

Zjistí a oznámí aktuální čas

Jaký je den?

Zjistí a oznámí aktuální datum a den v týdnu

Rozsvítí nebo zhasne vestavěnou LED svítilnu.


Martin Lukášek - info@martinlukasek.cz - martinlukasek.cz - fb:/mlukasek1 - ig: @lukma - sig/tlg:+420605366396