Le simulateur de mots anglais le plus simple utilisant Python et Balabolka

Il existe un grand nombre de méthodes différentes pour étudier les langues étrangères en général et l'anglais en particulier. Mais quelle que soit la méthode, l'apprentissage des mots reste nécessaire.

À ces fins, il existe de nombreux simulateurs différents avec un choix de mots à apprendre. Cependant, leurs capacités ne sont parfois pas suffisantes.

Sur l'un de ces simulateurs, j'ai déjà appris suffisamment de mots. Et face à un problème. Le simulateur propose un mot russe, en réponse vous devez écrire ce mot en anglais, l'annonceur (en fait un synthétiseur vocal) exprime ensuite la version anglaise. J'écris tous les mots parfaitement, cependant, quand je vois le texte anglais, je me souviens seulement que j'ai enseigné ce mot, mais je ne me souviens pas de ce qu'il signifie. C'est-à-dire que j'ai réalisé que je ne reconnaissais pas les mots.

Un autre inconvénient du simulateur sélectionné est que des positions vides sont proposées pour la saisie, dans lesquelles les lettres doivent être saisies, et j'ai toujours une idée du nombre de lettres qui doivent être dans un mot, et ce n'est pas du sport.

Sur la base de ces considérations, j'ai réalisé que je voulais faire mon simulateur pour répéter les mots que j'ai étudiés. Ce simulateur doit être anglais-russe dans le sens de la traduction et avec la voix du texte anglais afin de former l'écoute.

La procédure pour résoudre le problème était la suivante:

  • J'ai préparé un fichier csv à partir de deux colonnes: «mot» et «traduire», qui comprenait tous les mots dont j'avais besoin.
  • J'ai téléchargé la version console de Balabolka, un programme gratuit bien connu tts (text-to-speach), conçu pour exprimer n'importe quel texte à partir d'un fichier ou du presse-papiers.
  • J'ai écrit du code de travail dans le Jupiter Notebook sous le système d'exploitation Windows 10.

Je ne suis pas venu immédiatement pour utiliser Balabolka. Au début, je voulais utiliser la bibliothèque pyttsx3, mais beaucoup d'erreurs se sont écrasées lors de l'initialisation du paquet pyttsx3.init (), et il n'y avait pas de son lors du démarrage de pyttsx3.init ('dummy'). Je n'ai pas réussi à sortir d'un malentendu mutuel avec ce package, j'ai donc dû chercher d'autres options et j'ai réussi avec Balabolka.

Le code que j'ai obtenu est le suivant:

import subprocess, clipboard
import pandas as pd

Démarrage standard. Si les pandas savent tout, les bibliothèques de sous-processus et de presse-papiers ne m'étaient pas familières. Le package de sous-processus accède à la version console de Balabolka, simulant la ligne de commande. Le package du presse-papiers vous permet de copier du texte dans le presse-papiers, d'où il sera lu par un synthétiseur vocal.

words = pd.read_csv ('C:/.../Python_Scripts/words.csv', delimiter=';')
words.head()

J'ai lu le fichier csv préparé avec les mots et la traduction.

words.shape

Et je contrôle toujours les valeurs des variables, ce qui y est écrit et comment.

words1 = words.sample(frac=1)
words1.head()

Je mélange les mots du fichier comme des cartes, pour ne pas me souvenir de la séquence des mots.

words10 = words1.iloc[0:100]

Parfois, il n'y a pas assez de temps pour parcourir tout le fichier de mots et ici vous pouvez limiter le nombre de mots répétés.

for i in range (len (words10)):
    path = r'C:\...\balcon\balcon.exe'
    flag = ' -n Slt -s -3 -c'
    clipboard.copy (words10['word'].iloc[i])
    subprocess.Popen(path + flag, creationflags=0, close_fds = True)
    print ("\033[1m {}\033[0m" .format(words10['word'].iloc[i]))
    tr = input ()
    print ("\033[1m {}\033[0m" .format(words10['translate'].iloc[i]))
    res = words10['translate'].iloc[i] == tr
    if res == True:
        print("\033[1m\033[36m {}\033[0m" .format(''))
    else:
        print("\033[1m\033[31m {}\033[0m" .format(''))
    i = +1

Le texte du programme lui-même.

Dans la variable path, j'appelle la version console de Balabolka, le fichier balcon.exe.

La console a ses propres paramètres d'appel écrits dans la variable indicateur.

Plus précisément, j'utilise ici:

  • voix libre -n Slt (il a été téléchargé par le développeur des synthétiseurs vocaux Olga Yakovleva, j'ai repris la voix anglaise avec la clarté de la prononciation dont j'avais besoin et, en fait, la voix peut être toute autre)
  • vitesse de prononciation -s -3 (cette option signifie ralentir la vitesse de prononciation -3 par rapport à la norme)
  • lecture à partir du presse-papiers -c (Balabolka peut lire du texte à partir d'un fichier et du presse-papiers; j'ai choisi le presse-papiers, car créer des milliers de fichiers avec des mots est une entreprise terrible).

Le résultat du programme ressemble à ceci:

Fenêtre pour ordinateur portable Jupiter

Initialement, une longue «saucisse» de sortie sans mettre en évidence le texte semblait complètement illisible (d'abord le mot en anglais, puis la réponse que j'ai entrée, puis la sortie de la traduction correcte, puis le résultat de la comparaison de la version originale et celle entrée, totalisant quatre lignes par mot). Cela a rendu très difficile l'analyse des erreurs. J'ai dû utiliser des codes ANSI pour pouvoir retrouver rapidement ces mots là où je me suis trompé.

Ce simulateur le plus simple ne prétend pas être original. Un grand nombre de programmes plus avancés ont été créés, mais pour résoudre mon propre problème local, ce résultat me convient. Je peux le contrôler du début à la fin. Le script peut être modifié, supprimer l'orthographe du mot anglais, ne laisser qu'une voix et entraîner l'écoute. Vous pouvez également changer le sens de la traduction et former l'orthographe des mots anglais, ce qui ne me suffisait pas dans le simulateur d'origine, et avec lequel toute cette histoire a commencé.

Je serais heureux si ce simple script aide les gens qui n'ont pas de solides compétences en programmation à créer leur propre simulateur ou à implémenter quelque chose d'autre basé sur ce code.

All Articles