Un program pentru generarea codului audio morse. Program pentru generarea codului audio morse Audio morse

În acest articol, voi vorbi despre cei mai buni traducători online de cod Morse de pe Internet și despre cum să lucrați cu ei. În ciuda faptului că codul Morse a ieșit deja din uz în masă, acesta își găsește încă utilizarea în Marina, în activitatea Ministerului Situațiilor de Urgență și, de asemenea, ca mijloc de comunicare între mulți radioamatori. Procesul de conversie literă cu literă a cuvintelor (expresiilor) în codul Morse poate dura mult timp, prin urmare, pentru a accelera acest proces, merită să utilizați servicii speciale de rețea online care vă permit să obțineți traducerea în codul Morse a cuvintele de care avem nevoie într-o fracțiune de secundă.

Ce trebuie să știți despre funcționarea serviciilor de conversie a codului Morse?

Rețeaua oferă un număr suficient de servicii care vă permit să efectuați atât transformarea instantanee a cuvintelor și frazelor necesare în cod Morse, cât și conversia inversă necesară din codul Morse în textul cu care suntem obișnuiți.

Lucrul cu aceste servicii este destul de simplu: accesați o astfel de resursă, introduceți textul (sau codul Morse) necesar transformării într-o fereastră specială, faceți clic pe butonul pentru efectuarea traducerii și obțineți aproape instantaneu rezultatul dorit.

În același timp, unele dintre servicii permit nu numai efectuarea traducerii online în codul Morse, ci și ascultarea formei audio a acestui cod, dacă este necesar, descarcându-l pe un computer ca fișier audio.

Să aruncăm o privire mai atentă la popularii traducători online de cod Morse.

Telegraphist.ru - Tutorial cod Morse online

  1. Lucrul cu site-ul este destul de simplu. Introduceți textul radiogramei din stânga pentru a o converti în cod Morse (sau cod Morse în fereastra din dreapta pentru operația inversă).
  2. Apoi, selectați limba (rusă sau engleză) și faceți clic pe butonul corespunzător cu o săgeată pentru a efectua procedura de traducere.
  3. Resursa vă oferă, de asemenea, să ascultați sunetul codului Morse existent folosind butonul de redare a sunetului corespunzător.

Boyslife.org - o formă de joc de învățare a codului Morse

Popularul portal internațional de divertisment boyslife.org oferă utilizatorilor un instrument convenabil pentru afișarea simbolurilor codului Morse pentru literele alfabetului latin. Precum și posibilitatea de a-ți testa cunoștințele de cod Morse cu ajutorul unor teste speciale.

Când mergeți la resursă, veți vedea o tastatură virtuală în care fiecare literă (număr) de pe tastă va corespunde codului Morse corespunzător. Pentru a vă testa cunoștințele despre codul Morse, apăsați tasta „Test 1: Ascultați și ghiciți” (vi se cere să ascultați codul Morse, apoi ghiciți ce număr sau ce literă este) sau „Test 2: litera Morse” (trebuie să tastați litera sau numărul necesar în codul Morse).

Bestfree.ru - Convertiți textul în cod Morse și invers

Pentru a efectua o conversie simplă și convenabilă a textului în cod Morse, ar trebui să utilizați serviciul bestfree.ru. Serviciul are o interfață simplă și convenabilă în limba rusă, ceea ce facilitează traducerea textului din forme standard chirilice și latine în cod Morse și invers.

  1. Pentru a lucra cu servicii, conectați-vă la bestfree.ru.
  2. Selectați limba dorită și direcția de conversie.
  3. Introduceți textul dorit în fereastra corespunzătoare și faceți clic pe butonul „Convertire”.

Morsify.net - traducător internațional de cod Morse online

Serviciul internațional morsify.net este un traducător de cod Morse cu o componentă audio care vă permite să reproduceți sunetul codului Morse pe care îl avem (sau primit ca urmare a traducerii).

Ecranul de lucru al serviciului este împărțit în două ferestre. În stânga, puteți introduce textul de care aveți nevoie în chirilic sau latin, iar în dreapta, codul Morse corespunzător va fi afișat automat.

Pentru a reda codul Morse, faceți clic pe butonul „Play” (cu o săgeată) din partea de sus.

4txt.ru - serviciu casnic pentru transformarea textului în cod Morse

Și ultimul serviciu despre care vreau să vorbesc în acest material este 4txt.ru. Funcționalitatea sa amintește de serviciul morsify.net descris mai sus, în timp ce transformarea automată a textului în cod Morse funcționează aici doar într-o singură direcție - de la chirilic (latină) la codul Morse.

