Open-source Microsoft Teams app for voice & pronunciation training for non-English speakers.
Powered by Azure Speech SDK and Azure OpenAI.
Voice Trainer is a Microsoft Teams tab app that helps non-English speakers improve their English pronunciation through:
- ποΈ Real-time Pronunciation Assessment β Record yourself and get instant AI-powered feedback with accuracy, fluency, and phoneme-level scoring
- π Guided Lessons β Structured exercises targeting common pronunciation challenges (TH sounds, R/L, V/W, consonant clusters, and more)
- π Progress Dashboard β Track your improvement over time with score trends and practice streaks
- π€ AI Conversation Practice β Practice speaking in real-world scenarios with GPT-powered conversation partners
Microsoft Teams Client
βββ React Tab App (Fluent UI v9)
βββ Practice Panel (record β assess β feedback)
βββ Lessons Panel (browse β exercise β practice)
βββ Dashboard (scores β trends β history)
β
Node.js Backend (Express)
βββ Azure Speech SDK (pronunciation assessment)
βββ Azure OpenAI (conversation & feedback)
βββ Azure Cosmos DB (progress storage)
- Node.js v18+
- Teams Toolkit for VS Code (recommended)
- Azure subscription with:
-
Clone the repo
git clone https://github.com/VikrantSingh01/voice-trainer.git cd voice-trainer -
Install dependencies
npm install
-
Configure environment
cp env/.env.local.sample env/.env.local # Edit env/.env.local with your Azure credentials -
Run locally
npm run dev
This starts both the React frontend (port 3000) and Node.js backend (port 3001).
-
Open in Teams (optional)
- Open the project in VS Code with Teams Toolkit
- Press F5 to debug in Teams
Deploy the required Azure resources using the included Bicep template:
az deployment group create \
--resource-group your-resource-group \
--template-file infra/azure.bicep \
--parameters appName=voice-trainer| Layer | Technology |
|---|---|
| Teams Integration | Teams Toolkit v5, Teams JS SDK v2 |
| Frontend | React 18, TypeScript, Fluent UI v9 |
| Backend | Node.js, Express, TypeScript |
| Speech AI | Azure Speech SDK |
| Generative AI | Azure OpenAI (GPT-4o) |
| Infrastructure | Bicep, Azure App Service |
| CI/CD | GitHub Actions |
voice-trainer/
βββ appPackage/ # Teams app manifest
βββ infra/ # Azure Bicep templates
βββ src/
β βββ client/ # React frontend
β β βββ components/ # UI components
β β βββ hooks/ # Custom React hooks
β β βββ services/ # API client
β βββ server/ # Node.js backend
β βββ routes/ # Express routes
β βββ services/ # Business logic
βββ teamsapp.yml # Teams Toolkit config
βββ package.json
We welcome contributions! See CONTRIBUTING.md for guidelines.
- Fork the repo
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License β see the LICENSE file for details.