def choose_language(): valid = False chosen = False langs_dict = GoogleTranslator.get_supported_languages(as_dict=True) print("Languages available: ") for key in langs_dict: if langs_dict[key] in tts_langs(): print(key) while valid == False: while chosen == False: choice = mike.record_audio("Please select a new language to learn") try: languageToLearn = extras.get_language_short(choice) if languageToLearn in tts_langs(): valid = True if valid == True: response = mike.record_audio( "You have chosen " + choice + ", say yes to start learning this language.") if 'yes' in response: chosen = True return languageToLearn except: return 0
def choose_save(saves): valid = False mike.mike("saved languages include ") for s in saves: mike.mike(extras.get_language_long(s)) language = mike.record_audio( "Which language would you like to continue learning?") print("You have chosen: " + language) while valid == False: try: language = extras.get_language_short(language) except: return if language in saves: level = check_saves(progress['name'], language) progress['language'] = language progress['level'] = str(level) valid = True else: language = mike.record_audio( "I'm sorry, that is not a valid option. Choose a different language." ) print("You have chosen: " + language)
def numbers(lan): language = extras.get_language_long(lan) print("\n\nNumbers in " + language) print("---------------------------------------------------------") numEn = [ "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten" ] numL = [] for n in numEn: numOth = GoogleTranslator(source='en', target=lan).translate(text=n) numOth = numOth.lower() numL.append(numOth) newP = 0 i = 0 while i < 11: correct = False mike.mike(numEn[i] + " in " + language + " is ") mike.mike(numL[i], lan) mike.mike("Say " + numEn[i] + " in " + language) user_input = mike.record_audio(lang=lan) attempt = 0 while correct == False: print("You said: " + user_input) if numL[i] in user_input: print("Correct!") newP = newP + 1 correct = True elif str(i) in user_input: print("Correct!") newP = newP + 1 correct = True elif "quit" in user_input: main.save_progress() exit() else: if attempt < 3: mike.mike("Let's try again, say ") user_input = mike.record_audio(numL[i], lan) else: print("Let's move on") correct = True attempt = attempt + 1 i = i + 1 return newP
def colours(lan): language = extras.get_language_long(lan) print("\n\nColours in " + language) print("---------------------------------------------------------") clrEn = [ "white", "grey", "black", "brown", "red", "green", "blue", "yellow", "pink", "purple", "orange" ] clrL = [] for n in clrEn: clrOth = GoogleTranslator(source='en', target=lan).translate(text=n) clrOth = clrOth.lower() clrL.append(clrOth) i = 0 newP = 0 while i < 11: correct = False mike.mike(clrEn[i] + " in " + language + " is ") mike.mike(clrL[i], lan) mike.mike("Say " + clrEn[i] + " in " + language) user_input = mike.record_audio(lang=lan) user_input = user_input.lower() attempt = 0 while correct == False: print("You said: " + user_input) if clrL[i] in user_input: print("Correct!") newP = newP + 1 correct = True elif "quit" in user_input: main.save_progress() exit() else: if attempt < 3: mike.mike("Let's try again, say ") user_input = mike.record_audio(clrL[i], lan) else: print("Let's move on") correct = True attempt = attempt + 1 i = i + 1 return newP
def startup(): # get users name name = get_name() progress['name'] = name # check if user has saved file saves = check_saves(name) if saves: answered = False answer = "" while answered == False: answer = mike.record_audio( "You have saved progress available. Would you like to continue progress?" ) if "yes" in answer: answered = True progBool = True if "no" in answer: answered = True progBool = False else: progBool = False if progBool == True: # if yes - ask which save to load choose_save(saves) return else: # ask language to learn progress['language'] = choose_language() progress['level'] = get_level() save_progress() return
def test_l1(lan): language = extras.get_language_long(lan) count = 0 tPoints = 0 # Five questions to test the most basic words while count < 3: if count % 2 == 0: phrase = random_test.easy_noun() else: phrase = random_test.easy_adj() userAnswer = mike.record_audio( "What is " + phrase + " in " + language + "?", lan) translated = GoogleTranslator(source='auto', target=lan).translate(text=phrase) print("You said: " + userAnswer + "\n The correct answer was: " + translated) count = count + 1 if len(userAnswer) > 0: if userAnswer in translated: print("+1") tPoints = tPoints + 1 if tPoints > 2: tPoints = 2 percent = (tPoints / 2) * 100 return percent
def transport(lan): language = extras.get_language_long(lan) print("\n\nTransport in " + language) print("---------------------------------------------------------") numEn = ["cycling", "running", "walking", "driving", "flying", "sailing", "train", "boat", "airplane", "car", "bus"] numL = [] for n in numEn: numOth = GoogleTranslator( source='en', target=lan).translate(text=n) numOth = numOth.lower() numL.append(numOth) newP = 0 i = 0 while i < 11: correct = False mike.mike(numEn[i] + " in " + language + " is ") mike.mike(numL[i], lan) mike.mike("Say " + numEn[i] + " in " + language) user_input = mike.record_audio(lang=lan) attempt = 0 while correct == False: print("You said: " + user_input) if numL[i] in user_input: print("Correct!") newP = newP + 1 correct = True elif "quit" in user_input: main.save_progress() exit() else: if attempt < 3: mike.mike("Let's try again, say ") user_input = mike.record_audio(numL[i], lan) else: print("Let's move on") correct = True attempt = attempt + 1 i = i + 1 return newP
def get_name(): confirmed = False mike.mike('Welcome to uno lingo. What is your name?') name = mike.record_audio() print(name) while confirmed == False: voice_confirm = mike.record_audio( "Your name is " + name + ". Is that correct? Say yes to confirm") if "yes" in voice_confirm: confirmed = True else: name = mike.record_audio('What is your name?') print(name) mike.mike('Nice to meet you, ' + name + '.') mike.mike("My name is Mike.") return name
def clothes(lan): language = extras.get_language_long(lan) print("\n\nClothes in " + language) print("---------------------------------------------------------") numEn = ["blouse", "t-shirt", "hoodie", "pants", "jeans", "socks", "shoes", "belt", "hat", "scarf", "jacket"] numL = [] for n in numEn: numOth = GoogleTranslator( source='en', target=lan).translate(text=n) numOth = numOth.lower() numL.append(numOth) newP = 0 i = 0 while i < 11: correct = False mike.mike(numEn[i] + " in " + language + " is ") mike.mike(numL[i], lan) mike.mike("Say " + numEn[i] + " in " + language) user_input = mike.record_audio(lang=lan) attempt = 0 while correct == False: print("You said: " + user_input) if numL[i] in user_input: print("Correct!") newP = newP + 1 correct = True elif "quit" in user_input: main.save_progress() exit() else: if attempt < 3: mike.mike("Let's try again, say ") user_input = mike.record_audio(numL[i], lan) else: print("Let's move on") correct = True attempt = attempt + 1 i = i + 1 return newP
def animals(lan): language = extras.get_language_long(lan) print("\n\nAnimals in " + language) print("---------------------------------------------------------") anmEn = [ "dog", "cat", "cow", "horse", "lion", "monkey", "snake", "turtle", "bear", "tiger", "sheep" ] anmL = [] for n in anmEn: anmOth = GoogleTranslator(source='en', target=lan).translate(text=n) anmOth = anmOth.lower() anmL.append(anmOth) i = 0 newP = 0 while i < 11: correct = False mike.mike(anmEn[i] + " in " + language + " is ") mike.mike(anmL[i], lan) mike.mike("Say " + anmEn[i] + " in " + language) user_input = mike.record_audio(lang=lan) user_input = user_input.lower() attempt = 0 while correct == False: print("You said: " + user_input) if anmL[i] in user_input: print("Correct!") newP = newP + 1 correct = True elif "quit" in user_input: main.save_progress() exit() else: if attempt < 3: mike.mike("Let's try again, say ") user_input = mike.record_audio(anmL[i], lan) else: print("Let's move on") correct = True attempt = attempt + 1 i = i + 1 return newP
def sports(lan): language = extras.get_language_long(lan) print("\n\nSports in " + language) print("---------------------------------------------------------") numEn = ["basketball", "football", "running", "volleyball", "tennis", "golf", "rugby", "hockey", "badminton", "baseball", "archery"] numL = [] for n in numEn: numOth = GoogleTranslator( source='en', target=lan).translate(text=n) numOth = numOth.lower() numL.append(numOth) newP = 0 i = 0 while i < 11: correct = False mike.mike(numEn[i] + " in " + language + " is ") mike.mike(numL[i], lan) mike.mike("Say " + numEn[i] + " in " + language) user_input = mike.record_audio(lang=lan) attempt = 0 while correct == False: print("You said: " + user_input) if numL[i] in user_input: print("Correct!") newP = newP + 1 correct = True elif "quit" in user_input: main.save_progress() exit() else: if attempt < 3: mike.mike("Let's try again, say ") user_input = mike.record_audio(numL[i], lan) else: print("Let's move on") correct = True attempt = attempt + 1 i = i + 1 return newP
def food(lan): language = extras.get_language_long(lan) print("\n\nFood in " + language) print("---------------------------------------------------------") numEn = ["bread", "chicken", "beef", "meat", "fruit", "vegetable", "apple", "banana", "tomato", "carrot", "pizza"] numL = [] for n in numEn: numOth = GoogleTranslator( source='en', target=lan).translate(text=n) numOth = numOth.lower() numL.append(numOth) newP = 0 i = 8 while i < 11: correct = False mike.mike(numEn[i] + " in " + language + " is ") mike.mike(numL[i], lan) mike.mike("Say " + numEn[i] + " in " + language) user_input = mike.record_audio(lang=lan) attempt = 0 while correct == False: print("You said: " + user_input) if numL[i] in user_input: print("Correct!") newP = newP + 1 correct = True elif "quit" in user_input: main.save_progress() exit() else: if attempt < 3: mike.mike("Let's try again, say ") user_input = mike.record_audio(numL[i], lan) else: print("Let's move on") correct = True attempt = attempt + 1 i = i + 1 return newP
def buildings(lan): language = extras.get_language_long(lan) print("\n\nBuildings in " + language) print("---------------------------------------------------------") numEn = ["shop", "church", "gym", "library", "townhall", "house", "apartment", "school", "university", "factory", "police station"] numL = [] for n in numEn: numOth = GoogleTranslator( source='en', target=lan).translate(text=n) numOth = numOth.lower() numL.append(numOth) newP = 0 i = 0 while i < 11: correct = False mike.mike(numEn[i] + " in " + language + " is ") mike.mike(numL[i], lan) mike.mike("Say " + numEn[i] + " in " + language) user_input = mike.record_audio(lang=lan) attempt = 0 while correct == False: print("You said: " + user_input) if numL[i] in user_input: print("Correct!") newP = newP + 1 correct = True elif "quit" in user_input: main.save_progress() exit() else: if attempt < 3: mike.mike("Let's try again, say ") user_input = mike.record_audio(numL[i], lan) else: print("Let's move on") correct = True attempt = attempt + 1 i = i + 1 return newP
def greetings(lan): language = extras.get_language_long(lan) print("\n\nGreetings in " + language) print("---------------------------------------------------------") numEn = ["hi", "greetings", "good morning", "good afternoon", "good evening", "goodbye", "nice to meet you", "see you later", "see you soon", "how are you", "what's up"] numL = [] for n in numEn: numOth = GoogleTranslator( source='en', target=lan).translate(text=n) numOth = numOth.lower() numL.append(numOth) newP = 0 i = 0 while i < 11: correct = False mike.mike(numEn[i] + " in " + language + " is ") mike.mike(numL[i], lan) mike.mike("Say " + numEn[i] + " in " + language) user_input = mike.record_audio(lang=lan) attempt = 0 while correct == False: print("You said: " + user_input) if numL[i] in user_input: print("Correct!") newP = newP + 1 correct = True elif "quit" in user_input: main.save_progress() exit() else: if attempt < 3: mike.mike("Let's try again, say ") user_input = mike.record_audio(numL[i], lan) else: print("Let's move on") correct = True attempt = attempt + 1 i = i + 1 return newP
def get_level(): response = '' name = progress['name'] mike.mike( name + ", would you like to take a test to find out what language level you are on?" ) while len(response) < 1: response = mike.record_audio() if 'yes' in response: level = test_Level() elif 'no' in response: mike.mike('What level are you on?') level = mike.record_audio() level = int(level) while level > 3 or level < 1: level = mike.record_audio( "I'm sorry, please choose a level between one and four.") set_parts(level) progress['partsDone'] = parts return str(level)
def test_l2(lan): language = extras.get_language_long(lan) count = 0 tPoints = 0 # Five questions to test the most basic words while count < 4: phrase = random_test.simple_sentence() translated = GoogleTranslator(source='auto', target=lan).translate(text=phrase) if lan in tts_langs(): mike.mike("Translate this phrase to English: ") mike.mike(translated, lan) answer = phrase userAnswer = mike.record_audio() print("You said: " + userAnswer + "\n The correct answer was: " + phrase) else: # language not supported, alternative test, harder test answer = translated userAnswer = mike.record_audio( "What is " + phrase + " in " + language + "?", lan) print("You said: " + userAnswer + "\n The correct answer was: " + translated) # extra 0.1 points per alternative question tPoints = tPoints + 0.1 count = count + 1 if len(userAnswer) > 0: if userAnswer in answer: print("+1") tPoints = tPoints + 1 if tPoints > 3: tPoints = 3 percent = (tPoints / 3) * 100 print(percent) return percent
def graduate(): mike.mike("Congratulations, you have completed the course") print("---------------------------------------------------------") user_answer = mike.record_audio("Say new game to learn a new language.") return user_answer
def part_choice(lvl): user_input = " " top = [] topicStr = "" validChoice = False if lvl == '1': top.append(progress['partsDone']['l1_colours']) top.append(progress['partsDone']['l1_animals']) top.append(progress['partsDone']['l1_numbers']) topics = ["colours", "animals", "numbers"] elif lvl == '2': top.append(progress['partsDone']['l2_greetings']) top.append(progress['partsDone']['l2_transport']) top.append(progress['partsDone']['l2_sports']) topics = ["greetings", "transport", "sports"] elif lvl == '3': print("level: ", lvl) top.append(progress['partsDone']['l3_food']) top.append(progress['partsDone']['l3_clothes']) top.append(progress['partsDone']['l3_buildings']) topics = ["food", "clothes", "buildings"] else: Exception topic = [] j = 0 while j < 3: if top[j] == "0": topic.append(str(topics[j])) topicStr = topicStr + str(topics[j]) + ", " j = j + 1 topicStr = topicStr[:-2] if topicStr == "": return 10 else: user_input = mike.record_audio( "Please select a topic. Your options include " + topicStr) while validChoice == False: print("You said: " + user_input) if user_input == "": user_input = " " if user_input in topicStr: validChoice = True # return user_input else: if user_input == " ": user_input = mike.record_audio( "That is not a valid option. Please select one of the following: " + topicStr) else: user_input = mike.record_audio( user_input + " is not a valid option. Please select one of the following: " + topicStr) x = 0 while x < len(topics): if user_input in str(topics[x]): part_no = x return part_no x = x + 1 return part_no