Interaktiva berättelser med AI och piktogram för läsförståelseträning
StoryMaker är en GTK4/Adwaita-app som skapar interaktiva, grenade berättelser för barn 6-12 år. Appen använder AI (OpenAI/Anthropic) för att generera åldersanpassade berättelser med beslutspunkter, visuellt stöd via ARASAAC-piktogram, och läsförståelsequiz efter varje berättelse.
- Interaktiva berättelser - Barnet väljer vägar genom berättelsen med 3 valalternativ per kapitel
- AI-genererat innehåll - Berättelser skapas dynamiskt med OpenAI eller Anthropic, anpassade efter barnets ålder och intressen
- Demo-läge - Fungerar utan API-nyckel med inbyggda berättelser
- Piktogram-stöd - ARASAAC-piktogram och emoji-fallback för visuell förståelse
- Läsförståelse-quiz - Automatiskt genererade frågor efter varje berättelse
- Personalisering - Barnets namn, ålder, avatar och intressen påverkar berättelserna
- Text-till-tal (TTS) - Uppläsning via espeak-ng eller macOS
say - Framstegsföljning - Statistik över lästa ord, kapitel, berättelser och quizresultat
- Svenska & engelska - Fullt lokaliserad med gettext
Appen använder GNOME Adwaita-design med barnanpassad typografi och färgglada valalternativ.
- Python 3.10+
- GTK4 och libadwaita
- PyGObject
sudo apt install python3-gi python3-gi-cairo gir1.2-gtk-4.0 gir1.2-adw-1 gir1.2-gdkpixbuf-2.0
# Valfritt: TTS-stöd
sudo apt install espeak-ng
# Valfritt: AI-providers
pip install openai # För OpenAI
pip install anthropic # För Anthropic Claudesudo dnf install python3-gobject gtk4 libadwaita python3-cairo
# Valfritt: TTS-stöd
sudo dnf install espeak-ngsudo pacman -S python-gobject gtk4 libadwaita python-cairo
# Valfritt
sudo pacman -S espeak-ngbrew install pygobject3 gtk4 libadwaita
# TTS fungerar automatiskt via macOS "say"git clone https://github.com/yeager/StoryMaker.git
cd StoryMaker
pip install -e .
# Eller kör direkt:
python -m storymakerstorymaker
# eller
python -m storymaker- Klicka "➕ Ny läsare" för att skapa en profil
- Fyll i namn, ålder och välj intressen
- Klicka "Spela" på din profil
- Välj ett tema eller skriv ditt eget
- Läs berättelsen och välj vägar!
- Gör quiz efter berättelsen
Appen fungerar i demo-läge utan API-nyckel. För AI-genererade berättelser:
- Öppna Inställningar (kugghjulet)
- Välj AI-tjänst (OpenAI eller Anthropic)
- Ange din API-nyckel
- Spara
API-nyckeln lagras lokalt i ~/.config/storymaker/settings.json med begränsade filrättigheter.
StoryMaker/
├── storymaker/
│ ├── __main__.py # Startpunkt
│ ├── application.py # Adw.Application
│ ├── config.py # Konfiguration
│ ├── engine/
│ │ └── story_engine.py # Berättelselogik
│ ├── models/ # Datamodeller
│ │ ├── child_profile.py
│ │ ├── story.py
│ │ ├── quiz.py
│ │ └── progress.py
│ ├── services/
│ │ ├── ai_provider.py # AI-integration (OpenAI/Anthropic/Demo)
│ │ ├── arasaac_client.py # Piktogram-API
│ │ └── tts_service.py # Text-till-tal
│ ├── storage/
│ │ └── database.py # SQLite-databas
│ ├── ui/ # GTK4-vyer
│ │ ├── window.py
│ │ ├── welcome_view.py
│ │ ├── story_view.py
│ │ ├── quiz_view.py
│ │ ├── profile_view.py
│ │ ├── progress_view.py
│ │ └── settings_view.py
│ └── utils/
│ ├── i18n.py # Lokalisering
│ └── async_helper.py # Trådhantering
├── data/
│ ├── org.github.storymaker.desktop
│ └── icons/
├── po/ # Översättningar
│ ├── storymaker.pot
│ ├── sv.po
│ └── en.po
├── setup.py
├── requirements.txt
└── README.md
- UI: GTK4 + libadwaita med
Adw.NavigationViewför sidnavigering - Berättelse-engine: Trädstruktur med noder och val, JSON-serialiserat
- AI: Abstraktionslager med OpenAI/Anthropic/Demo-providers
- Piktogram: ARASAAC REST API med lokal disk-cache, emoji-fallback
- Databas: SQLite via Python stdlib
- TTS: espeak-ng (Linux) / say (macOS)
- i18n: GNU gettext med .pot/.po-filer
- Asynkronitet: Bakgrundstrådar + GLib.idle_add för UI-uppdatering
- Forka repot
- Skapa en feature-branch
- Skicka en pull request
GPL-3.0