10
juin
2021
15:54

Création de fichiers audio MP3 pour apprendre la CW à partir d'un dictionnaire

10 juin 2021 15:54

La tâche consiste à créer un fichier MP3 pour l'entraînement à la réception télégraphique à l'oreille, basé sur des mots de la langue russe, qui se suivraient dans un ordre aléatoire, mais ne seraient pas répétés.

Le plan maximum est de produire un nombre illimité de fichiers MP3 à écouter dans un récepteur MP3/FM de poche.

1. Création d'un dictionnaire des mots russes les plus couramment utilisés

J'ai trouvé un dictionnaire de fréquences de la langue russe sur Internet et j'en ai sélectionné les mots les plus fréquemment utilisés.
freqrnc2011.ods.zip

À l'aide du filtre LibreOffice standard, Calc a supprimé les noms propres et les mots avec des traits d'union du tableau et les a divisés en fichiers par longueur de lettre. De 2 lettres, de 3 lettres, etc., jusqu'à 18 lettres.

Téléchargez des fichiers avec des mots russes dans l'archive :

top_rus.zip

Noms propres dans l'archive :
noms_rus.zip

Exemple de mots de 4 lettres :
torse
horde
myrte
brick
honte
joug
fer à repasser
Chud
cire
imam
antennes
huiles
internet
Éric
viande hachée
fuchs
trésor
carcasse
super
cas d'icône
punaise de lit
kaki

2. Tri inversé (mélange) des mots dans un ordre aléatoire.

J'ai composé la commande :

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

où :

  • top4.txt - nom du fichier d'entrée.
  • La commande tr remplace les espaces par des nouvelles lignes.
  • sort - R - opération inverse du tri (mélange des mots dans un ordre aléatoire).

La sortie est produite sur un flux standard stdout т.е. можно после этой команды использовать другие, берущие исходные данные из потока ввода stdin.

3. Générer un fichier MP3 - à l'aide de la commande ebook2cw

sudo apt-get install ebook2cw

Le programme est lancé à l'aide de la commande ebook2cw, en spécifiant le fichier d'entrée et les paramètres, quelque chose comme ceci :

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

ebook2cw ebook2cw est un programme en ligne de commande qui convertit un ebook en texte brut en Morse
code audio files. It works on several platforms, including Windows and Linux.

où :

-w 20 - Vitesse WPM (mots par minute)
-e 20 - vitesse WPM effective (mots par minute)
-f 800 - fréquence de tonalité télégraphique 800 (Hertz)
-b 64 - débit binaire, c'est-à-dire vitesse du fichier MP3 résultant
-q 8 - Qualité MP3 de 1 à 9 (1 est la meilleure qualité, 9 est la pire)
-o 20wpm - préfixe du nom de fichier "20wpm"
-d 60 - divise le fichier en fragments (durée) de 60 secondes chacun
-u - utilise le codage Unicode pour la langue russe.
-t 20wpm - en-tête dans la balise ID du fichier de sortie

En conséquence, un fichier mp3 avec le code Morse sera créé très rapidement (à une vitesse 300 fois plus rapide que d'habitude) :

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. Tout connecté ensemble

La commande à exécuter dans le terminal prenait la forme suivante :

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

où top2.txt est le nom du fichier d'entrée.
20wpm-2- est le préfixe du fichier de sortie MP3.

Un exemple du résultat du travail de l'équipe
(Pour un ensemble de mots de 4 lettres, la vitesse CW est de 18 WPM)

Mots originaux :
1.txt.zip

Équipe :

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

Résultat du démarrage (-o 18wpm-1-):

Résultat du redémarrage (-o 18wpm-2-):

Résultat du redémarrage (-o 18wpm-3-):

5. Exécutez la commande plusieurs fois pour créer différents fichiers MP3

La commande peut être exécutée plusieurs fois. Si l'option -o est la même, un fichier portant le même nom mais un contenu différent est créé à chaque fois.

Je me suis donné pour tâche de changer le suffixe du fichier (-01, -02 - 03, etc.) après chaque exécution de commande.
J'ai résolu le problème le lendemain. J'ai écrit un script en langage de fichier de commande BASH :

#!/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


En utilisant likecw.sh :

lancer

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

1st_parameter - nom du fichier d'entrée, par exemple top7.txt
2nd_parameter - nombre de fichiers à générer
3rd_parameter - Vitesse WPM

Exemple :

bash likecw.sh top7.txt 5 20
  • créera 5 fichiers MP3 basés sur top7.txt à CW 20wpm.

    likecw.sh.zip

6. Comment traiter tous les fichiers TXT avec une seule commande

Pour chacun des fichiers de top2.txt à top18.txt, 5 variantes de fichiers MP3 sont créées à une vitesse de 20 mots par minute :

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


Publications connexes