10
Juni
2021
15:54

Erstellen von MP3-Audiodateien zum CW-Lernen anhand eines Wörterbuchs

10 Juni 2021 15:54

Die Aufgabe besteht darin, eine MP3-Datei zum Trainieren des Telegraphenempfangs nach Gehör zu erstellen, die auf Wörtern der russischen Sprache basiert und in zufälliger Reihenfolge folgt, aber nicht wiederholt wird.

Der maximale Plan besteht darin, eine unbegrenzte Anzahl von MP3-Dateien zum Anhören in einem Taschen-MP3-/FM-Empfänger auszugeben.

1. Erstellung eines Wörterbuchs der am häufigsten verwendeten russischen Wörter

Ich habe im Internet ein Häufigkeitswörterbuch der russischen Sprache gefunden und daraus die am häufigsten verwendeten Wörter ausgewählt.
freqrnc2011.ods.zip

Mithilfe des Standardfilters von LibreOffice entfernte Calc Eigennamen und Wörter mit Bindestrichen aus der Tabelle und teilte sie nach Buchstabenlänge in Dateien auf. Von 2 Buchstaben, von 3 Buchstaben usw. bis zu 18 Buchstaben.

Laden Sie Dateien mit russischen Wörtern im Archiv herunter:

top_rus.zip

Eigennamen im Archiv:
Namen_rus.zip

Beispiel für Wörter mit 4 Buchstaben:
Oberkörper
Horde
Myrte
Brig
schade
Joch
Eisen
Chud
Wachs
Imam
Antennen
Öle
Internet
Erik
Hackfleisch
Fuchs
Schatz
Kadaver
großartig
Icon-Hülle
Bettwanze
Khaki

2. Umgekehrtes Sortieren (Mischen) von Wörtern in zufälliger Reihenfolge.

Ich habe den Befehl verfasst:

cat top4.txt | tr ' ' '\n' | uniq | sort -R

wo:

  • top4.txt – Name der Eingabedatei.
  • Der Befehl tr ersetzt Leerzeichen durch Zeilenumbrüche.
  • sort – R – Operation invers zur Sortierung (Mischen von Wörtern in zufälliger Reihenfolge).

Die Ausgabe erfolgt im Standard-Stream stdout т.е. можно после этой команды использовать другие, берущие исходные данные из потока ввода stdin.

3. Generieren einer MP3-Datei – mit dem Befehl ebook2cw

sudo apt-get install ebook2cw

Das Programm wird mit dem Befehl ebook2cw gestartet, wobei die Eingabedatei und die Parameter angegeben werden, etwa so:

ebook2cw top3.txt -w 20 -e 20 -f 800 -b 64 -o 20wpm -d 60 -u -t 20wpm

ebook2cw ebook2cw ist ein Befehlszeilenprogramm, das ein reines Text-E-Book in Morse umwandelt
code audio files. It works on several platforms, including Windows and Linux.

wo:

-w 20 – WPM-Geschwindigkeit (Wörter pro Minute)
-e 20 – effektive WPM-Geschwindigkeit (Wörter pro Minute)
-f 800 - Telegraphentonfrequenz 800 (Hertz)
-b 64 – Bitrate, d. h. Geschwindigkeit der resultierenden MP3-Datei
-q 8 – MP3-Qualität von 1 bis 9 (1 ist die beste Qualität, 9 die schlechteste)
-o 20wpm – Dateinamenpräfix „20wpm“
-d 60 – teilt die Datei in Fragmente (Dauer) von jeweils 60 Sekunden auf
-u – Unicode-Kodierung für die russische Sprache verwenden.
-t 20wpm – Header im ID-Tag der Ausgabedatei

Dadurch wird sehr schnell eine MP3-Datei mit Morsecode erstellt (300-mal schneller als üblich):

ebook2cw 0.8.2 - (c) 2013 by Fabian Kurz, DJ1YFK

Reading configuration file: /home/vladimir/.ebook2cw/ebook2cw.conf

