Inspiration
The inspiration for the project came from the theme of the hackathon itself. Aimed towards "Protecting the Youth", the idea was to build a tool that would help students in their learning process. Since exams are a major part of a student's life, the aim was to help and make this process easier with the help of AI models. With ExamGPT, students can practice their answers or check their knowledge regarding a certain topic. It can be seen as a tool for mock oral examinations which will allow students to enhance their knowledge.
What it does
ExamGPT is a powerful tool that simplifies the process of conducting oral exams. It leverages the GPT-3.5 model from OpenAI to act as an interviewer, asking questions based on a provided topic. This project combines speech recognition, text-to-speech, and PDF handling to create a seamless oral exam experience.
Features
- Topic-Based Questions: Input a PDF document on the desired topic, and ExamGPT will generate relevant questions for the oral exam.
- Transcription: As the AI interviewer asks questions, the transcription of the speech will be displayed on the screen.
- Recording Responses: Easily record your responses by clicking the microphone icon. When you're done, stop recording.
- Text-to-Speech: ExamGPT uses the speechSynthesis library to convert text into speech for a natural conversational experience.
- Speech-to-Text: The project includes react-speech-recognition library to transcribe spoken responses.
How I Built It
I used a combination of different technologies and packages to build the ExamGPT.
Frontend:
- The front end was implemented using React, a popular JavaScript library known for its versatility and performance.
- Packages like React Speech Recognition and the speechSynthesis API enabled real-time speech-to-text and text-to-speech capabilities.
- The user interface was designed with a focus on simplicity and accessibility to ensure an intuitive experience for all users.
Backend:
- For the Backend, I used Node.js, providing a scalable and efficient server environment.
- The pdfjs-dist library was used to handle PDF documents, allowing extraction of text for question generation.
- The core of the product is the response that is being generated using the OpenAI GPT 3.5 model.
Challenges I ran into
There were a lot of challenges that I ran into. From extracting text from pdf to ensuring correct response from GPT mode. However, the major challenge that integrating text-to-speech and speech-to-text functionalities. Ensuring correct transcription of text was necessary for the success of the project.
Accomplishments that I am proud of
I am happy and proud that I was able to complete this project on time. My initial plan was to participate with a couple of my friends which can't happen due to some reasons. At the end, I am happy to be able to build a working AI tool that acts as an examiner and can help students going forward.
What I learned
During this project, I learned and implemented many new things that I hadn't done before. I learned to extract useful information from pdf provided by the user. Along with this, I learned to implement speech-to-text and text-to-speech functionalities for the first time. Also, working with the OpenAI GPT model was a great experience, and overall, I can say that working on this project has been great for me in terms of learning.
What's next for ExamGPT
There are a couple of things that I would like to improve in ExamGPT. Starting from the front end, I would like to further enhance the user interface and improve the design and make use of loading and animations. Along with it, I would like to provide a way for the user to download their conversation for future reference. Maybe I will look to connect it to the database to store the chats which will allow users to save their conversation.
Built With
- contextapi
- css
- express.js
- google-web-speech-api
- javascript
- node.js
- openapi
- pdf-dist
- react
Log in or sign up for Devpost to join the conversation.