Code Monkey home page Code Monkey logo

companion's Introduction

Photos

companion's People

Contributors

shakedzy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

companion's Issues

Add dialect awareness

Currently, the tutor is only aware of the language taught and spoken (dialect are solely used for Google TTS service). Making it more aware of the dialects might enhance the lessons.

Better error handling required

Currently there is no error handling, and the code assumes everything just works. Here are some suggestions:

  • When ChatGPT fails, perhaps display a red message saying "oh no, try again"
  • How to display a Whisper error message?
  • How to handle Watson errors?
  • When Google Translate fails, perhaps display a red message to instead of translation
  • All continuous threads need error handling

New config page on launch

Instead of configuring the app with a yaml file, add a new "init" page to select languages, voice and tutor.
Probably best handles once #2 is done

Use Streamlit with Flask

This can be converted to a Streamlit app, which can run online.
Another "welcome" page will have to be added, to ask the user for his API tokens.

Split sentence function splits incorrectly at certain cases

Looking at split_to_sentences, this phrase:

Très bien! Vous avez bien formé la négation en utilisant \"ne...pas\". Maintenant, pouvez-vous me donner la forme interrogative de la phrase \"il parle espagnol\"?

Splits to:

['Très bien',
 ' Vous avez bien formé la négation en utilisant "ne',
 '',
 '',
 'pas"',
 ' Maintenant, pouvez-vous me donner la forme interrogative de la phrase "il parle espagnol"',
 '']

while it should be:

['Très bien',
 'Vous avez bien formé la négation en utilisant "ne...pas"',
 'Maintenant, pouvez-vous me donner la forme interrogative de la phrase "il parle espagnol"?']

Mac PyAudio Error

I got this error for the first time on my mac

Was fixed by brew insstall pyaudio

I just thought you might want to add it to your README or something.

ERROR: Could not build wheels for pyaudio, which is required to install pyproject.toml-based projects

Underscores replacing missing words are read literally

When the tutor provides an assignment, for example:

Hier, nous (faire) ____________ une promenade dans le parc.

The underscores are read one by one ("underscore, underscore, underscore, ..."). Saying "underscore" or perhaps "mmm" should be the right thing.

Tutor "ends" conversation

When correcting or explaining, tutor might not ask further question, ending the session flow. for example:

Non, la forme interrogative correcte pour cette phrase serait "Aimons-nous le chocolat?" (avec le verbe "aimer" conjugué avant le sujet "nous").

Create a set-up page

Instead of creating config file, create a page which assists the user to configure the app, and create the config file behind the scene.

Tutor recording attached to following user message

As can be seen from the following memory snippet:

  {
    "role": "assistant",
    "content": "Bonjour Shaked! Comment ça va? Pour notre leçon aujourd'hui, je vous propose trois sujets qui conviennent à votre niveau DELF A1.2: \n1. Les verbes réguliers au présent \n2. Les articles définis et indéfinis \n3. Les adjectifs possessifs. \nQu'est-ce que vous préférez?",
    "recording": [
      "/Users/shakedzy/repos/companion/tmp/bot_speech_1_0.mp3",
      "/Users/shakedzy/repos/companion/tmp/bot_speech_1_1.mp3",
      "/Users/shakedzy/repos/companion/tmp/bot_speech_1_2.mp3",
      "/Users/shakedzy/repos/companion/tmp/bot_speech_1_3.mp3",
      "/Users/shakedzy/repos/companion/tmp/bot_speech_1_4.mp3",
      "/Users/shakedzy/repos/companion/tmp/bot_speech_1_5.mp3",
      "/Users/shakedzy/repos/companion/tmp/bot_speech_1_6.mp3",
      "/Users/shakedzy/repos/companion/tmp/bot_speech_1_7.mp3",
      "/Users/shakedzy/repos/companion/tmp/bot_speech_1_8.mp3",
      "/Users/shakedzy/repos/companion/tmp/bot_speech_1_9.mp3",
      "/Users/shakedzy/repos/companion/tmp/bot_speech_1_10.mp3",
      "/Users/shakedzy/repos/companion/tmp/bot_speech_1_11.mp3"
    ],
    "user_recording": null
  },
  {
    "role": "user",
    "content": "Et Je choisi les verbe réguliers.",
    "recording": [
      "/Users/shakedzy/repos/companion/tmp/bot_speech_1_0.mp3",
      "/Users/shakedzy/repos/companion/tmp/bot_speech_1_1.mp3",
      "/Users/shakedzy/repos/companion/tmp/bot_speech_1_2.mp3",
      "/Users/shakedzy/repos/companion/tmp/bot_speech_1_3.mp3",
      "/Users/shakedzy/repos/companion/tmp/bot_speech_1_4.mp3",
      "/Users/shakedzy/repos/companion/tmp/bot_speech_1_5.mp3",
      "/Users/shakedzy/repos/companion/tmp/bot_speech_1_6.mp3",
      "/Users/shakedzy/repos/companion/tmp/bot_speech_1_7.mp3",
      "/Users/shakedzy/repos/companion/tmp/bot_speech_1_8.mp3",
      "/Users/shakedzy/repos/companion/tmp/bot_speech_1_9.mp3",
      "/Users/shakedzy/repos/companion/tmp/bot_speech_1_10.mp3",
      "/Users/shakedzy/repos/companion/tmp/bot_speech_1_11.mp3"
    ],
    "user_recording": "/Users/shakedzy/repos/companion/tmp/user_recording_2.mp3"
  },

Add more bots profile pictures

For #13 (select tutor from an init page, more tutor profile pictures are required. Probably 3 females and 3 males should be sufficient). Currently only a single female profile exist.
Should be created with DALL-E/Midjourney.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.