malthee / patter-pal

Simluated Personal Language Teacher with LLM, TTS and STT
MIT License
4 stars 2 forks source link
asp-net-core azure azure-app-service azurespeech cosmosdb csharp css html5 javascript openai rest-api websockets

PatterPal - Personal Language Teacher

This project is a submission for the Microsoft AI Classroom Hackathon.

PatterPal Screenshot

Immerse yourself in language learning: Talk freely on your chosen topics, get live feedback, and engage with a smart conversation partner in multiple languages. Learn your way with PatterPal!

How it works

PatterPal is a web application that allows you to practice your speaking skills in a foreign language. It's like having a language teacher just for yourself. PatterPal will listen to you and give you feedback on your pronunciation and fluency, while also talking with you about your chosen topic.

Technologies

 

C# Microsoft Azure websocket REST JavaScript HTML CSS GitHub PatterPal

Project Team

We are based in Austria and currently studying Software Engineering at the University of Applied Sciences Upper Austria.

Members:

Testing Instructions

Visit https://patter-pal.azurewebsites.net

Login:

PatterPal Login

Select a language of your choice and click the round button that resembles a microphone.

PatterPal Language Select

If this is your first visit (or depending on your browser settings), you will need to allow the website to use your microphone.

Microphone Permissions

Click the 🎙️ button and start talking. A few seconds after speaking, your spoken text will gradually show up. The recording will stop after some moments of silence or if you manually click the 🎙️ button again.

PatterPal Start Recording

A few seconds after the recording has halted, your language teacher will gradually respond. After the response has finished generating, the response will be read to you via Speech-to-Text. Below the language selelection box, you can the metrics regarding your spoken words. Misprounciations will also be highlighed in your spoken text. If you want to stop the Speech-to-Text output, you can click the ✋ button. Also keep in mind that you can change the langauge of the conversation whenever you want.

PatterPal Responding

If you want to your conversation history, you can press the 📃 button on the top right of the screen. It toggles the your conversation history and allows you to start a new conversation You can also rename or delete individual conversations here.

PatterPal Conversation History

After you had a few conversations with your language teacher, you can visit the stats page by clicking the 📊 button on the top right. Here you can see how your accuracy has changed over time or what words were least accurately pronounced. You can filter your metrics by language and also adjust the analysed time period and time resolution (playing around with these values is a good idea if you've been PatterPal for an extended period of time).

PatterPal Stats

You can get back to the application by clicking the PatterPal icon on the top left. When you are done you can use the 🚪 button on the top right to log out.

Diagrams

Azure Tech Stack

Azure Tech Stack

The OpenAi interface is not yet used from Azure (instead platform.openai.com) as it is not currently available for a students' subscription

Data Layer Diagram

Data Layer Diagram

WebSocket Communication Workflow

WebSocket Communication

Privacy Policy

Information Collection

How We Use Your Information

The information we collect is used to:

You can delete your Conversation, Chat and Pronunciation Analysis data on our Privacy Page.