Coffee Required Git
coffeerequired
KIKI-AI / README.md
README.md

Kiki – český hlasový asistent pro Windows

Kiki je desktop hlasový asistent inspirovaný stylem Jarvis. Probouzí se slovem „Kiki“, rozumí česky, odpovídá českým hlasem a umí ovládat PC, zjišťovat počasí, číst kalendář a ovládat chytrou domácnost přes Home Assistant.

Požadavky

  • Windows 10/11
  • Python 3.11 nebo novější
  • Mikrofon a reproduktory/sluchátka
  • API klíče (viz níže)

Rychlá instalace

cd C:\Users\coffee\Desktop\Kiki
copy .env.example .env
copy config.yaml.example config.yaml
instalovat.bat
spustit.bat

Poznámka: Na Windows s Pythonem z Microsoft Store příkaz python často nefunguje.
Používej python3.13 nebo připravené skripty instalovat.bat / spustit.bat.

Alternativně ručně:

python3.13 -m pip install -r requirements.txt
python3.13 main.py

Doplňte API klíče do souboru .env a upravte config.yaml dle potřeby.

Wake word „Kiki“ (lokálně – doporučeno)

Probouzení slovem „Kiki“ běží lokálně přes Vosk – nečerpá Gemini kvótu.

Při prvním startu se automaticky stáhne český model (~44 MB).
Gemini se používá jen pro mozek a přepis dotazu, ne pro neustálé naslouchání.

V config.yaml:

wake_word:
  mode: auto  # local/vosk – lokálně, gemini – cloud (čerpá kvótu!)

Klíč Gemini pro mozek: Google AI Studio

Alternativa: Picovoice Porcupine (volitelné)

  1. Účet na Picovoice Console
  2. Custom wake word „Kiki“ → stáhni .ppn pro Windows
  3. Ulož jako assets/kiki_windows.ppn
  4. V config.yaml nastav wake_word.mode: porcupine

API klíče

Proměnná Povinné Popis
GEMINI_API_KEY Doporučené Gemini mozek + přepis řeči (STT)
OPENAI_API_KEY Alternativa OpenAI mozek + Whisper STT
PORCUPINE_ACCESS_KEY Volitelné Lokální wake word bez Gemini
AZURE_SPEECH_KEY Volitelné Azure Speech STT
AZURE_SPEECH_REGION S Azure Např. westeurope
OPENWEATHER_API_KEY Pro počasí OpenWeatherMap
HOME_ASSISTANT_URL Pro HA URL vaší instance
HOME_ASSISTANT_TOKEN Pro HA Long-lived access token z HA profilu

Google Calendar (volitelné)

  1. V Google Cloud Console vytvořte projekt a povolte Calendar API
  2. Stáhněte credentials.json do kořene projektu
  3. V config.yaml nastavte calendar.enabled: true
  4. Při prvním spuštění proběhne OAuth v prohlížeči

Spuštění

python3.13 main.py

Kiki se spustí v system tray (lišta u hodin). Po hlasovém příkazu se automaticky zobrazí vizuální okno s animovanou koulí ve stylu Jarvis.

Ikona v tray mění barvu podle stavu:

  • Zelená – naslouchá na „Kiki“
  • Modrá – nahrává váš dotaz (UI viditelné)
  • Žlutá – zpracovává (UI viditelné)
  • Fialová – mluví (UI viditelné)
  • Červená – vypnuto

Klikněte na ikonu pro zapnutí/vypnutí, ruční zobrazení UI nebo ukončení.

Vizuální UI

Po probuzení slovem „Kiki“ se zobrazí plovoucí okno u horního okraje obrazovky:

  • Animovaná koule mění barvu podle stavu (poslouchám / přemýšlím / odpovídám)
  • Zobrazí váš přepisovaný dotaz a odpověď Kiki
  • Po dokončení se automaticky skryje (výchozí 4 s, nastavitelné v config.yaml)
ui:
  enabled: true
  auto_hide_s: 4
  width: 440
  height: 340

Použití

  1. Řekněte „Kiki“ – uslyšíte krátký tón
  2. Položte dotaz nebo příkaz v češtině
  3. Kiki odpoví hlasem

Příklady

  • „Kiki, kolik je hodin?“
  • „Kiki, jaké je počasí v Brně?“
  • „Kiki, otevři Chrome.“
  • „Kiki, nastav hlasitost na 30.“
  • „Kiki, co mám dnes v kalendáři?“
  • „Kiki, zhasni světlo v obýváku.“ (Home Assistant)

Konfigurace

Soubor config.yaml (zkopírujte z config.yaml.example):

  • assistant – jméno, tykání/vykání, model OpenAI, délka paměti
  • tts.voicecs-CZ-AntoninNeural (mužský) nebo cs-CZ-VlastaNeural (ženský)
  • pc_control.allowed_apps – whitelist aplikací, které smí Kiki spouštět
  • weather / calendar / homeassistant – zapnutí integrací

Home Assistant

V config.yaml:

homeassistant:
  enabled: true

V .env doplňte URL a token. Kiki pak umí volat služby jako light.turn_on na entitě light.obyvak.

PyAudio na Windows

Pokud instalace PyAudio selže, nainstalujte Visual C++ Build Tools nebo použijte předkompilovaný wheel:

pip install pipwin
pipwin install pyaudio

Struktura projektu

Kiki/
├── main.py              # system tray vstupní bod
├── kiki/
│   ├── assistant.py     # hlavní smyčka
│   ├── wake_word.py     # detekce „Kiki“
│   ├── audio.py         # nahrávání a přehrávání
│   ├── stt.py           # rozpoznávání řeči
│   ├── tts.py           # mluvení
│   ├── brain.py         # OpenAI + nástroje
│   ├── ui.py            # vizuální okno (Jarvis UI)
│   └── tools/           # PC, počasí, kalendář, HA
├── assets/
│   └── kiki_windows.ppn # wake word model
├── .env
└── config.yaml

Bezpečnost

  • Destruktivní akce (vypnutí/restart PC) vyžadují hlasové potvrzení
  • Spouštění aplikací je omezeno whitelistem v config.yaml
  • API klíče držte v .env, nikdy je necommitujte

Licence

MIT