--- title: GeoTalk emoji: πŸš€ colorFrom: green colorTo: yellow sdk: gradio sdk_version: 6.19.0 python_version: '3.13' app_file: app.py pinned: false ---
πŸŒπŸŽ™οΈ GeoTalk AI-Generated Geoscience Debate Podcast Powered by LLMs β€’ Edge-TTS β€’ Three.js Robot Avatars **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)
--- ## 🎬 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.
``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ πŸŽ™οΈ 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 β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ```
## ✨ 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 ---
Built with ❀️ for the geoscience community