Der einfachste englische Wortsimulator mit Python und Balabolka

Es gibt eine Vielzahl unterschiedlicher Methoden, um Fremdsprachen im Allgemeinen und Englisch im Besonderen zu lernen. Unabhängig von der Methode ist das Erlernen von Wörtern dennoch erforderlich.

Für diese Zwecke gibt es so viele verschiedene Simulatoren mit einer Auswahl an zu lernenden Wörtern. Ihre Fähigkeiten reichen jedoch manchmal nicht aus.

Auf einem dieser Simulatoren habe ich bereits genug Wörter gelernt. Und mit einem Problem konfrontiert. Der Simulator bietet ein russisches Wort an. Als Antwort müssen Sie dieses Wort auf Englisch schreiben. Der Ansager (eigentlich ein Sprachsynthesizer) spricht dann die englische Version aus. Ich schreibe alle Wörter perfekt, aber wenn ich den englischen Text sehe, erinnere ich mich nur daran, dass ich dieses Wort unterrichtet habe, aber ich erinnere mich nicht, was es bedeutet. Das heißt, ich erkannte, dass mir das Erkennen von Wörtern fehlt.

Ein weiterer Nachteil des ausgewählten Simulators ist, dass leere Stellen zur Eingabe angeboten werden, in die Buchstaben eingegeben werden müssen, und ich habe immer einen Hinweis darauf, wie viele Buchstaben in einem Wort enthalten sein sollten, und dies ist kein Sport.

Aufgrund dieser Überlegungen wurde mir klar, dass ich meinen Simulator für die Wiederholung der Wörter erstellen möchte, die ich studiert habe. Dieser Simulator sollte in Übersetzungsrichtung und mit Sprachausgabe des englischen Textes englisch-russisch sein, um das Hören zu trainieren.

Das Verfahren zur Lösung des Problems war wie folgt:

  • Ich habe eine CSV-Datei aus zwei Spalten vorbereitet: "Wort" und "Übersetzen", die alle benötigten Wörter enthielten.
  • Ich habe die Konsolenversion von Balabolka heruntergeladen, dem bekannten kostenlosen Programm tts (Text-to-Speach), das für die Sprachausgabe von Text sowohl aus einer Datei als auch aus der Zwischenablage vorgesehen ist.
  • Ich habe Arbeitscode in das Jupiter Notebook unter dem Betriebssystem Windows 10 geschrieben.

Ich bin nicht sofort gekommen, um Balabolka zu benutzen. Zuerst wollte ich die pyttsx3-Bibliothek verwenden, aber beim Initialisieren des Pakets pyttsx3.init () stürzten viele Fehler ab, und beim Starten von pyttsx3.init ('Dummy') war kein Ton zu hören. Es gelang mir nicht, gegenseitige Missverständnisse mit diesem Paket zu überwinden, daher musste ich nach anderen Optionen suchen, und es gelang mir mit Balabolka.

Der Code, den ich bekommen habe, ist folgender:

import subprocess, clipboard
import pandas as pd

Standardstart. Wenn Pandas alles wissen, waren mir die Unterprozess- und Zwischenablagebibliotheken unbekannt. Das Unterprozesspaket greift auf die Konsolenversion von Balabolka zu und simuliert die Befehlszeile. Mit dem Zwischenablagepaket können Sie Text in die Zwischenablage kopieren, von wo aus er von einem Sprachsynthesizer gelesen wird.

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

Ich habe die vorbereitete CSV-Datei mit Worten und Übersetzung gelesen.

words.shape

Und ich kontrolliere immer die Werte der Variablen, was in ihnen geschrieben ist und wie.

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

Ich mische die Wörter in der Datei wie Karten, um mich nicht an die Reihenfolge der Wörter zu erinnern.

words10 = words1.iloc[0:100]

Manchmal bleibt nicht genügend Zeit, um die gesamte Wortdatei durchzugehen, und hier können Sie die Anzahl der wiederholten Wörter begrenzen.

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

Der Text des Programms selbst.

In der Pfadvariablen rufe ich die Konsolenversion von Balabolka auf, die Datei balcon.exe.

Die Konsole verfügt über eigene Aufrufparameter, die in die Flag-Variable geschrieben werden.

Insbesondere benutze ich hier:

  • free voice -n Slt (es wurde vom Entwickler der Sprachsynthesizer Olga Yakovleva heruntergeladen, ich habe die englische Stimme mit der von mir benötigten Klarheit der Aussprache aufgenommen und tatsächlich kann die Stimme jede andere sein)
  • Aussprachegeschwindigkeit -s -3 (diese Option bedeutet, dass die Aussprachegeschwindigkeit -3 gegenüber dem Standard verlangsamt wird)
  • Lesen aus der Zwischenablage -c (Balabolka kann Text sowohl aus einer Datei als auch aus der Zwischenablage lesen; ich habe die Zwischenablage ausgewählt, weil das Erstellen von Tausenden von Dateien mit Wörtern ein schreckliches Unterfangen ist).

Das Ergebnis des Programms sieht folgendermaßen aus:

Jupiter-Notizbuchfenster

Anfangs sah eine lange „Wurst“ der Ausgabe ohne Hervorhebung des Textes völlig unlesbar aus (zuerst das Wort auf Englisch, dann die von mir eingegebene Antwort, dann die Ausgabe der korrekten Übersetzung, dann das Ergebnis des Vergleichs der Originalversion und der eingegebenen, insgesamt vier Zeilen pro Wort). Dies machte es sehr schwierig, Fehler zu analysieren. Ich musste ANSI-Codes verwenden, damit ich später schnell die Wörter finden konnte, bei denen ich einen Fehler gemacht hatte.

Dieser einfachste Simulator gibt nicht vor, original zu sein. Eine große Anzahl fortgeschrittener Programme wurde erstellt, aber um mein eigenes lokales Problem zu lösen, passt dieses Ergebnis zu mir. Ich kann es von Anfang bis Ende steuern. Das Skript kann geändert werden, die Schreibweise des englischen Wortes entfernen, nur eine Stimme hinterlassen und das Hören trainieren. Sie können auch die Richtung der Übersetzung ändern und die Schreibweise englischer Wörter trainieren, was mir im ursprünglichen Simulator nicht ausreichte und mit der diese ganze Geschichte begann.

Ich würde mich freuen, wenn dieses einfache Skript Menschen ohne ausgeprägte Programmierkenntnisse hilft, ihren eigenen Simulator zu erstellen oder etwas anderes basierend auf diesem Code zu implementieren.

All Articles