În caz contrar, serviciul are un set de instrumente clasic pentru servicii de acest tip.

Concluzie

Aproape toți traducătorii online de cod Morse enumerați mai sus ne permit să transformăm textul de care avem nevoie în forma de cod Morse și invers (cu excepția serviciului 4txt.ru, care funcționează unilateral). Dintre toate serviciile enumerate, aș dori să atrag atenția cititorului asupra serviciilor telegraphist.ru și morsify.net. Permițând nu numai traducerea textului dorit în codul Morse, ci și ascultarea sunetului rezultatului, ceea ce este util atunci când antrenați percepția codului Morse după ureche (ascultare).

Dar este conceput pentru a studia codurile literelor chirilice, ceea ce este irelevant în comunicațiile radio moderne (toată lumea folosește alfabetul latin, cu excepția vitejoasei noastre armate).

Ca instrument de implementare a ideii, C++ a fost ales împreună cu Qt.

Ideea principală a programului

Atomul (unitatea de timp) codului Morse este un punct, în raport cu acesta se formează durata tuturor celorlalte elemente:
  1. O liniuță este egală cu trei puncte care sună;
  2. O pauză între elementele unui simbol (semn) este un punct tăcut;
  3. Între semne - trei puncte;
  4. Există șapte puncte între cuvinte.
După cum puteți vedea, orice cod bazat pe codul Morse poate fi reprezentat ca un set de puncte sonore și nesunătoare: am plecat de la această idee, iar această soluție mi s-a părut destul de originală.

Implementarea originală

În prima versiune a programului, combinația de puncte care sună și cele nesunete a fost stocată ca un vector cu elemente booleene, unde Adevărat corespundea includerii sunetului și fals- închide.

