QuickVoiceBot is an AI-powered conversational voice bot that utilizes streaming speech-to-text, text-to-speech, and a large language model to engage in fast, fluid conversations. It provides a seamless voice interface for natural interactions.
- Real-time speech recognition using Deepgram's streaming API
- Natural-sounding text-to-speech powered by Deepgram
- Intelligent responses generated by a powerful language model (Groq or OpenAI)
- Streaming capabilities for fast, low-latency interactions
- Simple, easy-to-use conversation flow
-
Clone the repository:
git clone https://github.com/yourusername/QuickVoiceBot.git -
Install the required dependencies:
pip install -r requirements.txt -
Set up your API keys:
- Sign up for a Deepgram account and obtain an API key
- (Optional) Sign up for an OpenAI account and obtain an API key if using OpenAI's models
- Create a
.envfile in the project root and add your API keys:DEEPGRAM_API_KEY=your_deepgram_api_key OPENAI_API_KEY=your_openai_api_key
-
Run the bot:
python main.py
- Start the bot by running
main.py - Speak to the bot and it will respond with voice
- Say "goodbye" to end the conversation
- Adjust the language model settings in
main.py:- Choose between Groq and OpenAI models by uncommenting the appropriate lines
- Modify the model names and parameters as needed
- Customize the system prompt in
system_prompt.txtto define the bot's persona and behavior - Experiment with different Deepgram models for speech recognition and synthesis
main.py: Main entry point of the applicationsystem_prompt.txt: File containing the system prompt for the language modelrequirements.txt: List of required Python packagesbuilding_blocks/: Directory containing isolated components for inspectionspeech_to_text_streaming.py: Standalone example of streaming speech recognitiontext_to_speech.py: Standalone example of text-to-speechllm.py: Standalone example of using the language model
Contributions are welcome! If you find any issues or have suggestions for improvements, please open an issue or submit a pull request.
This project is licensed under the MIT License.