Skip to content

ajitreddy013/TalkAR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

TalkAR - AR-Powered Talking Head App

An innovative AR-powered mobile application that recognizes images and generates lip-synced talking heads in the user's chosen language, creating immersive interactive experiences.

🎯 App Vision

TalkAR revolutionizes how users interact with static images by bringing them to life through AR technology. When users point their camera at recognized images (posters, advertisements, educational materials), the app generates realistic talking head avatars that speak in their preferred language, creating engaging and personalized experiences.

Core Value Proposition

  • Immersive AR Experience: Transform static images into interactive talking heads
  • Multi-language Support: Break language barriers with real-time translation and voice synthesis
  • Educational & Marketing Applications: Perfect for museums, retail, education, and advertising
  • Accessibility: Make content accessible to users with different language preferences

πŸ—οΈ Project Structure

TalkAR/
β”œβ”€β”€ mobile-app/          # Android AR app (Kotlin + ARCore)
β”‚   β”œβ”€β”€ app/
β”‚   β”‚   β”œβ”€β”€ src/main/java/com/talkar/app/
β”‚   β”‚   β”‚   β”œβ”€β”€ data/           # Data layer (API, local DB)
β”‚   β”‚   β”‚   β”œβ”€β”€ ui/             # UI components and screens
β”‚   β”‚   β”‚   └── viewmodels/     # Business logic
β”‚   β”‚   └── build.gradle        # ARCore + Compose setup
β”‚   └── build.gradle
β”œβ”€β”€ backend/            # Node.js/TypeScript API
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ config/     # Database configuration
β”‚   β”‚   β”œβ”€β”€ middleware/ # Auth, validation, error handling
β”‚   β”‚   β”œβ”€β”€ models/      # Data models
β”‚   β”‚   β”œβ”€β”€ routes/      # API endpoints
β”‚   β”‚   └── services/    # Business logic services
β”‚   └── package.json
β”œβ”€β”€ admin-dashboard/    # React TypeScript dashboard
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/ # Reusable UI components
β”‚   β”‚   β”œβ”€β”€ pages/      # Dashboard pages
β”‚   β”‚   β”œβ”€β”€ services/   # API integration
β”‚   β”‚   └── store/      # Redux state management
β”‚   └── package.json
β”œβ”€β”€ docs/              # Comprehensive documentation
β”‚   β”œβ”€β”€ API.md         # API documentation
β”‚   └── SETUP.md       # Development setup guide
└── docker-compose.yml # Container orchestration

✨ Key Features

Mobile App (Android)

  • AR Image Recognition: ARCore-powered image detection and tracking
  • Real-time AR Overlay: Seamless 3D talking head rendering
  • Multi-language Support: Dynamic language switching
  • Offline Capability: Cached content for offline usage
  • Modern UI: Jetpack Compose with Material Design 3

Backend API

  • RESTful API: Comprehensive endpoints for image and dialogue management
  • Sync API Integration: Lip-sync video generation
  • Cloud Storage: AWS S3 integration for media assets
  • Authentication: JWT-based secure access
  • Analytics: Usage tracking and insights

Admin Dashboard

  • Content Management: Upload and manage images and dialogues
  • Analytics Dashboard: Usage statistics and insights
  • Multi-language Editor: Manage content in multiple languages
  • User Management: Admin access control

πŸ› οΈ Tech Stack

Mobile App (Android)

  • Language: Kotlin
  • AR Framework: ARCore 1.41.0
  • UI Framework: Jetpack Compose
  • Networking: Retrofit 2.9.0 + OkHttp
  • Image Loading: Coil 2.5.0
  • Architecture: MVVM with Repository pattern
  • Min SDK: 24 (Android 7.0)
  • Target SDK: 34 (Android 14)

Backend API

  • Runtime: Node.js 18+
  • Language: TypeScript 5.3.3
  • Framework: Express.js 4.18.2
  • Database: PostgreSQL with Sequelize ORM
  • Authentication: JWT with bcryptjs
  • File Storage: AWS S3 SDK
  • Validation: Joi 17.11.0
  • Security: Helmet, CORS

Admin Dashboard

  • Framework: React 18.2.0 + TypeScript
  • UI Library: Material-UI 5.15.0
  • State Management: Redux Toolkit 2.0.1
  • Routing: React Router DOM 6.20.1
  • Forms: React Hook Form 7.48.2
  • HTTP Client: Axios 1.6.2

External Services

  • Sync API: Lip-sync video generation
  • AWS S3: Cloud storage for images and videos
  • PostgreSQL: Primary database
  • Docker: Containerization and orchestration

πŸš€ Quick Start

Prerequisites

  • Node.js 18+ and npm
  • Android Studio (latest version)
  • Docker and Docker Compose
  • PostgreSQL (or use Docker)
  • AWS S3 account
  • Sync API account

