A newer version of the Streamlit SDK is available: 1.62.0
metadata
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
- Set up your OpenAI API key in the Space's secrets
- Login using group credentials (group1-group7, password same as username)
- Start a conversation and speak directly to Catherine
- Interview Catherine about her catering business challenges
- Session automatically ends after 5 minutes
Setup for Local Development
Create and activate a virtual environment:
python -m venv .venv && source .venv/bin/activateInstall dependencies:
pip install -r requirements.txtSet your OpenAI API key:
export OPENAI_API_KEY=sk-...Run the application:
streamlit run app.py
Environment Variables
OPENAI_API_KEY: Your OpenAI API key with Realtime accessOPENAI_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