Project Info
This project did not submit a demo video on Devpost.
Your virtual comforting walking stick There are 1.1 billion people struggling with impaired vision, making even navigating everyday life a challenge. Walking sticks have been traditional solutions, but they can be a hassle for both the user and the people around them. We present a digital solution to the walking stick, SootheSayer, an AI-powered environment navigator complete with emotional support for stressful situations. SootheSayer recreates your environment in 3D from 2D MiDaS projections, then using the recreated environment to determine optimial angles of unobstructured travel inform verbal navigation instructions. Stressed individuals are analyzed through verbal and facial cues, which then adjusts the tone of verbal instructions to match.
SoothSayer ๐ค
A real-time multimodal sentiment analysis system that combines facial expressions, environmental context, and speech to provide comprehensive emotional insights and recommendations.
๐ Overview
SoothSayer is an intelligent assistant that analyzes your emotional state and surroundings in real-time using:
- Facial Expression Analysis - Detects emotions from facial cues and body language
- Environmental Context - Understands your surroundings and potential obstacles
- Speech Analysis - Transcribes and analyzes your spoken words for sentiment
- Movement Guidance - Calculates optimal movement angles for navigation
The system provides conversational feedback and recommendations based on this comprehensive analysis.
๐๏ธ Architecture
Frontend (React Native + Expo)
- Real-time Audio Recording - Continuous audio capture with configurable sensitivity
- Dual Camera System - Simultaneous front and back camera capture
- Beautiful UI - Modern, intuitive interface with real-time feedback
- Interval Recording - Automated recording and analysis cycles
Backend (Python + Flask)
- GROQ AI Integration - Uses state-of-the-art LLMs for analysis
- MiDaS Depth Estimation - 3D depth mapping for movement guidance
- Multimodal Processing - Combines visual, audio, and environmental data
- RESTful API - Clean endpoints for frontend communication
๐ Features
Real-time Analysis
- Continuous Monitoring - Records and analyzes data every 10 seconds
- Instant Feedback - Provides immediate emotional insights
- Context Awareness - Understands both personal and environmental factors
Multimodal Input Processing
- Facial Sentiment Analysis - Detects primary and secondary emotions
- Environmental Understanding - Identifies objects and context in surroundings
- Speech Transcription - Converts audio to text for content analysis
- Movement Optimization - Calculates optimal navigation paths
Smart Recommendations
- Emotional Insights - Provides detailed emotional state analysis
- Conversational Responses - Natural language feedback and suggestions
- Contextual Guidance - Recommendations based on current situation
๐ฑ Screenshots
[Screenshots would be added here]
๐ ๏ธ Technology Stack
Frontend
- React Native - Cross-platform mobile development
- Expo - Development platform and tools
- Expo Camera - Camera and audio recording
- Expo File System - File management and uploads
Backend
- Python 3.12+ - Core programming language
- Flask - Web framework for API
- GROQ API - AI/LLM services
- MiDaS - Depth estimation models
- OpenCV - Computer vision processing
- PyTorch - Deep learning framework
- Poetry - Dependency management
AI/ML Services
- GROQ Llama Models - Text analysis and generation
- GROQ Whisper - Speech-to-text transcription
- GROQ Vision Models - Image analysis and sentiment detection
- MiDaS - Monocular depth estimation
๐ Prerequisites
- Node.js 18+ and npm or yarn
- Python 3.12+
- Poetry (Python package manager)
- Expo CLI
- iOS Simulator or Android Emulator (for mobile testing)
- GROQ API Key - Get one at groq.com
๐ง Installation
1. Clone the Repository
git clone https://github.com/yourusername/soothsayer.git
cd soothsayer
2. Backend Setup
cd backend
# Install Python dependencies
poetry install
# Set up environment variables
cp .env.example .env
# Edit .env and add your GROQ_API_KEY
# Run the backend server
poetry run python app.py
The backend will start on http://localhost:5001
3. Frontend Setup
cd frontend
# Install dependencies
npm install
# Start the development server
npx expo start
4. Mobile App Setup
- Install Expo Go app on your mobile device
- Scan the QR code from the Expo development server
- Or run on iOS Simulator/Android Emulator
๐ Environment Variables
Create a .env file in the backend directory:
GROQ_API_KEY=your_groq_api_key_here
๐ Usage
Starting the System
-
Start Backend Server
cd backend poetry run python app.py -
Start Frontend Development Server
cd frontend npx expo start -
Open Mobile App
- Use Expo Go app to scan QR code
- Or press
ifor iOS Simulator /afor Android Emulator
Using the App
-
Grant Permissions
- Allow microphone access for audio recording
- Allow camera access for photo capture
-
Configure Sensitivity
- Adjust the sensitivity slider (0-100%)
- Higher sensitivity = more frequent recordings
-
Start Recording
- Tap "Start Recording" to begin automated analysis
- The system will record every 10 seconds
- Photos are captured from both cameras simultaneously
-
View Results
- Analysis results appear in real-time
- Emotional insights and recommendations are provided
- Audio responses are generated and played
๐ API Endpoints
Core Analysis Endpoints
POST /api/analyze/face-sentiment- Analyze facial expressionsPOST /api/analyze/environment-sentiment- Analyze surroundingsPOST /api/analyze/audio-transcription- Transcribe speechPOST /api/analyze/combined-sentiment- Comprehensive multimodal analysis
File Management Endpoints
POST /api/audio/upload- Upload audio filesPOST /api/photo/upload- Upload photosGET /api/audio/latest- Get latest audio fileGET /api/photo/latest- Get latest photos
Utility Endpoints
GET /api/health- Health check
๐งช Testing
Backend Testing
cd backend
poetry run python -c "from SoothSayer import SoothSayer; print('โ
Backend ready')"
Frontend Testing
cd frontend
npm test
๐ Troubleshooting
Common Issues
-
GROQ API Errors
- Verify your API key is correct
- Check your GROQ account balance
- Ensure you're using the correct model names
-
Camera Permission Issues
- Grant camera permissions in device settings
- Restart the Expo development server
-
Audio Recording Problems
- Check microphone permissions
- Ensure device is not in silent mode
- Restart the app if needed
-
Backend Connection Issues
- Verify backend is running on port 5001
- Check firewall settings
- Ensure correct API endpoints in frontend
Debug Mode
Enable detailed logging by setting environment variables:
export DEBUG=true
export LOG_LEVEL=DEBUG
๐ค Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Acknowledgments
- GROQ for providing fast AI inference
- Intel ISL for the MiDaS depth estimation models
- Expo for the excellent development platform
- React Native community for the robust mobile framework
๐ Support
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: your.email@example.com
๐ฎ Roadmap
- Voice Emotion Analysis - Analyze tone and pitch for emotional context
- Real-time Video Analysis - Continuous video sentiment analysis
- Machine Learning Models - Custom trained models for specific use cases
- Cloud Deployment - AWS/Azure deployment options
- Mobile App Stores - iOS App Store and Google Play Store releases
- Web Dashboard - Browser-based analysis interface
- API Documentation - Interactive API documentation with Swagger
- Multi-language Support - Internationalization for global users
Made with โค๏ธ by the SoothSayer Team
Analysis
View
Metric
- 16
- 8
- 7
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- JavaScriptIn code
- PythonIn code
- PyTorchIn code
- ReactIn code
- TypeScriptIn code
- FlaskClaimed
5 of 6 appear in the indexed code. 1 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
126 KB
Source files
31
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
leorporat/soothesayer
193 files ยท 16.7 MB ยท @ f394ebe
Structure
Interface
13 files ยท 7%Screens, components and styles rendered to the user.
Application logic
99 files ยท 51%Domain rules, services and shared utilities.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here โ open the file browser to check anything the diagram implies.
Languages
- TypeScript45%
- Python39%
- Markdown13%
- JavaScript3%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
frontend/package.json
npm ยท 38- @expo/ngrok
- @expo/vector-icons
- @react-native-community/slider
- @react-navigation/bottom-tabs
- @react-navigation/elements
- @react-navigation/native
- expo
- expo-av
- expo-blur
- expo-camera
- expo-constants
- expo-file-system
- expo-font
- expo-haptics
- expo-image
- expo-linear-gradient
- expo-linking
- expo-router
- +20 more
backend/pyproject.toml
pypi ยท 10- flask-cors
- flask[async]
- groq
- lmnt
- matplotlib
- opencv-python
- python-dotenv
- speechrecognition
- timm
- torch
Declared in the repositoryโs manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This projectโs features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.