Dialekt is an AI-powered language learning application that provides real-time conversational practice with adaptive feedback.
What it does
Dialekt pairs learners with an AI tutor (powered by Claude) that adjusts its responses based on the learner’s CEFR level (A1-C2) and chosen register (formal/informal). The tutor provides intelligent, context-aware feedback depending on how the learner communicates:
- Writing in native language: Shows the translation in the target language with IPA
transcription and phonetic guides
- Practicing target language: Provides corrections and encouragement with
grammatical feedback
Key features
- 70+ language pairs: Choose any combination of native and target language
- CEFR-based adaptation: Vocabulary and grammar automatically adjust to A1-C2
levels
- Real-time feedback: Built with Phoenix LiveView for instant tutor responses
- Dynamic conversation starters: AI generates contextually appropriate prompts
based on your learning configuration
- Phonetic support: IPA transcriptions use native language phonetic conventions
How it works
The app uses Claude Sonnet 4.6 via the Anthropic API to power the tutoring experience. The system prompt is carefully designed to enforce CEFR level constraints, maintain register consistency, and provide differentiated feedback based on whether the learner is practicing or just asking for translations.
Motivation
I built this mostly as a tool to help me learn new languages without the hassle of finding pronunciation guides and conversation partners. It’s just a pet project I made for fun, but I’d appreciate any feedback if you find it helpful or have ideas to improve it.
Requires an Anthropic API key to run.
https://github.com/ccarvalho-eng/dialekt
12 Likes
Just added persistence layer to this! Now, we can create multiple learning configs and have multiple chats persisted.
1 Like
Setup form with dark mode:
1 Like
Fixed the misaligned ASCII branding
New update: just added text to speech! It’s using browser text to speech which is free
1 Like
Alright, now it has support for multiple LLMs (Chat GPT, Claude, Open Router). Also, did refactor style so UI looks nicer.
3 Likes
What determines what languages you can support? I’m learning Koine Greek using a specific pronunciation system and have wondered if I could get AI to pronounce that without having to train a model on existing audio.
1 Like
Thanks for checking this out! This library is still young — it actually started as a simple Claude artifact I built to help myself learn new languages.
-
Good point! Lots of languages have regional variations (e.g. Spanish → Castilian, Latin American; French → Québécois; Chinese → Mandarin, Cantonese; Arabic → Egyptian, Levantine)
-
In this early phase, I am mostly touching the surface by keeping the default/most popular ones.
-
The UI defaults are limited — European Portuguese is missing, for example
If this catches your interest, I’d love to hear your ideas — we could figure out some UI tweaks and play around with the prompt 
Also, I am open to ideas about the future of this library. For now, it seems a great tool for tech people but still focused on Elixir/ Liveview community. Maybe it could evolve to a docker container in which you could spin up with your favorite LLM. Don’t think I’d have the energy to productionize this into a SaaS or something (I prefer building than selling :))
Added some minor UI improvements to the chat page:
Was trying to implement voice recognition. Working well so far. Some browsers like Brave might block this by default. If it goes
1 Like
… if it goes well, will add to the project soon. After that, not sure what next but happy to hear any opinions.