1. Clone and Setup

git clone <repository-url>
cd TalkAR

2. Environment Configuration

# Backend environment
cp backend/env.example backend/.env
# Edit backend/.env with your configuration

# Admin dashboard environment
echo "REACT_APP_API_URL=http://localhost:3000/api/v1" > admin-dashboard/.env

# Root environment (for Docker)
cp .env.example .env
# Edit .env with your configuration

3. Start with Docker (Recommended)

docker-compose up -d

4. Manual Development Setup

# Backend
cd backend && npm install && npm run dev

# Admin Dashboard
cd admin-dashboard && npm install && npm start

# Mobile App
# Open mobile-app/ in Android Studio

πŸ“± Development Environments

Android Studio Setup

  1. Install Android Studio (latest version)
  2. Configure ARCore:
    • Install ARCore SDK
    • Enable ARCore in project settings
    • Configure device for AR testing
  3. Import Project: Open mobile-app/ directory
  4. Sync Dependencies: Gradle sync will install ARCore and Compose dependencies

Node.js Backend Setup

  1. Install Node.js 18+
  2. Install Dependencies: npm install
  3. Database Setup: Configure PostgreSQL connection
  4. Environment Variables: Set up .env file
  5. Development Server: npm run dev

React Dashboard Setup

  1. Install Dependencies: npm install
  2. Environment Configuration: Set API URL
  3. Development Server: npm start
  4. Access: http://localhost:3001

Firebase/Firestore Setup

  1. Create Firebase Project
  2. Enable Firestore Database
  3. Configure Authentication
  4. Update Environment Variables

πŸ”§ API Integration

Sync API

  • Purpose: Generate lip-synced talking head videos
  • Integration: RESTful API calls for video generation
  • Authentication: API key-based access
  • Features: Multiple voice options, language support

ARCore Integration

  • Image Tracking: Recognize and track reference images
  • 3D Rendering: Overlay talking head models
  • Performance: Optimized for mobile devices
  • Compatibility: Android 7.0+ with ARCore support

Cloud Storage

  • AWS S3: Store images, videos, and assets
  • CDN Integration: Fast content delivery
  • Security: Secure access controls

πŸ”’ Security Best Practices

Environment Variables and Secrets Management

This project uses environment variables to manage sensitive configuration data. Never commit actual secrets to the repository.

Docker Development

For local development with Docker, use the .env file:

  1. Copy .env.example to .env:

    cp .env.example .env
  2. Edit .env with your actual values (never commit this file)

  3. Docker Compose will automatically load these variables

Manual Development

For manual development setup:

  1. Backend:

    cd backend
    cp env.example .env
    # Edit .env with your configuration
  2. Frontend:

    cd admin-dashboard
    echo "REACT_APP_API_URL=http://localhost:3000/api/v1" > .env

Secret Rotation

  • Rotate JWT secrets periodically
  • Rotate AWS credentials using IAM roles where possible
  • Update Sync API keys through their dashboard
  • Change database passwords regularly

πŸ“š Documentation

  • Setup Guide: Comprehensive development setup
  • API Documentation: Complete API reference
  • Architecture: MVVM pattern with clean separation
  • Deployment: Docker-based containerization

🎯 Phase 1 Deliverables βœ…

  • βœ… Repository Structure: Monorepo with organized folders
  • βœ… Tech Stack Definition: Complete technology specifications
  • βœ… Development Environments: Setup guides for all platforms
  • βœ… Documentation: Comprehensive README and setup guides
  • βœ… Project Architecture: Clean, scalable code organization

πŸš€ Enhanced AR Development Roadmap

Current Status (Week 1)

  • βœ… TalkAR Enhanced Development Branch: Created and ready
  • βœ… AR Components: Multiple AR implementations ready for testing
  • βœ… Backend Integration: Complete API system functional
  • βœ… Device Testing: Samsung A35 ready for development

Week 1 Deliverables

  • Device Setup: Samsung A35 connected and tested
  • AR Component Testing: All existing AR components verified
  • Performance Baseline: AR performance metrics established
  • Documentation: Enhanced AR development roadmap documented

Upcoming Enhanced Features (Weeks 2-8)

  • 3D Avatar System: Interactive 3D avatars with full body movement
  • Voice Commands: Natural language processing and voice recognition
  • Product Interaction: AR shopping and product manipulation
  • High-Fidelity Rendering: Photorealistic 3D rendering with advanced lighting
  • Mobile Optimization: Enhanced ARCore stability and offline caching

πŸ”„ Next Steps

Ready for Enhanced AR Development Phase

  • Test existing AR components on Samsung A35
  • Implement 3D avatar system
  • Add voice command integration
  • Develop product interaction features
  • Optimize AR performance for production

About

AR-Powered Talking Head App - Monorepo with Android, Backend, and Admin Dashboard

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published