GeoTalk / README.md
ShebMichel
Add professional README with animated SVG banner, features table, and architecture diagram
8dcd60e
|
Raw
History Blame Contribute Delete
8.09 kB
---
title: GeoTalk
emoji: πŸš€
colorFrom: green
colorTo: yellow
sdk: gradio
sdk_version: 6.19.0
python_version: '3.13'
app_file: app.py
pinned: false
---
<div align="center">
<!-- Animated SVG Banner -->
<svg width="800" height="200" xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#1a1a2e"/>
<stop offset="50%" style="stop-color:#16213e"/>
<stop offset="100%" style="stop-color:#0f3460"/>
</linearGradient>
<linearGradient id="text-grad" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" style="stop-color:#4caf50"/>
<stop offset="50%" style="stop-color:#4fc3f7"/>
<stop offset="100%" style="stop-color:#9c27b0"/>
</linearGradient>
</defs>
<rect width="800" height="200" rx="16" fill="url(#bg)"/>
<text x="400" y="85" text-anchor="middle" font-family="Arial, sans-serif" font-size="48" font-weight="bold" fill="url(#text-grad)">πŸŒπŸŽ™οΈ GeoTalk</text>
<text x="400" y="130" text-anchor="middle" font-family="Arial, sans-serif" font-size="18" fill="#e0e0e0">AI-Generated Geoscience Debate Podcast</text>
<text x="400" y="165" text-anchor="middle" font-family="Arial, sans-serif" font-size="14" fill="#888">Powered by LLMs β€’ Edge-TTS β€’ Three.js Robot Avatars</text>
<!-- Animated dots -->
<circle cx="300" cy="180" r="3" fill="#4caf50">
<animate attributeName="opacity" values="1;0.3;1" dur="2s" repeatCount="indefinite"/>
</circle>
<circle cx="400" cy="180" r="3" fill="#4fc3f7">
<animate attributeName="opacity" values="0.3;1;0.3" dur="2s" repeatCount="indefinite"/>
</circle>
<circle cx="500" cy="180" r="3" fill="#9c27b0">
<animate attributeName="opacity" values="1;0.3;1" dur="2s" repeatCount="indefinite" begin="0.5s"/>
</circle>
</svg>
**Watch AI geoscientists debate your geological data β€” live, with animated robot avatars!**
[![Hugging Face Space](https://img.shields.io/badge/πŸ€—%20Live%20Demo-GeoTalk-blue?style=for-the-badge)](https://huggingface.co/spaces/ShebMichel/GeoTalk)
[![Python](https://img.shields.io/badge/Python-3.13-green?style=flat-square&logo=python)](https://python.org)
[![Gradio](https://img.shields.io/badge/Gradio-6.19-orange?style=flat-square)](https://gradio.app)
</div>
---
## 🎬 What is GeoTalk?
GeoTalk is an AI-powered geoscience podcast generator that turns your geological data into an engaging debate between AI scientists β€” complete with **animated 3D robot avatars**, **text-to-speech voices**, and **live captions**.
Upload a core photo, well log, or outcrop image, and watch two AI geoscientists (plus a moderator) debate the interpretation in real-time.
<div align="center">
```
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ πŸŽ™οΈ GeoTalk Live ● LIVE β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ β”‚ β”‚ β”‚
β”‚ πŸ€– Robot A β”‚ πŸŽ™οΈ Chair β”‚ πŸ€– Robot B β”‚
β”‚ (Speaker 1) β”‚(Moderator)β”‚ (Speaker 2) β”‚
β”‚ β”‚ β”‚ β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Dr. Vasquez: "The laminations suggest a tidal flat..." β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ ⏸ ════════════════════════ 2:34 / 5:12 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
```
</div>
## ✨ Features
| Feature | Description |
|---------|-------------|
| πŸ”¬ **Core Talk** | Two petrographers debate your core/thin section photo |
| 🩺 **Log Doctor** | Two analysts diagnose your well log data (LAS files) like doctors diagnosing a patient |
| πŸ•οΈ **Field Trip FM** | A professor and student narrate a virtual field trip to your outcrop |
| πŸŽ™οΈ **Chair/Moderator** | A professional host introduces the topic, speakers, and guides the debate |
| πŸ€– **3D Robot Avatars** | Reachy Mini-inspired robots animate per speaker turn (Three.js) |
| πŸ—£οΈ **Multi-voice TTS** | Each character has a distinct voice (Edge-TTS) |
| πŸ“ **Live Captions** | Real-time subtitles synced to audio playback |
| ▢️ **Auto-play** | Episode starts automatically when ready |
## πŸ—οΈ Architecture
```
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ User Input │────▢│ Vision Model │────▢│ LLM Script β”‚
β”‚ (Image/LAS) β”‚ β”‚ (Qwen2.5-VL) β”‚ β”‚ Generator β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜
β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚ Edge-TTS β”‚β—€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚ (Multi-voice) β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Robot Viewer β”‚
β”‚ (Three.js + β”‚
β”‚ Audio Sync) β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
```
**Pipeline:**
1. **Vision Analysis** β€” Qwen2.5-VL-72B describes the uploaded geological image
2. **Script Generation** β€” Qwen2.5-72B writes a multi-character debate script (with Chair)
3. **Text-to-Speech** β€” Edge-TTS generates distinct voices for each character
4. **Live Viewer** β€” Three.js renders animated robots synced to audio playback
## πŸš€ Quick Start
### Run locally
```bash
git clone https://github.com/ShebMichel/GeoTalk.git
cd GeoTalk
pip install -r requirements.txt
export HF_TOKEN="your_huggingface_token"
python app.py
```
### Try the live demo
πŸ‘‰ **[Launch GeoTalk on Hugging Face Spaces](https://huggingface.co/spaces/ShebMichel/GeoTalk)**
## πŸ“ Project Structure
```
GeoTalk/
β”œβ”€β”€ app.py # Gradio UI + tab functions
β”œβ”€β”€ backend.py # LLM client, TTS generation, script parsing
β”œβ”€β”€ robot_viewer.html # Three.js robot viewer (self-contained)
β”œβ”€β”€ requirements.txt # Python dependencies
└── README.md # This file
```
## πŸ€– Robot Avatars
The 3D robot avatars are inspired by [Reachy Mini](https://huggingface.co/spaces/build-small-hackathon/small-talk) from the Small Talk project. They feature:
- **Procedural Three.js geometry** β€” no external model files needed
- **Per-speaker animations** β€” talking (head bob, antenna wiggle), listening (head tilt), idle (gentle sway)
- **Visual feedback** β€” active speaker panel highlighted with colored border
- **Chair indicator** β€” center panel with pulsing microphone icon
## πŸ› οΈ Tech Stack
- **Frontend:** Three.js, Gradio, HTML5 Audio
- **LLM:** Qwen2.5-72B-Instruct (script generation)
- **Vision:** Qwen2.5-VL-72B-Instruct (image analysis)
- **TTS:** Edge-TTS (Microsoft Neural voices)
- **Hosting:** Hugging Face Spaces
## πŸ“„ License
MIT
---
<div align="center">
<sub>Built with ❀️ for the geoscience community</sub>
</div>