ellmo

🔄 Aktualizacja

Automatyczna aktualizacja

ellmo-utils update

Manualna aktualizacja

cd /opt/ellmo
git pull
flutter pub get
flutter build linux --release
sudo systemctl restart ellmo

🗑️ Deinstalacja

ellmo-utils uninstall

Lub manualnie:

sudo systemctl stop ellmo
sudo systemctl disable ellmo
sudo rm /etc/systemd/system/ellmo.service
sudo rm -rf /# Ellmo - AI Voice Assistant

Kompletny system asystenta głosowego zbudowany z Flutter, integrujący się z Ollama i modelem Mistral. Obsługuje rozpoznawanie mowy (STT), syntezę mowy (TTS) i automatyczne uruchamianie przy starcie systemu.

## 🎯 Funkcje

- **Rozpoznawanie mowy** - Słuchanie poleceń głosowych
- **Synteza mowy** - Odpowiedzi głosowe  
- **Integracja z Ollama** - AI model Mistral
- **Autostart** - Uruchamianie przy starcie systemu
- **Uniwersalność** - Działa na Raspberry Pi, Radxa, desktopach z Fedora/Ubuntu
- **Konfigurowalność** - Łatwa zmiana ustawień
- **Interfejs graficzny** - Nowoczesny interfejs Flutter

## 🔧 Wymagania systemowe

### Obsługiwane systemy:
- **Raspberry Pi** (Raspberry Pi OS)
- **Radxa** (Ubuntu/Debian)
- **Fedora** (wszystkie wersje)
- **Ubuntu/Debian** (18.04+)
- **Arch Linux**

### Minimalne wymagania sprzętowe:
- **RAM**: 2GB (4GB zalecane)
- **Procesor**: ARM64/x64
- **Miejsce na dysku**: 5GB wolnego miejsca
- **Audio**: Mikrofon i głośniki/słuchawki

## 🚀 Instalacja

### Szybka instalacja (jeden skrypt)

