VocaVoice is an AI-powered vocabulary learning tool that generates podcast-style episodes tailored to your language level, voice preference, and chosen topic. Built with CrewAI, OpenAI, and Streamlit.
video.mp4
- You are an A2-level English learner and select English as your language.
- You choose the topic "Technology", pick a calm voice, and provide your personal vocabulary list.
- VocaVoice generates a podcast script, simplifies it based on your level, and produces an audio version for listening practice.
- 🧠 AI-generated scripts based on your selected topic and level
- 📜 Simplified vocabulary explanations
- 🎤 Text-to-speech podcast creation
- 📂 Auto-organized outputs (scripts + audio)
- 🌐 Web UI via Streamlit for non-technical users
vocavoice/
├── src/
│ └── vocavoice/
│ ├── config/ # Configuration files
│ ├── tools/ # Assistant tools
│ ├── ui/ # User interface components
│ ├── crew.py # CrewAI configuration
│ ├── main.py # Main application
│ └── ui_vocavoice.py # Streamlit interface
├── tests/ # Test files
├── pyproject.toml # Project dependencies
└── README.md- Python >=3.10 <3.13
- UV (Dependency Management)
First, install UV:
❯ pip install uvNavigate to your project directory and install dependencies:
# Clone the repository
❯ git clone https://github.com/serkanyasr/vocavoice
❯ cd vocavoice
# Install dependencies
❯ uv tool install crewai
❯ crewai installAdd your OPENAI_API_KEY to the .env file
- Modify
src/vocavoice/config/agents.yamlto define your agents - Modify
src/vocavoice/config/tasks.yamlto define your tasks - Modify
src/vocavoice/crew.pyto add your own logic, tools and specific args - Modify
src/vocavoice/main.pyto add custom inputs for your agents and tasks
To start your VocaVoice agents and begin task execution, run this from the root folder:
❯ crewai runThis command initializes the VocaVoice crew, assembling the agents and assigning them tasks as defined in your configuration.
❯ streamlit run src/vocavoice/ui/streamlit_ui.pyThe VocaVoice crew consists of multiple AI agents, each with unique roles, goals, and tools. These agents collaborate on a series of tasks, defined in config/tasks.yaml, leveraging their collective skills to achieve complex objectives. The config/agents.yaml file outlines the capabilities and configurations of each agent in your crew.
- Fork the repo and create feature branches
- Submit a PR with a description of your changes
- Tag @serkanyasr in issues or PRs
This project is licensed under the MIT License. For more details, refer to the LICENSE file.