This is an innovative AI-powered web application designed to provide personalized and accessible speech therapy for individuals who stutter. It leverages cutting-edge technologies like natural language processing (NLP), machine learning (ML), and speech recognition to offer a comprehensive suite of tools and resources for improving fluency and communication skills.
- Real-time Speech Analysis: Provides real-time feedback on speech patterns, including fluency, speaking rate, articulation, and voice quality.
- AI Speech Coach: Offers interactive conversations with an AI-powered speech coach for practicing various communication scenarios.
- Fluency Shaping Exercises: Guides users through evidence-based fluency shaping techniques with personalized feedback and progress tracking.
- Educational Resources: Provides access to a library of articles, videos, and interactive exercises on stuttering and fluency management.
- Personalized Progress Tracking: Tracks fluency scores, achievements, and personalized insights to monitor progress and set goals.
- Gamified Learning: Incorporates gamification elements like badges and rewards to enhance motivation and engagement.
- Secure and Private: Ensures user data privacy and security with robust authentication and encryption measures.
- Frontend: React, Redux, Material-UI, Web Speech API, TensorFlow.js
- Backend: Node.js, Express, GraphQL, Apollo Server, MongoDB, Redis
- AI/ML: Python, TensorFlow, PyTorch, Transformers, Librosa, Kaldi
- DevOps: Docker, Kubernetes, AWS (S3, EC2, Lambda, CloudFront), CI/CD (Travis CI, GitHub Actions)
The StutterOn platform follows a microservices architecture, with separate services for user management, speech analysis, AI model training, and data storage. This allows for scalability, maintainability, and independent deployment of different components.
- Client Application: A React-based single-page application (SPA) that interacts with the backend API and provides the user interface.
- API Gateway: An Express.js server that acts as an API gateway, routing requests to different microservices.
- User Service: Manages user authentication, authorization, and profile information.
- Speech Analysis Service: Performs real-time speech analysis using NLP and ML models.
- AI Model Training Service: Trains and deploys AI models for speech recognition, fluency prediction, and other tasks.
- Data Storage: Uses MongoDB for storing user data, session data, and progress information. Redis is used for caching and queuing tasks.
- Clone the repository:
git clone https://github.com/your-username/stutteron.git
- Install dependencies:
- Client:
npm install --prefix client
- Server:
npm install --prefix server
- Client:
- Configure environment variables:
- Create
.env
files in bothclient
andserver
directories. - Set the required environment variables (see
.env.example
files for reference).
- Create
- Start the development servers:
- Client:
npm start --prefix client
- Server:
npm start --prefix server
- Client:
- Client:
npm test --prefix client
- Server:
npm test --prefix server
The deployment process is automated using a CI/CD pipeline (e.g., Travis CI, GitHub Actions). The pipeline builds the application, runs tests, and deploys the code to the production environment (e.g., AWS).
- Client: Deployed to an S3 bucket and served via CloudFront.
- Server: Deployed to EC2 instances or containerized using Docker and Kubernetes.
Contributions are welcome! Please follow these guidelines:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Write clear and concise code with comprehensive tests.
- Submit a pull request with a detailed description of your changes.
This project is licensed under the MIT License - see the LICENSE file for details.
- We acknowledge the use of open-source libraries and tools that have made this project possible.
- We thank the contributors who have helped improve StutterOn.
For any questions or feedback, please contact us at [email address removed]