După cum ați înțeles deja, pentru a obține semnalul final, am „tras” sunetul cu o întârziere (folosind un temporizator egal cu durata unui punct în milisecunde) cu un fișier .wav care se redă la nesfârșit cu o înregistrare sinusoidală. Dar această abordare a avut un dezavantaj semnificativ și a constat în faptul că fiecare punct trebuia încărcat separat folosind un operator supraîncărcat sau o metodă specială. Din cauza acestei abordări, a trebuit să scriu o macrocomandă separată pentru fiecare literă (astfel - #define I DOT<< false << DOT) и создать огромный жуткий intrerupator pentru a cânta coarda trecută. A fost îngrozitor, dar dacă ești curios, poți să verifici
cu prima versiune a programului (nu am reușit să încarc complet depozitul local pe GitHub - doar cea mai recentă versiune).

O bucată de comutator înfiorător:

bool Morse::StringToMorse (QString &line) (linia += "\0"; pentru (int i = 0; i< line.size () - 1; ++i) { switch (line.at(i).unicode ()) { case "A": *this << A; if (line.at (i + 1) == " ") continue; else *this << MINI_SPACE; break; case "B": *this << B; if (line.at (i + 1) == " ") continue; else *this << MINI_SPACE; break; // И так далее


Și așa s-a pornit și oprit sunetul (de fapt, generarea codului de sunet):

void Morse::PlayLinePoints () ( QTimer::singleShot (duration_point_, this, SLOT (Mute ())); sound_.play (); ) void Morse::Mute () ( if (line_points_.empty ()) ( / /Opriți redarea sunet_.stop (); return; ) if (line_points_.at (0)) ( //Activați sunetul sound_.setMuted (fals); line_points_.remove (0); QTimer::singleShot (duration_point_, acest , SLOT (Mute ())); return; ) else ( sound_.setMuted (adevărat); //Dezactivați sunetul line_points_.remove (0); QTimer::singleShot (duration_point_, this, SLOT (Mute ())) ; întoarcere; ))

versiunea finala

Aceste macro-uri s-au dovedit a fi foarte greoaie, iar perfecționismul meu nu a mai putut privi aceste construcții monstruoase. După ce m-am gândit puțin, am ajuns la concluzia că am o idee bună, dar stocarea codurilor sub formă de macro-uri este foarte incomod și dacă rezolvi această problemă, atunci totul va fi bine. Ca rezultat, QMap a fost folosit pentru a stoca coduri:

// Stochează combinațiile adecvate de puncte și liniuțe ale caracterelor QMap coduri_;
Această abordare s-a dovedit a fi foarte convenabilă. Acum am folosit personajul actual ca o cheie și m-am pregătit
pentru a reproduce codul (un set de valori booleene), totuși, algoritmul de redare a devenit puțin mai complicat: a fost necesar să introduceți contorul elementului curent al caracterului și contorul de caractere din linie:

Noua implementare a redării:

void Morse::MiniSpace () ( if (stop_) ( this->Stop (); return; ) sound_.setMuted (true); ++id_element_; //Mergeți la alt element de cod dacă (id_element_ == codes_.value ( string_to_play_.at (id_char_)).size ()) ( ++id_char_; id_element_ = 0; QTimer::singleShot (duration_dot_ * 3, this, SLOT (Mute())); //Pauză între caractere revine; ) QTimer: :singleShot (duration_dot_, this, SLOT (Mute())); //Pauză între elementele caracterului ) void Morse::Space () ( if (stop_) ( this->Stop (); return; ) sound_.setMuted (adevărat) ); //Pauza durează 7 puncte //Dar deoarece după caracter există o pauză de trei puncte, atunci o pauză suplimentară trebuie setată la o lungime de 4 puncte QTimer::singleShot (duration_dot_ * 4, this, SLOT (Mute) ())); ) void Morse::Mute () ( if (stop_) ( this->Stop (); return; ) if (id_char_ == string_to_play_.size ()) ( // Linia terminată this->Stop ( ; return; ) if (string_to_play_.at (id_char_) == " ") ( Space(); ++id_char_; //Mergeți la alt element de cod return; ) if (coduri _.find (string_to_play_.at (id_char_)) == codes_.end ()) ( qDebug()<< string_to_play_.at (id_char_) << ": No code!"; sound_.stop (); return; } sound_.setMuted (false); //Включаем звук if (codes_.value (string_to_play_.at (id_char_)).at (id_element_)) { QTimer::singleShot (duration_dot_, this, SLOT (MiniSpace())); //Воспроизводим точку } else { QTimer::singleShot (duration_dot_ * 3, this, SLOT (MiniSpace())); //Воспроизводим тире } } bool Morse::Play () { if (!stop_) return false; if (string_to_play_ == "") return false; stop_ = false; id_char_ = 0; id_element_ = 0; sound_.setMuted (true); //Выключаем звук sound_.play (); Mute (); } void Morse::Stop () { if (stop_) return; sound_.stop (); id_char_ = 0; id_element_ = 0; stop_ = true; }


Steag Stop_ a fost introdus pentru a preveni operarea incorectă a programului (două apeluri la rând la Play() și alte lucruri rele).
Nu văd niciun motiv să includ restul codurilor sursă și fișierelor de antet în corpul articolului, deoarece totul este destul de evident și transparent acolo.

Puteți descărca setul complet de surse pentru cea mai recentă versiune pe github. Scrierea unei interfețe grafice este o sarcină banală, dar totuși, dacă este creată o interfață grafică, atunci voi adăuga un link. Dacă aveți întrebări sau comentarii, scrieți în comentarii - cu siguranță voi răspunde.

Vă aducem la cunoștință translatorul de cod Morse online.

Ce înseamnă? Să presupunem că trebuie să traduceți sau să ascultați cum va suna textul dvs. tradus în cod Morse. Introduceți textul în caseta din stânga, indicați limba textului de mai jos și apăsați săgeata din dreapta. În fereastra din dreapta vei primi codul Morse al textului tău. Făcând clic pe butonul „redare” de mai jos, vă puteți asculta textul în cod Morse. În acest fel, veți folosi traducătorul nostru de cod Morse online.

Traducător de text online
la codul Morse și înapoi

În interpretarea textuală a codului, „semnul de partiție” (-···-) este folosit pentru a indica un spațiu. Acest lucru se face numai pentru ușurința copierii.

Atenţie! Playerul încorporat funcționează bine în Chrome, în mod normal - în Opera (dacă tace, poți re-coda textul în cod Morse, ajută), foarte mediocru - în safari. Nu funcționează deloc în Firefox și Internet Explorer .

În versiunea audio a mesajului se respectă toate regulile: durata unui punct este luată ca unitate de timp; lungimea unei linii este de trei puncte; pauză între elementele aceluiași caracter - un punct, între caracterele dintr-un cuvânt - 3 puncte, între cuvinte - 7 puncte.

Fișierul de sunet pentru descărcare este prezentat în formatWAV (trebuie descărcat, nu deschis într-un browser). Este mare: de exemplu, codul Morse pentru trimitere„Greek a traversat râul. vede un grec, un cancer în râu. pune mâna grecului în râu, cancer de mâna grecului tsap. cântărește 209 KB(deși conține doar835 biți informație).

Vrei să-ți testezi puterea? Nu este nimic mai ușor.

Melodii de cod Morse:

chirilic
latin
Codul Morse
cântare
DAR
DAR
. —
Ah, da
B
ÎN
— . . .
ba-ki-te-kut
ÎN
W
. — —
vi-da-la
G
G
— — .
ha-ra-zhi
D
D
— . .
do-mi-ki
E
E
.
mânca
F
V
. . . —
same-le-zi-sute
Z
Z
— — . .
for-ka-ti-ki
ȘI
eu
. .
i-di
Y
J
. — — —
si scurt
LA
LA
— . —
ce mai faci
L
L
. — . .
lu-na-tee-ki
M
M
— —
mămică
H
N
— .
cameră
DESPRE
DESPRE
— — —
despre
P
P
. — — .
pi-la-po-et
R
R
. — .
re-sha-et
DIN
S
. . .
b-nu-e
T
T

Asa de
La
U
. . —
u-nes-lo
F
F
. . — .
fi-li-mon-chik
X
H
. . . .
hee-mi-chi-te
C
DIN
— . — .
tsap-li-na-shi
H
Nu
— — — .
cha-sha-nu
W
Nu
— — — —
sha-ro-wa-ra
SCH
Q
— — . —
sha-tu-nu-sha
b, b
X
— . . —
apoi-soft-cue-sign
S
Y
— . — —
s-nu-în sus
E
Nu
. . — . .
e-le-ron-chi-ki
YU
Nu
. . — —
Juliana
eu
Nu
. — . —
i-mic-eu-mic

Dar melodiile numerelor și cele mai comune semne. Observ că în textele pur digitale, zero este adesea transmis cu o liniuță, ca litera T - acest lucru diversifică în mod plăcut transmisia și elimină nevoia de a asculta cinci liniuțe la rând;)
Semn
Codul Morse
cântare
0
— — — — —
zero-o-o-o-lo
1
. — — — —
și-doar-la-unu-pe
2
. . — — —
M-am dus-la-munte
3
. . . — —
trei-te-be-ma-lo sau I-ku-ka-ra-cha
4
. . . . —
thr-ve-ri-te-ka
5
. . . . .
cinci-ti-le-ti-e
6
— . . . .
six-ti-be-ri
7
— — . . .
da-da-se-me-rik
8
— — — . .
opt-mo-go-and-di
9
— — — — .
dar-pe-dar-pe-mi
?
. . — — . .
unde-să-mi-întreb-pipi-sat
!
— — . . — —
de-ka-nu-de-ka-pentru
,
. — . — . —
și-așa-și-așa
\ (separator)
— . . . —
time-de-li-te-ka

    Există multe opțiuni pentru decodarea semnalului de primejdie SOS - „Salvează sufletele noastre”, „Salvează nava noastră”, „Înot sau scufundă”, „Oprire alte semnale”, „Salvează de la moarte”. Dar toate sunt doar mnemonice, inventate pentru o mai bună memorare, în timp ce la momentul adoptării acestui semnal ca standard la Conferința Internațională de Radiotelegrafie din 1906, abrevierea nu i-a fost dat niciun sens. Chiar și literele SOS în sine pot fi atribuite secvenței codului Morse (. . . . - - - . . . .) foarte condiționat, deoarece nu există intervale între litere în ea. Și au acceptat această combinație de puncte și liniuțe datorită faptului că s-a dovedit a fi mai convenabilă decât altele pentru recunoaștere și selecție în fluxul general de semnale datorită lungimii și simetriei sale suficiente.

    Samuel Morse a fost artist până la vârsta de 34 de ani și nu a fost interesat de tehnologie. În 1825, un mesager i-a trimis o scrisoare de la tatăl său în care spunea că soția lui era pe moarte. Morse a părăsit imediat Washingtonul și s-a dus la New Haven, unde locuia familia lui, dar până a sosit, soția lui fusese deja îngropată. Acest incident l-a forțat pe Morse să părăsească pictura și să se aprofundeze în studiul modalităților de a transmite rapid mesaje pe distanțe lungi, ceea ce a dus la dezvoltarea codului Morse și a telegrafului electric în 1838.

    Codul Morse în forma sa obișnuită nu a fost inventat de Morse, ci de inginerul german Gercke. Codul Morse original era incomod, deși a fost folosit pe unele căi ferate americane până în anii 1960.

    La 6 februarie 1900, un post de radio situat în orașul finlandez Kotka a transmis o telegramă fără fir către spărgătorul de gheață Ermak cu ordin de a salva 50 de pescari pe banchiza de gheață. A fost prima transmisie a unui semnal radio de primejdie pe mare. Operațiunea de salvare a fost finalizată cu succes.

    Submarinele moderne sunt dotate cu mijloace mai eficiente de comunicare cu „lumea terestră”. Comunicarea se realizează pe valuri ultralungi, care sunt capabile să pătrundă până la o adâncime a oceanului de până la 300 de metri. Aceasta este o „comunicație mobilă” foarte costisitoare, care necesită întreținerea câmpurilor puternice de antenă de la sol, care consumă până la 30 MW de putere, și avioane de comunicații care zăbovesc constant pe cer.

    Semnalul SOS este transmis la o frecvență de 600 de metri doar în caz de urgență, când echipajul și pasagerii sunt în pericol real de viață. În cazul încălcării acestei reguli, se pot impune sancțiuni făptuitorilor de panică nerezonabilă. Sau moral, că în comunitatea maritimă nu este o frază goală. Sau material - atunci când navele care au venit în ajutor suferă pierderi materiale importante. Cu toate acestea, există o excepție de la această regulă imuabilă. Căpitanul unei nave poate, în unele cazuri, să transmită informații pe o „frecvență comunitară” în trei „minute de tăcere” fixe despre apariția unei amenințări grave la adresa navelor din regiune. Acestea pot fi rapoarte de funcționare defectuoasă a farurilor, activitate vulcanică, activitate piraților, nave scufundate ...

    Pentru a accelera comunicațiile radio, abrevierile, „codurile Q” din trei litere și numeroase expresii argou au fost introduse în uz pe scară largă. De aici, codul Q este transmis sub forma unei întrebări sau a unei afirmații, sensul său se schimbă. În comunicarea vocală, semnalul SOS nu este utilizat, semnalul de primejdie este Mayday. Este interzisă darea unui semnal SOS dacă nu există o amenințare reală la adresa vieții oamenilor sau a unei nave pe mare.

Codul Morse este o metodă de codificare a caracterelor care permite operatorilor să trimită mesaje folosind o serie de semnale electrice lungi și scurte, sau cu alte cuvinte, folosind puncte și liniuțe.

Cine a inventat codul Morse?

Codul Morse a fost inventat de Samuel F. B. Morse și asistentul său Alfred Weil.

Când a fost inventat codul Morse?

Codul Morse a fost dezvoltat în anii 1830 și îmbunătățit în anii 1840.

Care a fost primul mesaj trimis folosind codul Morse?

Primul mesaj oficial a fost: „Ce a făcut Dumnezeu” (în rusă: Minunate sunt lucrările Tale, Doamne!). A fost trimis de Samuel F. B. Morse la 24 mai 1844, la deschiderea liniei telegrafice Baltimore-Washington.

Pentru ce este folosit codul Morse?

În trecut, codul Morse a fost folosit pe scară largă, în special în armată. Astăzi, codul Morse are un domeniu de aplicare limitat, dar este încă folosit în aviație, în comunitatea de radioamatori și ca tehnologie de asistență pentru persoanele cu dizabilități.

Cum se folosește codul Morse?

Codul Morse poate fi folosit într-o varietate de moduri, cum ar fi cu pix și hârtie, cu lumină și sunet sau chiar cu ochii sau cu degetele.

Cum să înveți codul Morse?

Puteți învăța codul Morse ascultând înregistrări audio ale codului, precum și prin aplicarea metodelor de memorare a cuvintelor care pot fi găsite pe diverse site-uri. Una dintre cele mai bune metode de a învăța codul Morse în 2019 a fost tastatura Gboard de la Google. Puteți studia online gratuit cu exercițiile de învățare a codului Morse oferite de Google Creative Lab.

Cum se citește codul Morse?

Dacă nu aveți experiență în citirea codului Morse, puteți găsi caracterele corespunzătoare în tabelul de cod Morse sau puteți utiliza pur și simplu un traducător de cod Morse.

Cum se traduce codul Morse?

Dacă doriți să traduceți sau să decodați codul Morse și nu știți cum să-l citiți, puteți utiliza pur și simplu traducătorul de cod Morse online. Cu traducătorul de cod Morse, puteți descifra cu ușurință codul și puteți citi textul în rusă.

Ce este traducătorul de cod Morse?

Traducatorul de cod Morse permite oricui să traducă codul Morse în text și să decodeze cu ușurință mesajul scris în cod. Cu ajutorul unui traducător online de cod Morse, oricine poate traduce un text simplu în rusă sau altă limbă în cod Morse și invers. Îți amintești tonul de apel Nokia SMS? Dacă doriți să experimentați nostalgia, încercați să descifrați codul „... -- ...” și apoi redați sunetul. Ce se întâmplă dacă trebuie să descifrezi un mesaj secret în cod Morse sau dai peste un ou de Paște cu un cod în joc? Traducătorul de cod Morse vă stă la dispoziție 7/24 dacă aveți o conexiune la internet și doriți să învățați codul Morse.