DEV Community

Sean Velasco
Sean Velasco

Posted on

Slater - virtual language learning companion

This is a submission for the Cloudflare AI Challenge.

What I Built

A simple virtual foreign language learning companion specialized in holding conversations, helping with translations, and improving diction.

Image description

Image description

Image description

Demo

Please check out the demo at slater.sean.app.

My Code

GitHub logo seanvelasco / slater

Cloudflare AI challenge submission: Slater - your virtual foreign language friend

Slater - your virtual foreign language friend

Conversational, context-aware, and multi-modal chatbot specialized in carrying basic conversations in foreign languages.

Submission to the Cloudflare AI Challenge.

Please check out the demo.

Problem and pain points

I want to learn Mandarin, but I don't have a Mandarin-speaking friend to practice with. I'm also not confident enough with my foreign language skills to speak with a Mandarin-speaking person online.

Duolingo doesn't teach me how to write or speak the things I want to express. For example, I want to say This is my favorite coffee shop. I know how to construct the sentence, but I don't know the Mandarin word for favorite. So, I end up saying - Zhe tiao wo de favorite kafei guan.

Google Translate lacks certain language nuances. It also doesn't keep track of the things I looked up.

Keeping notes of the words…

GitHub logo seanvelasco / slater-worker

Cloudflare Workers that power Slater

Journey

Pain points and motivation

I want to learn Mandarin, but I don't have a Mandarin-speaking friend to practice with. I'm also not confident enough with my foreign language skills to speak with a Mandarin-speaking person online.

Duolingo doesn't teach me how to write or speak the things I want to express. For example, I want to say This is my favorite coffee shop. I know how to construct the sentence, but I don't know the Mandarin word for favorite. So, I end up saying - Zhe tiao wo de favorite kafei guan.

Google Translate lacks certain language nuances. It also doesn't keep track of the things I looked up.

Keeping notes of the words I learn takes effort - I have to write down the English word, hanzi, pinyin, and how it is used in a sentence.

Therefore, I wanted to create an experience where I can converse freely in a foreign language without fear of judgement, where I can quickly translate (and save as "learned") words, and where I can practice my diction (Chinese pronunciations are really hard).

This is my first time developing an LLM app. I learned a lot in a span of two days (I learned of this challenge a little bit late). The next steps would be, developing this further for personal use, and to extend the use-cases for other languages.

Multiple Models and/or Triple Task Types

Slater has three modes: conversation mode, translation mode, and speaking/diction mode.

  • Meta LLama 2 for general conversations, but instructed to limit and focus its scope to language learning.

  • Meta Meta M2M-100 for text translations between English and Mandarin Chinese.

  • OpenAI Whisper for speech-to-text. However, currently figuring out how to make it work with Mandarin Chinese.

Top comments (0)