--- title: Catherine's Catering Voice Simulator emoji: 🎤 colorFrom: blue colorTo: purple sdk: streamlit sdk_version: 1.37.1 app_file: app.py pinned: false license: mit short_description: Voice role-play simulator for business interviews --- # Catherine's Catering Voice Simulator A real-time, voice-to-voice interview simulator featuring Catherine, owner of Catherine's Catering. This application uses OpenAI's Realtime API to provide an interactive role-play experience for business consulting students. ## Features - **Voice-only interaction** using OpenAI's Realtime API over WebRTC - **Role-play simulation** with Catherine, a non-technical small business owner - **Time-limited sessions** (5 minutes per group) - **Group-based authentication** (groups 1-7) - **Real-time audio** with automatic voice detection ## How to Use 1. **Set up your OpenAI API key** in the Space's secrets 2. **Login** using group credentials (group1-group7, password same as username) 3. **Start a conversation** and speak directly to Catherine 4. **Interview Catherine** about her catering business challenges 5. **Session automatically ends** after 5 minutes ## Setup for Local Development 1. Create and activate a virtual environment: ```bash python -m venv .venv && source .venv/bin/activate ``` 2. Install dependencies: ```bash pip install -r requirements.txt ``` 3. Set your OpenAI API key: ```bash export OPENAI_API_KEY=sk-... ``` 4. Run the application: ```bash streamlit run app.py ``` ## Environment Variables - `OPENAI_API_KEY`: Your OpenAI API key with Realtime access - `OPENAI_REALTIME_MODEL`: Model to use (default: gpt-4o-realtime-preview-2024-12-17) - `OPENAI_VOICE`: Voice selection (default: shimmer) ## Technical Details - **Backend**: FastAPI server for token management - **Frontend**: Streamlit with embedded HTML client - **Audio**: WebRTC for real-time voice communication - **Authentication**: HTTP Basic Auth for group access - **Time Management**: 5-minute session limits per group ## Troubleshooting - Ensure microphone permissions are granted - Check that your OpenAI API key has Realtime access - Some corporate networks may block WebRTC connections - Verify the token server is running at the expected port