ScenarioLingo-Trainer

Inspiration

As newcomers to Canada, we experienced the "deer-in-headlights" moment when a simple coffee order turned confusing. Traditional language apps failed to prepare us for real-world messiness - the interruptions, accents, and unexpected questions. We built ScenarioLingo-Trainer to recreate those authentic, uncomfortable moments in a safe practice environment.

What it does

An AI coach that:

  • ๐ŸŽฏ Simulates 50+ Canadian daily scenarios (from Tim Hortons to doctor visits)
  • โšก Injects realistic complications (e.g., payment errors, misunderstood orders)
  • ๐Ÿ“Š Identifies struggle patterns through hesitation detection
  • ๐Ÿ” Creates personalized review sessions from recorded challenges

How we built it

Core Architecture:

graph TB
    A[User] --> B(Mode Selector Agent)
    B --> C{Random/Custom/Review}
    C --> D[Scenario Generator]
    C --> E[SQLite Database]
    D --> F[Conversation Agent]
    F --> G[Accident Engine]
    G --> H[Struggle Detector]

## Challenges we ran into
### Multi-Agent System Challenges
**Agent Handoff Complexity**
```python
#### Problem: State loss during transitions
mode_agent --> scenario_agent  # State attributes sometimes dropped
#### Solution: Implemented session snapshots
def transfer_state(source, target):
    target.session_state = source.session_state.deepcopy()
    target.context = source.context.preserve()

## Accomplishments that we're proud of
### Our First ADK Adventure ๐Ÿš€
As complete beginners to Google's Agent Development Kit, we:
- **Self-taught through**:
  - ๐Ÿ“š Official ADK documentation (read cover-to-cover 3 times!)
  - โ–ถ๏ธ Every available YouTube tutorial
  - ๐Ÿงช Countless failed experiments

## What we learned
### The Power of Persistence
- **ADK's Learning Curve**  
  Went from zero to functional prototype in 3 weeks through:  
  - 127 failed test runs  
  - 42 hours of documentation study  
  - Countless "why isn't this working?!" moments  

## What's next for ScenarioLingo-Trainer
### Immediate Roadmap

**1. Accent Simulation using Google TTS**
- Integrate Google Cloud Text-to-Speech API
- Support for 3 Canadian regional accents:
  - Quebecois French accent
  - East Coast maritime accent
  - Prairie English dialect
- Real-time pronunciation feedback system

**2. Scenario Difficulty Scoring**
```python
def calculate_difficulty(scenario):
    base = 5  # Default medium difficulty
    if 'emergency' in scenario.tags:
        base += 3 
    if 'slang' in scenario.tags:
        base += 2
    return min(base, 10)  # Scale of 1-10

Built With

Share this project:

Updates