El simulador de palabras en inglés más simple que usa Python y Balabolka

Hay una gran cantidad de métodos diferentes para estudiar idiomas extranjeros en general e inglés en particular. Pero sea cual sea el método, todavía es necesario aprender palabras.

Para estos propósitos, hay tantos simuladores diferentes con una variedad de palabras para aprender. Sin embargo, sus capacidades a veces no son suficientes.

En uno de estos simuladores, ya he aprendido suficientes palabras. Y frente a un problema. El simulador ofrece una palabra rusa, en respuesta necesita escribir esta palabra en inglés, el locutor (en realidad un sintetizador de voz) luego expresa la versión en inglés. Escribo todas las palabras perfectamente, sin embargo, cuando veo el texto en inglés, solo recuerdo que enseñé esta palabra, pero no recuerdo lo que significa. Es decir, me di cuenta de que me falta el reconocimiento de las palabras.

Otro inconveniente del simulador seleccionado es que se ofrecen posiciones vacías para la entrada, en las que se deben ingresar letras, y siempre tengo una pista de cuántas letras debe haber en una palabra, y esto no es deportivo.

En base a estas consideraciones, me di cuenta de que quiero hacer mi simulador para repetir las palabras que estudié. Este simulador debe ser inglés-ruso en la dirección de la traducción y con actuación de voz del texto en inglés para entrenar la escucha.

El procedimiento para resolver el problema fue el siguiente:

  • Preparé un archivo csv de dos columnas: 'palabra' y 'traducir', que incluía todas las palabras que necesitaba.
  • Descargué la versión de consola de Balabolka, un conocido programa gratuito tts (text-to-speach), diseñado para expresar cualquier texto desde un archivo o desde el portapapeles.
  • Escribí un código de trabajo en el Jupiter Notebook bajo el sistema operativo Windows 10.

No vine inmediatamente a usar Balabolka. Al principio quería usar la biblioteca pyttsx3, pero se bloquearon muchos errores al inicializar el paquete pyttsx3.init (), y no hubo sonido al iniciar pyttsx3.init ('ficticio'). No logré romper los malentendidos mutuos con este paquete, así que tuve que buscar otras opciones, y tuve éxito con Balabolka.

El código que obtuve es este:

import subprocess, clipboard
import pandas as pd

Inicio estándar Si los pandas lo saben todo, entonces las bibliotecas de subprocesos y portapapeles no me eran familiares. El paquete de subproceso accede a la versión de consola de Balabolka, simulando la línea de comando. El paquete del portapapeles le permite copiar texto al portapapeles, desde donde será leído por un sintetizador de voz.

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

Leí el archivo csv preparado con palabras y traducción.

words.shape

Y siempre controlo los valores de las variables, lo que está escrito en ellas y cómo.

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

Mezclo las palabras en el archivo como tarjetas, para no recordar la secuencia de palabras.

words10 = words1.iloc[0:100]

A veces no hay suficiente tiempo para revisar todo el archivo de palabras y aquí puede limitar la cantidad de palabras repetidas.

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

El texto del programa en sí.

En la variable de ruta, llamo a la versión de consola de Balabolka, el archivo balcon.exe.

La consola tiene sus propios parámetros de llamada escritos en la variable de bandera.

Específicamente, aquí uso:

  • voz libre -n Slt (fue descargado de Olga Yakovleva, el desarrollador de sintetizadores de voz, seleccioné la claridad de pronunciación en inglés con la pronunciación que necesitaba y, de hecho, la voz puede ser cualquier otra)
  • velocidad de pronunciación -s -3 (esta opción significa reducir la velocidad de pronunciación -3 del estándar)
  • leer desde el portapapeles -c (Balabolka puede leer texto tanto de un archivo como del portapapeles; elegí el portapapeles, porque crear miles de archivos con palabras es una tarea terrible).

El resultado del programa se ve así:

Ventana de cuaderno de Júpiter

inicialmente, una larga "salchicha" de salida sin resaltar el texto parecía completamente ilegible (primero la palabra en inglés, luego la respuesta que ingresé, luego la salida de la traducción correcta, luego el resultado de comparar la versión original y la ingresada, totalizando cuatro líneas por palabra). Esto hizo que fuera muy difícil analizar los errores. Tuve que usar códigos ANSI para que luego pudiera encontrar rápidamente esas palabras donde cometí un error.

Este simulador más simple no pretende ser original. Se ha creado una gran cantidad de programas más avanzados, pero para resolver mi propio problema local, este resultado me conviene. Puedo controlarlo de principio a fin. El guión se puede modificar, eliminar la ortografía de la palabra en inglés, dejar solo una voz y entrenar a escuchar. También puede cambiar la dirección de la traducción y entrenar la ortografía de las palabras en inglés, lo cual no fue suficiente para mí en el simulador original, y con el que comenzó toda esta historia.

Me alegraría si este simple script ayuda a las personas que no tienen fuertes habilidades de programación a crear su propio simulador o implementar algo más basado en este código.

All Articles