コード例 #1
0
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
コード例 #2
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)
コード例 #3
0
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
コード例 #4
0
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
コード例 #5
0
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
コード例 #6
0
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
コード例 #7
0
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
コード例 #8
0
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
コード例 #9
0
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
コード例 #10
0
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
コード例 #11
0
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
コード例 #12
0
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
コード例 #13
0
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
コード例 #14
0
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
コード例 #15
0
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)
コード例 #16
0
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
コード例 #17
0
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
コード例 #18
0
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