O simulador de palavras em inglês mais simples usando Python e Balabolka

Há um grande número de métodos diferentes de estudar línguas estrangeiras em geral e inglês em particular. Seja qual for o método, aprender palavras ainda é necessário.

Para esses fins, existem muitos simuladores diferentes com uma escolha de palavras para aprender. No entanto, suas capacidades às vezes não são suficientes.

Em um desses simuladores, eu já aprendi palavras suficientes. E confrontado com um problema. O simulador oferece uma palavra em russo; em resposta, você precisa escrever essa palavra em inglês. O locutor (na verdade, um sintetizador de fala) exprime a versão em inglês. Eu escrevo todas as palavras perfeitamente, no entanto, quando vejo o texto em inglês, lembro apenas que ensinei essa palavra, mas não lembro o que isso significa. Ou seja, percebi que não tinha o reconhecimento de palavras.

Outra desvantagem do simulador selecionado é que são oferecidas posições vazias para entrada, nas quais as letras devem ser inseridas, e eu sempre tenho uma dica de quantas letras devem haver em uma palavra, e isso não é esporte.

Com base nessas considerações, percebi que quero fazer meu simulador para repetir as palavras que estudei. Este simulador deve ser inglês-russo na direção da tradução e com dublagem do texto em inglês para treinar a audição.

O procedimento para resolver o problema foi o seguinte:

  • Preparei um arquivo csv a partir de duas colunas: 'word' e 'translate', que incluíam todas as palavras que eu precisava.
  • Baixei a versão do console do Balabolka, um conhecido programa gratuito tts (text-to-speach), projetado para expressar qualquer texto de um arquivo ou da área de transferência.
  • Escrevi código de trabalho no Jupiter Notebook no sistema operacional Windows 10.

Eu não vim imediatamente usar Balabolka. No começo, eu queria usar a biblioteca pyttsx3, mas muitos erros travaram ao inicializar o pacote pyttsx3.init () e não houve som ao iniciar o pyttsx3.init ('dummy'). Não consegui romper com o mal-entendido mútuo com este pacote, então tive que procurar outras opções e tive sucesso com o Balabolka.

O código que recebi é o seguinte:

import subprocess, clipboard
import pandas as pd

Início padrão. Se os pandas sabem tudo, as bibliotecas do subprocesso e da área de transferência não me são familiares. O pacote do subprocesso acessa a versão do console do Balabolka, simulando a linha de comando. O pacote da área de transferência permite copiar texto para a área de transferência, de onde será lido por um sintetizador de fala.

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

Eu li o arquivo csv preparado com palavras e tradução.

words.shape

E eu sempre controlo os valores das variáveis, o que está escrito nelas e como.

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

Eu misturo as palavras no arquivo como cartões, para não lembrar a sequência de palavras.

words10 = words1.iloc[0:100]

Às vezes, não há tempo suficiente para percorrer todo o arquivo de palavras e aqui você pode limitar o número de palavras 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

O texto do próprio programa.

Na variável path, eu chamo a versão do console do Balabolka, o arquivo balcon.exe.

O console possui seus próprios parâmetros de chamada gravados na variável flag.

Especificamente, aqui eu uso:

  • voz livre -n Slt (foi baixado do desenvolvedor dos sintetizadores de voz Olga Yakovleva, eu peguei a voz em inglês com a clareza da pronúncia necessária e, de fato, a voz pode ser qualquer outra)
  • velocidade de pronúncia -s -3 (essa opção significa diminuir a velocidade de pronúncia -3 do padrão)
  • lendo da área de transferência -c (Balabolka pode ler texto de um arquivo e da área de transferência; eu escolhi a área de transferência, porque criar milhares de arquivos com palavras é uma tarefa terrível).

O resultado do programa é assim:

Janela do caderno de Júpiter

Inicialmente, uma longa "salsicha" de saída sem destacar o texto parecia completamente ilegível (primeiro a palavra em inglês, depois a resposta que inseri, depois a saída da tradução correta, depois o resultado da comparação entre a versão original e a entrada, totalizando quatro linhas por palavra). Isso dificultou a análise de erros. Eu tive que usar códigos ANSI para que mais tarde eu pudesse encontrar rapidamente aquelas palavras onde cometi um erro.

Este simulador mais simples não finge ser original. Um grande número de programas mais avançados foi criado, mas para resolver meu próprio problema local, esse resultado me convém. Eu posso controlá-lo do começo ao fim. O script pode ser modificado, remova a ortografia da palavra em inglês, deixe apenas uma voz e treine a escuta. Você também pode mudar a direção da tradução e treinar a escrita de palavras em inglês, o que não foi suficiente para mim no simulador original e com o qual toda essa história começou.

Ficaria feliz se esse script simples ajudar pessoas que não possuem fortes habilidades de programação a criar seu próprio simulador ou a implementar algo mais com base nesse código.

All Articles