{"id":26354450,"url":"https://github.com/codecat1111/gemini-interview-assistant","last_synced_at":"2026-05-21T10:05:54.296Z","repository":{"id":282571131,"uuid":"949013032","full_name":"codecat1111/Gemini-Interview-Assistant","owner":"codecat1111","description":"A web-based tool that helps users prepare and practice for technical interviews using AI-powered feedback.","archived":false,"fork":false,"pushed_at":"2025-03-15T13:49:37.000Z","size":0,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-15T14:32:00.984Z","etag":null,"topics":["assistant","gemini","interview","whisper"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/codecat1111.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-15T13:33:48.000Z","updated_at":"2025-03-15T13:51:50.000Z","dependencies_parsed_at":"2025-03-15T14:42:02.127Z","dependency_job_id":null,"html_url":"https://github.com/codecat1111/Gemini-Interview-Assistant","commit_stats":null,"previous_names":["codecat1111/gemini-interview-assistant"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codecat1111%2FGemini-Interview-Assistant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codecat1111%2FGemini-Interview-Assistant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codecat1111%2FGemini-Interview-Assistant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codecat1111%2FGemini-Interview-Assistant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codecat1111","download_url":"https://codeload.github.com/codecat1111/Gemini-Interview-Assistant/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243864824,"owners_count":20360360,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["assistant","gemini","interview","whisper"],"created_at":"2025-03-16T12:17:35.228Z","updated_at":"2026-05-21T10:05:54.290Z","avatar_url":"https://github.com/codecat1111.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚀 Gemini Powered Mock Interview Assistant\n\nA web-based tool that helps users prepare and practice for technical interviews using AI-powered feedback. 🎯💡\n\n![Gemini-Interview-Assistant](assets/images/Gemini_Interview_Assistant.png)\n---\n\n## 🌟 Features\n\n✅ **Real-time audio recording \u0026 transcription** 🎤📝  \n✅ **AI-powered analysis of interview responses** 🤖📊  \n✅ **Two modes of operation:**\n\n- 🎯 **AI Analysis Only**: Get immediate feedback 🔥\n- 🔄 **Compare Mode**: Practice your answer first, then compare with AI analysis \n- ✅ **Session management with history tracking**  \n- ✅ **Support for role-specific \u0026 job description context** 👨‍💻📄\n\n---\n\n## 🔧 Prerequisites\n\n🛠 **System Requirements:**\n\n-  Python **3.8+**\n-  **PyTorch \u0026 TorchAudio**\n-  **Transformers library**\n-  **Google Cloud API key for Gemini AI**\n-  **Virtual audio cable (VB-CABLE)**\n-  **Internet connection for AI services**\n-  **Windows OS (for VB-CABLE setup)**\n\n---\n\n## 🏗️ Setup\n\n### 1️⃣ Clone the Repository\n\n```bash\n git clone https://github.com/codecat1111/Gemini-Interview-Assistant.git\n cd Interview-Assistance\n```\n\n### 2️⃣ Install Dependencies\n\n```bash\npip install -r requirements.txt\n```\n\n### 3️⃣ Configure Virtual Audio Cable 🎧\n\n- Install a **virtual audio cable** software\n- Set **audio output** to \"CABLE Input\"\n\n### 4️⃣ Set Up API Key 🔑\n\n```bash\n# Create .env file and add your Gemini API key\necho \"GOOGLE_API_KEY=your_gemini_api_key_here\" \u003e .env\n```\n\n---\n\n## 🚀 Usage\n\n1️⃣ **Start the Gemini Analyzer Server** (in a new terminal):\n\n```bash\npython gemini_analyzer.py\n```\n\n2️⃣ **Start the Flask Server** 🌐:\n\n```bash\npython main.py\n```\n\n3️⃣ **Open in Browser**: `http://localhost:5000` 🌍\n\n4️⃣ **Enter job role \u0026 description** ✍️\n\n5️⃣ **Choose Your Mode** 🎙️:\n\n- **AI Analysis Only**: Click \"Start Recording\" 📢\n- **Compare Mode**: Record your answer, then click \"Show AI Analysis\" 🧐\n\n---\n\n## 🔎 Features in Detail\n\n### 🎙️ **Recording Controls**\n\n- **Start/Stop Recording** button ⏺️\n- **New Recording** button for multiple attempts 🔄\n- **Reset Session** button to clear history 🗑️\n\n### 📊 **Analysis Options**\n\n- **Real-time transcription** \n- **AI-powered feedback** \n- **Compare Mode for self-assessment** \n- **Session history tracking** \n\n### 📜 **History Feature**\n\n- 🆕 \"Start Recording (No History)\" - Begins a new recording without considering previous responses\n- 🔄 \"New Recording (With History)\" - Saves the current analysis to history before starting a new recording\n- 📝 **History is automatically included in AI analysis for context**\n- 🗑️ **Reset Session button clears all history**\n\n### 🎨 **Theme Support**\n\n- 🌞 **Light Mode** / 🌙 **Dark Mode** toggle\n- 🎨 **Theme preference is saved automatically**\n-  **Accessible color schemes for better readability**\n\n## Project Demo\n\n[📽️ Watch the Demo on YouTube](https://www.youtube.com/watch?v=gU2my0yqVQY)\n\n\nThis video demonstrates:\n\n- Setting up role and job description\n- Recording and analyzing responses\n- Using AI Analysis Only mode\n- Using Compare mode\n- Managing interview history\n- Theme switching\n\n---\n\n## 🎤 Model Setup\n\n###  **Loading the Whisper Model**\n\nThe application uses the **Whisper-Tiny** model for speech transcription. On first run, the model will be **automatically downloaded** from Hugging Face.\n\n```python\n# Initialize Whisper model\nprocessor = AutoProcessor.from_pretrained(\"openai/whisper-tiny\")\nmodel = AutoModelForSpeechSeq2Seq.from_pretrained(\"openai/whisper-tiny\")\n```\n\n---\n\n## 🎧 Virtual Audio Cable Setup\n\n### 1️⃣ **Setting Up VB-Audio Virtual Cable**\n\nThis project uses **VB-Audio Virtual Cable** to capture system audio and process live transcriptions.\n\n#### 🔽 **Installation**\n\n- Download [VB-Audio Virtual Cable](https://vb-audio.com/Cable/)\n- Run `VBCABLE_Setup_x64.exe` (for 64-bit systems)\n- Restart your computer 🔄\n\n#### 🎚 **Configuration**\n\n1. Open **Sound Settings** (Win + I → \"Sound\")\n2. **Set \"CABLE Input (VB-Audio Virtual Cable)\" as default output**\n3. **Select \"CABLE Output (VB-Audio Virtual Cable)\" as microphone input**\n4. (Optional) Use **VoiceMeeter Banana** for advanced routing 🎛️\n\n---\n\n## 🎤 System Audio Capture Implementation\n\n### 🎧 **Virtual Cable Device Detection**\n\n```python\ndef find_vb_audio_device():\n    \"\"\"Finds VB-Audio Virtual Cable device ID\"\"\"\n    devices = sd.query_devices()\n    for i, device in enumerate(devices):\n        if \"CABLE Output\" in device[\"name\"]:\n            return i\n    return None\n```\n\n### 🎙 **Audio Recording System**\n\n```python\nclass SystemAudioRecorder:\n    def __init__(self):\n        self.sample_rate = 16000\n        self.recording = False\n        self.audio_data = []\n\n    def start_recording(self):\n        device_id = find_vb_audio_device()\n        if device_id is None:\n            raise RuntimeError(\"VB-Audio Virtual Cable not found!\")\n\n        self.recording = True\n        self.audio_data = []\n\n        def audio_callback(indata, frames, time, status):\n            if self.recording:\n                self.audio_data.append(indata.copy())\n\n        self.stream = sd.InputStream(\n            device=device_id,\n            channels=1,\n            samplerate=self.sample_rate,\n            callback=audio_callback\n        )\n        self.stream.start()\n\n    def stop_recording(self):\n        self.recording = False\n        self.stream.stop()\n        self.stream.close()\n        audio_data = np.concatenate(self.audio_data, axis=0)\n        filename = \"recorded_audio.wav\"\n        sf.write(filename, audio_data, self.sample_rate)\n        return filename\n```\n\n---\n\n## 🛠 Troubleshooting Virtual Audio Cable\n\n⚠ **No Audio Detected?**\n\n- ✅ Verify **\"CABLE Input\"** is set as **default playback device**\n- ✅ Check **\"CABLE Output\"** is selected as **recording input**\n- ✅ Ensure **system volume is not muted**\n\n⚠ **Device Not Found?**\n\n- 🔄 Restart the **VB-Audio service**\n- 🔄 Reinstall the **drivers**\n- 🔍 Check **Device Manager** for warning icons\n\n⚠ **Poor Audio Quality?**\n\n- 🎚 Ensure **sample rate settings match (16000 Hz)**\n- 🔍 Check **CPU usage**\n- 🚀 Close **unnecessary audio applications**\n\n## Virtual Audio Cable Setup Demo\n\n[📽️ Watch the Audio Cable Setup on YouTube](https://www.youtube.com/watch?v=7wr8EVFtABM)\n\n\nThis video covers:\n\n- Installing VB-Cable\n- Configuring Windows audio settings\n- Testing the virtual audio setup\n- Troubleshooting common issues\n\n---\n\n## 💡 Contributing\n\n1️⃣ **Fork the Repository** 🍴\n\n2️⃣ **Create a Feature Branch** (`git checkout -b feature/AmazingFeature`)\n\n3️⃣ **Commit Your Changes** (`git commit -m 'Add AmazingFeature'`)\n\n4️⃣ **Push to Branch** (`git push origin feature/AmazingFeature`)\n\n5️⃣ **Open a Pull Request** \n\n---\n\n## ⭐ Found It Helpful? [Star It!](https://github.com/codecat1111/Gemini-Interview-Assistant/stargazers) ⭐\n\n---\n\n## 📜 License\n\nThis project is licensed under the **MIT License** - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodecat1111%2Fgemini-interview-assistant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodecat1111%2Fgemini-interview-assistant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodecat1111%2Fgemini-interview-assistant/lists"}