```bash
wget https://raw.githubusercontent.com/wronai/ellmo/main/install.sh -O - | bash

Instalacja manualna

  1. Klonowanie repozytorium
    git clone https://github.com/twoje-repo/ellmo.git
    cd ellmo
    
  2. Uruchomienie instalatora
    chmod +x install.sh
    ./install.sh
    

Co instaluje skrypt:

  1. Zależności systemowe:
    • Flutter SDK
    • Ollama
    • Python3 z bibliotekami audio
    • Biblioteki GTK dla Linux Desktop
    • ALSA/PulseAudio
  2. Aplikacja Flutter:
    • Kompilacja dla platformy Linux
    • Konfiguracja platform channels
    • Handler audio w Pythonie
  3. Konfiguracja systemowa:
    • Usługa systemd
    • Autostart
    • Uprawnienia audio
    • Desktop entry

📋 Użytkowanie

Pierwsze uruchomienie

Po instalacji system automatycznie:

  1. Uruchomi Ollama
  2. Pobierze model Mistral
  3. Skonfiguruje audio
  4. Uruchomi aplikację

Komendy głosowe

Słowa aktywujące:

Przykłady poleceń:

Zarządzanie usługą

# Sprawdzenie statusu
sudo systemctl status ellmo

# Uruchomienie
sudo systemctl start ellmo

# Zatrzymanie
sudo systemctl stop ellmo

# Restart
sudo systemctl restart ellmo

# Logi
journalctl -u ellmo -f

Skrypt narzędziowy

# Skopiuj skrypt utils.sh do /usr/local/bin
sudo cp utils.sh /usr/local/bin/ellmo-utils
sudo chmod +x /usr/local/bin/ellmo-utils

# Użycie
ellmo-utils start      # Uruchom usługę
ellmo-utils stop       # Zatrzymaj usługę
ellmo-utils status     # Status usługi
ellmo-utils logs       # Pokaż logi
ellmo-utils test-audio # Test audio
ellmo-utils configure  # Konfiguracja
ellmo-utils monitor    # Monitor wydajności

⚙️ Konfiguracja

Plik konfiguracyjny

Lokalizacja: /opt/ellmo/config.json

{
  "ollama_host": "localhost",
  "ollama_port": 11434,
  "model": "mistral",
  "language": "pl-PL",
  "wake_words": ["ellmo"],
  "tts_rate": 150,
  "tts_volume": 0.8,
  "audio_timeout": 5,
  "auto_start": true,
  "headless_mode": false
}

Dostępne opcje

Opcja Opis Domyślna wartość
ollama_host Adres serwera Ollama localhost
ollama_port Port Ollama 11434
model Model AI do użycia mistral
language Język rozpoznawania mowy pl-PL
wake_words Słowa aktywujące ["ellmo"]
tts_rate Prędkość mowy (50-300) 150
tts_volume Głośność mowy (0.0-1.0) 0.8
audio_timeout Timeout słuchania (sekundy) 5
auto_start Autostart aplikacji true
headless_mode Tryb bezgłowy false

Zmiana modelu AI

# Lista dostępnych modeli
ollama list

# Instalacja nowego modelu
ollama pull llama2

# Konfiguracja
ellmo-utils configure
# Wybierz opcję 1 (Change AI model)

Konfiguracja języka

Obsługiwane języki:

🔊 Konfiguracja audio

Test systemu audio

ellmo-utils test-audio

Rozwiązywanie problemów audio

Brak uprawnień do mikrofonu:

sudo usermod -a -G audio $USER
# Wyloguj się i zaloguj ponownie

Problemy z PulseAudio:

pulseaudio --kill
pulseaudio --start

Raspberry Pi - włączenie audio:

sudo raspi-config
# Advanced Options -> Audio -> Force 3.5mm jack

Konfiguracja dla urządzeń embedded

Raspberry Pi:

Radxa/Rock Pi:

🖥️ Tryby pracy

Tryb graficzny (domyślny)

Tryb headless

# Włączenie w konfiguracji
echo '{"headless_mode": true}' > /opt/ellmo/config.json

# Lub uruchomienie z parametrem
/opt/ellmo/start.sh --headless

Tryb debug

/opt/ellmo/start.sh --debug

🔧 Rozwiązywanie problemów

Częste problemy

1. Ollama nie odpowiada

sudo systemctl status ollama
sudo systemctl restart ollama
ollama list  # Sprawdź dostępne modele

2. Brak rozpoznawania mowy

# Test mikrofonu
arecord -d 5 test.wav
aplay test.wav

# Sprawdź uprawnienia
groups | grep audio

3. Brak syntezy mowy

# Test TTS
espeak-ng "test"
# lub
echo "test" | festival --tts

4. Aplikacja nie startuje

# Sprawdź logi
journalctl -u ellmo -f

# Test zależności
/opt/ellmo/start.sh --check

5. Problemy z Flutter

cd /opt/ellmo
flutter doctor
flutter clean
flutter pub get
flutter build linux --release

Logi i diagnostyka

Główne logi:

journalctl -u ellmo -f

Logi audio:

tail -f /var/log/ellmo.log

Logi Ollama:

journalctl -u ollama -f

Test całego systemu:

ellmo-utils info     # Informacje o systemie
ellmo-utils monitor  # Monitor wydajności

📊 Monitoring wydajności

Monitorowanie w czasie rzeczywistym

ellmo-utils monitor

Sprawdzenie zasobów

# Zużycie CPU/RAM przez aplikację
ps aux | grep ellmo

# Zużycie przez Ollama
ps aux | grep ollama

# Ogólne zużycie systemu
htop

Optymalizacja wydajności

Raspberry Pi:

Systemy embedded:

🔄 Aktualizacja

Automatyczna aktualizacja

ellmo-utils update

Manualna aktualizacja

cd /opt/ellmo
git pull
flutter pub get
flutter build linux --release
sudo systemctl restart ellmo

🗑️ Deinstalacja

ellmo-utils uninstall

Lub manualnie:

sudo systemctl stop ellmo
sudo systemctl disable ellmo
sudo rm /etc/systemd/system/ellmo.service
sudo rm -rf /opt/ellmo
sudo systemctl daemon-reload

🤝 Wkład w projekt

  1. Fork repozytorium
  2. Stwórz branch dla funkcji (git checkout -b feature/AmazingFeature)
  3. Commit zmian (git commit -m 'Add some AmazingFeature')
  4. Push do brancha (git push origin feature/AmazingFeature)
  5. Otwórz Pull Request

📝 Licencja

Projekt na licencji MIT. Zobacz plik LICENSE dla szczegółów.

🙏 Podziękowania

📞 Wsparcie


Ellmo - Twój inteligentny asystent głosowy ❤️