Speed: 20wpm, Freq: 800Hz, Chapter: >CHAPTER<, Encoding: UTF-8

Effective speed: 20wpm, Extra word spaces: 0.0, QRQ: 0min, reset QRQ: yes

Chapter limit: 60 seconds, Encoder: MP3

Starting 20wpm0000.mp3

Warning: don't know CW for unicode &#1019;

words: 405, time: 14:30

Finishing 20wpm0000.mp3

Total words: 405, total time: 14:30

Conversion time: 2s (Speedup: 290.0x)

4. Alles miteinander verbunden

Der im Terminal auszuführende Befehl hatte die folgende Form:

cat top2.txt | tr ' ' '\n' | uniq | sort -R | ebook2cw -w 20 -e 20 -f 800 -b 64 -o 20wpm-2- -d 60 -u -t 20wpm

Dabei ist top2.txt der Name der Eingabedatei.
20wpm-2- ist das Präfix der MP3-Ausgabedatei.

Ein Beispiel für das Ergebnis der Teamarbeit
(Für einen Satz von Wörtern mit 4 Buchstaben beträgt die CW-Geschwindigkeit 18 WPM)

Originalwörter:
1.txt.zip

Team:

cat 1.txt | tr ' ' '\n' | uniq | sort -R | ebook2cw -w 18 -e 18 -f 800 -b 64 -o 18wpm-1- -d 60 -u -t 18wpm

Startergebnis (-o 18wpm-1-):

Ergebnis des Neustarts (-o 18wpm-2-):

Ergebnis des Neustarts (-o 18wpm-3-):

5. Führen Sie den Befehl mehrmals aus, um verschiedene MP3-Dateien zu erstellen

Der Befehl kann mehrmals ausgeführt werden. Bei gleicher Option -o wird jedes Mal eine Datei mit demselben Namen, aber unterschiedlichem Inhalt erstellt.

Ich habe es mir zur Aufgabe gemacht, nach jedem Befehlslauf das Dateisuffix (-01, -02 - 03 usw.) zu ändern.
Ich habe das Problem am nächsten Tag gelöst. Ich habe ein Skript in der BASH-Befehlsdateisprache geschrieben:

#!/bin/bash

#

# #This is a script that creates number of mp3 files with morse code

# Usage: hello some.txt 5 20

# where some.txt - input text file

# 5 - number of files

# 20 - speed wpm

txt=$1

max=$2

speed=$3

if [ -z txt ]; then

echo "Input text file:"

read txt

fi

if [ -z $max ]; then

echo "Number of MP3 files to create:"

read max

fi

if [ -z $speed ]; then

echo "CW speed in WPM:"

read speed

fi

echo max = $max

echo speed = $speed

delim="-"

ext=".mp3"

for (( cnt=1; cnt<=$max; cnt++ )); do

name1=$(printf "%02dwpm" $speed)

name2=$(printf "%03d" $cnt)

title=$txt$delim$name1$delim$name2

name=$title$ext

cat $txt | tr ' ' '\n' | uniq | sort -R | ebook2cw -u -f 800 -b 64 -w $speed -e $speed -t $title

mv -v "Chapter0000.mp3" "${name}"

done

exit 0


Verwendung von likecw.sh:

starten

bash likecw.sh 1-й_параметр 2-й_параметр 3-й_параметр

1._Parameter – Name der Eingabedatei, zum Beispiel top7.txt
2._Parameter – Anzahl der zu generierenden Dateien

  1. Parameter – WPM-Geschwindigkeit

    Beispiel:

    bash likecw.sh top7.txt 5 20

    • erstellt 5 MP3-Dateien basierend auf top7.txt bei CW 20wpm.

    likecw.sh.zip

6. So verarbeiten Sie alle TXT-Dateien mit einem Befehl

Für jede der Dateien von top2.txt bis top18.txt werden 5 Varianten von MP3-Dateien mit einer Geschwindigkeit von 20 wpm erstellt:

bash likecw.sh top{2..18}.txt 5 20


Verwandte Veröffentlichungen