Skip to content

VikrantSingh01/voice-trainer

Repository files navigation

🎀 Voice Trainer

Open-source Microsoft Teams app for voice & pronunciation training for non-English speakers.

Powered by Azure Speech SDK and Azure OpenAI.

CI License: MIT


🎯 What is Voice Trainer?

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

πŸ—οΈ Architecture

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)

πŸš€ Getting Started

Prerequisites

Setup

  1. Clone the repo

    git clone https://github.com/VikrantSingh01/voice-trainer.git
    cd voice-trainer
  2. Install dependencies

    npm install
  3. Configure environment

    cp env/.env.local.sample env/.env.local
    # Edit env/.env.local with your Azure credentials
  4. Run locally

    npm run dev

    This starts both the React frontend (port 3000) and Node.js backend (port 3001).

  5. Open in Teams (optional)

    • Open the project in VS Code with Teams Toolkit
    • Press F5 to debug in Teams

Azure Resource Setup

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

πŸ› οΈ Tech Stack

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

πŸ“ Project Structure

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

🀝 Contributing

We welcome contributions! See CONTRIBUTING.md for guidelines.

  1. Fork the repo
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License β€” see the LICENSE file for details.

πŸ™ Acknowledgments

About

🎀 Open-source Microsoft Teams app for voice & pronunciation training for non-English speakers. Powered by Azure Speech SDK & Azure OpenAI.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors