Experience the future of companionship with an AI-powered 3D virtual chatbot. Engage in lifelike conversations, enjoy emotional interactions, and immerse yourself in a hyper-realistic experience. With stunning visuals, adaptive intelligence, and a natural voice, your virtual companion is just a chat away! 💕
This is the frontend service for the Virtual Girlfriend application. It provides a user interface for interacting with the virtual avatar, supporting real-time chat, audio playback, and lip-sync animations.
- Chat Interface: Allows users to send and receive messages.
- Audio Playback: Plays generated speech from the backend.
- Lip-Syncing: Displays avatar animations based on audio responses.
- Facial Expressions and Animations: Enhances interactivity with dynamic visuals.
- Node.js (v16 or higher)
- React.js (latest version)
- A running instance of the Virtual Girlfriend backend
- Clone the repository:
git clone https://github.com/satyamshorrf/virtual-girlfriend.git cd frontend - Install dependencies:
npm install
- Create a
.envfile in the frontend directory and add the backend API URL:REACT_APP_BACKEND_URL=http://localhost:3000
npm startThe frontend will run on http://localhost:5173 (or another port if specified).
Runs the app in development mode.
Builds the app for production.
Runs the test suite.
This is the backend service for the Virtual Girlfriend application. It handles chat interactions, audio generation, and lip-syncing for the virtual avatar.
- Chat Integration: Uses OpenAI's GPT-3.5-turbo for generating conversational responses.
- Text-to-Speech: Converts text responses into audio using the ElevenLabs API.
- Lip-Syncing: Generates lip-sync data for the avatar using Rhubarb Lip Sync.
- Facial Expressions and Animations: Supports dynamic facial expressions and animations for the avatar.
- Node.js (v16 or higher)
- API keys for:
- OpenAI
- ElevenLabs
- Ensure
ffmpegandrhubarbare installed and available in your system's PATH.
- Clone the repository:
git clone https://github.com/satyamshorrf/virtual-girlfriend.git cd backend - Install dependencies:
npm install
- Create a
.envfile in the backend directory and add the following:OPENAI_API_KEY=your_openai_api_key ELEVEN_LABS_API_KEY=your_elevenlabs_api_key
npm run devThe server will run on http://localhost:3000.
Returns a simple "Hello World!" message.
Fetches available voices from the ElevenLabs API.
Handles chat requests. Accepts a JSON payload:
{
"message": "Hello!",
"user_id": "12345"
}Returns a JSON response with text, audio, lip-sync data, facial expressions, and animations.
Use nodemon for hot-reloading during development:
npm install -g nodemon
nodemon index.jsThis project is licensed under the MIT License.
Thank you for considering contributing to this project! We welcome contributions from everyone. Please follow the guidelines below to ensure smooth collaboration.
-
Fork the Repository: Click on the
Forkbutton at the top-right corner of the repository page to create a copy of the repository in your GitHub account. -
Clone Your Fork: Clone your fork to your local machine using:
git clone https://github.com/satyamshorrf/virtual-girlfriend.git
-
Create a Branch: Create a new branch for your changes:
git checkout -b feature-branch
-
Make Changes: Implement your changes or improvements.
-
Commit Your Changes: Write a clear commit message:
git commit -m "Added feature XYZ" -
Push to Your Fork: Push the branch to your forked repository:
git push origin feature-branch
-
Submit a Pull Request: Go to the original repository and open a Pull Request (PR) with a clear description of the changes you made.
- Be respectful to other contributors.
- Follow the project's coding standards.
- Keep commits and pull requests well-documented.
If you find any bugs or issues, please open an issue in the repository and describe the problem clearly.
We appreciate all contributions! If you contribute, feel free to add your name below:
By contributing to this project, you agree that your contributions will be licensed under the project's existing license.
Thank you for your contributions! 🚀

