Skip to content
Stephan Akkerman edited this page Dec 9, 2024 · 13 revisions

FluentAI

  1. What is FluentAI?
  2. What is FluentAI for?
  3. How does FluentAI work?
  4. How is FluentAI designed?

What is FluentAI?

FluentAI is inspired by the method detailed in the paper SmartPhone: Exploring Keyword Mnemonic with Auto-generated Verbal and Visual Cues by Jaewook Lee and Andrew Lan. The aim is to recreate their approach using accessible, open-source models. The pipeline they propose, as shown below, serves as the blueprint for our project. It illustrates the process of automating language learning, blending cutting-edge AI techniques with proven language learning methodology.

smartphone-pipe

The SmartPhone paper uses the ideas from the 2014 paper TransPhoner: Automated Mnemonic Keyword Generation. This paper is the foundation of the methods they use in SmartPhone but does not use AI for the creation of mnemonics. In the image below you can see how it creates phonetically similar mnemonics for a given word, such as ratatouille.

transphoner

What is FluentAI for?

FluentAI is meant for people who want a more efficient way of learning vocabulary when learning languages.

How does FluentAI work?

In this section, we will describe the technical process of how FluentAI creates the mnemonics and the images.

Mnemonic Word Generation 🏭

In the image below you can see a more detailed process of deriving the mnemonic word, which is the core of the project. The mnemonic word is a word that is easy to remember and that is associated with the word you want to learn. This is done by using a pre-trained model to generate a sentence that is then used to generate a mnemonic word. In the image above this is referred to as "TransPhoner", as this is where the image below is derived from.

image

Imageability

The imageability of a word is a measure of how easily a word can be visualized. This is important for the mnemonic word, as it should be easy to visualize. To determine the imageability of a word, we train a model on this dataset. It includes the embeddings for each word and their imageability score. The embeddings are generated by the FastText model and these embeddings can be used to predict the imageability of words that are not in the dataset.

Phonetic Similarity

The phonetic similarity of a word is a measure of how similar the pronunciation of two words is. This is important for the mnemonic word, as it should be easy to remember. Therefore we use this to determine which English words should be considered for the mnemonic word. We use the CLTS and PanPhon models to generate the feature vectors of the IPA representation of the words. These feature vectors are then used to calculate the phonetic similarity between the words. We use faiss to speed up the search for the most similar words.

Orthographic Similarity

The orthographic similarity of a word is a measure of how similar the spelling of two words is. This is a very simple process and the user can select a few methods that they'd like to use.

Semantic Similarity

The semantic similarity of a word is a measure of how similar the meaning of two words is. The FastText model is used to generate the embeddings of the words and these embeddings are used to calculate the semantic similarity between the words.

Best Mnemonic Word

To determine the best mnemonic word, we use the methods described above. The results of each method are given as a score (between 0 and 1) and these scores are combined to determine the best mnemonic word. The user can select the weights of each method to determine how important each method is.

Mnemonic Image Generation

Just like the previously mentioned papers, the best mnemonic word is passed to an LLM that creates the input for the text-to-image model. The output of this LLM is then passed to the text-to-image model that then generates the image.

How is FluentAI designed?

The image below displays the overview of the design.

figma

To see the latest updates of the architectural overview view our Figma board

Code overview

The image below shows how the classes are connected with each other in the back-end and front-end.

fluentai drawio