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
Log in or sign up for Devpost to join the conversation.