| --- |
| 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 |