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

A newer version of the Gradio SDK is available: 6.21.0

Upgrade
metadata
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 Python Gradio


🎬 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

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

πŸ“ 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 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