A professional bilingual (Chinese/English) interview simulator for self-training, supporting real-time question addition/removal, standard answer display, and macOS system voice reading ("say" command), with persistent local storage and a user-friendly GUI.
- Bilingual Support: Switches seamlessly between Chinese and English interview question sets
- macOS Voice Reading: Uses the native
saycommand for question/answer reading with multiple voice options - Easy Question Management: Add and delete questions and standard answers with just a click
- Persistent Storage: All questions and answers are saved automatically to
questions.json - Professional UI: Clean, intuitive interface built with Tkinter
- Instant Standard Answers: One-click display of reference answers
- Auto Save & Recovery: Automatically saves your progress and question bank
- macOS (for voice function support)
- Python 3.7 or higher
- Required Python packages:
No additional packages required for core features.
tkinter (standard with Python on macOS)
- Clone the repository:
git clone https://github.com/shendengtech/Chinese-English-Interview-Simulator/blob/main/interview-simulator.py- (Optional but recommended) Create and activate a Python virtual environment:
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate (not recommended, voice not supported)- Run the application:
python3 interview-simulator.py- On first launch, the app will create a sample
questions.jsonif none exists. - Select your preferred language (Chinese/English) and voice.
- Add new questions and answers in either language.
- Use the "Read Question" and "Read Standard Answer" buttons for macOS system voice reading.
- Display standard answers instantly or delete current questions as needed.
- All changes are saved automatically.
- The question bank is stored in
questions.jsonin the app directory. - Default voices for Chinese: Tingting, Shanshan, Meijia, Sinji, etc.
- Default voices for English: Samantha, Daniel, Moira, Tessa, etc.
- Add or update voices in the
self.voice_optionsdictionary inmain.py. - Maximum number of questions is unlimited.
- Python 3.x
- Tkinter for GUI
saycommand for macOS voice synthesis- JSON for local storage
- Uses
subprocess.Popento callsaywith selected voice - Supports adjustable speed and interruption (stop button)
- Only available on macOS
- All questions and answers are saved in
questions.json, UTF-8 encoded - Automatic save on every add/delete and when closing the window
- User input validation for empty questions/answers
- Friendly warnings and confirmations for deletion
- Graceful recovery from file read/write errors
- Fork the repository
- Create a new feature branch:
git checkout -b feature/your-feature- Commit your changes:
git commit -am 'Add your feature'- Push to your branch:
git push origin feature/your-feature- Submit a pull request
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
- Voice technology provided by macOS
say - Built with Python and Tkinter
For support:
- Check the Issues page
- Open a new issue if your problem is not listed
- Please include error messages and relevant environment details
Last updated: 2025-05-19