телевизори. Конзоли. Проектори и аксесоари. Технологии. Цифрова телевизия

Програма за генериране на морзов звуков код. Програма за генериране на морзова звукова азбука Морзова азбука създаване на звуков файл

Морзовата азбука е метод за кодиране на знаци, който позволява на операторите да изпращат съобщения, използвайки поредица от дълги и къси електрически сигнали, или с други думи, използвайки точки и тирета.

Кой е изобретил морзовата азбука?

Самюел Ф. Б. Морз и неговият асистент Алфред Вейл се смятат за изобретатели на морзовата азбука.

Кога е изобретен морзовият код?

Морзовата азбука е разработена през 1830-те и подобрена през 1840-те.

Кое беше първото съобщение, изпратено с морзовата азбука?

Първото официално послание беше: „Какво сотвори Бог“ (на руски: Чудни дела Твои, Господи!). Изпратено е от Самюъл Ф. Б. Морз на 24 май 1844 г. при откриването на телеграфната линия Балтимор-Вашингтон.

За какво се използва морзовата азбука?

В миналото морзовата азбука се използваше много широко, особено в армията. Днес морзовата азбука има ограничени приложения, но все още се използва в авиацията, сред радиолюбителите оператори и като помощна технология за хора с увреждания.

Как да използвам Морзов код?

Може да се използва морзова азбука различни начини, например с писалка и хартия, със светлина и звук или дори с очи или пръсти.

Как да научите морзовата азбука?

Можете да научите морзовата азбука, като слушате аудиозаписи на кода, както и като използвате техники за запаметяване на думи, които можете да намерите на различни уебсайтове. Един от най-добрите методи за изучаване на морзов код през 2019 г. беше клавиатурата Gboard от Google. Можете да практикувате онлайн безплатно с упражнения с морзов код, предоставени от Google Creative Lab.

Как да четем морзов код?

Ако нямате достатъчно опит в четенето на морзов код, можете да потърсите съответните знаци в таблица с морзов код или просто да използвате преводач на морзов код.

Как се превежда морзовата азбука?

Ако искате да преведете или дешифрирате морзов код и не знаете как да го четете, можете просто да използвате онлайн преводач на морзов код. С помощта на преводач на морзова азбука можете лесно да дешифрирате кода и да прочетете текста на руски.

Какво е преводач на морзова азбука?

Преводачът на морзова азбука позволява на всеки да преведе морзовата азбука в текст и лесно да декодира съобщението, написано в кода. С помощта на онлайн преводач на морзова азбука всеки може да преведе прост текст на руски или друг език на морзова азбука и обратно. Помните ли SMS мелодията на Nokia? Ако искате да изпитате носталгия, опитайте да дешифрирате кода "... -- ..." и след това пуснете звука. Какво ще стане, ако трябва да дешифрирате тайно съобщение на Морзова азбука или попаднете на нещо в играта? Великденско яйцес код? Преводач на морзова азбука е на ваше разположение 7/24, ако имате интернет връзка и желание да научите морзовата азбука.

Но той е предназначен за изучаване на кодове кирилски букви, което е без значение в съвременните радиокомуникации (всички използват латиница, освен нашата доблестна армия).

Като инструмент за реализиране на идеята беше избран C++ във връзка с Qt.

Основната идея на програмата

Атомът (единица за време) на морзовата азбука е точка; продължителността на всички останали елементи се формира спрямо нея:
  1. Тире се равнява на три звучащи точки;
  2. Паузата между елементите на един символ (знак) е една тиха точка;
  3. Между знаците има три точки;
  4. Между думите има седем точки.
Както можете да видите, всеки код, базиран на морзов код, може да бъде представен като набор от звучащи и тихи точки: започнах от тази идея и това решение ми се стори доста оригинално.

Първоначално изпълнение

В първата версия на програмата комбинацията от звучащи и тихи точки се съхраняваше като вектор с булеви елементи, където вярносъответстваше на включване на звука и невярно- изключвам.

Както вече разбрахте, за да получа крайния сигнал, просто „издърпах“ звука с известно закъснение (използвайки таймер, равен на продължителността на точката в милисекунди) с безкрайно възпроизвеждан .wav файл със синусоидален запис. Но този подход имаше значителен недостатък и той се състоеше във факта, че всяка точка трябваше да се зарежда отделно с помощта на претоварен оператор или специален метод. Поради този подход трябваше да напиша отделен макрос за всяка буква (като това - #define I DOT<< false << DOT) и создать огромный жуткий превключвателза да изсвири предадения низ. Беше ужасно, но ако сте любопитни, можете да го проверите.
с първата версия на програмата (не можах да кача напълно локалното хранилище в GitHub - само най-новата версия).

Част от страховит превключвател:

bool Morse::StringToMorse (QString &line) ( line += "\0"; for (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; // И так далее


Ето как звукът се включваше и изключваше (всъщност беше генериран звуковият код):

void Morse::PlayLinePoints () ( QTimer::singleShot (duration_point_, this, SLOT (Mute ())); sound_.play (); ) void Morse::Mute () ( if (line_points_.empty ()) ( / /Спрете възпроизвеждането sound_.stop (); return; ) if (line_points_.at (0)) ( //Включете звука sound_.setMuted (false); line_points_.remove (0); QTimer::singleShot (duration_point_, this, SLOT (Mute ())); return; ) else ( sound_.setMuted (true); //Изключване на звука line_points_.remove (0); QTimer::singleShot (duration_point_, this, SLOT (Mute ())); връщане ;))

Финална версия

Тези макроси се оказаха много тромави и моят перфекционизъм вече не можеше да гледа тези чудовищни ​​дизайни. След като помислих малко, стигнах до извода, че идеята ми е добра, но съхраняването на кодове под формата на макроси е много неудобно и ако този проблем бъде решен, тогава всичко ще бъде наред. В резултат QMap беше използван за съхраняване на кодове:

//Съхранява съответните комбинации от точки и тирета на QMap символи кодове_;
Този подход се оказа много удобен. Сега просто използвах текущия герой, който се играе като ключ, и получих завършеното
За да се възпроизведе кодът (набор от булеви стойности), обаче, алгоритъмът за възпроизвеждане стана малко по-сложен: беше необходимо да се въведе броячът на текущия елемент на символа и броячът на знаците в реда:

Ново изпълнение на възпроизвеждане:

void Morse::MiniSpace () ( if (stop_) ( this->Stop (); return; ) sound_.setMuted (true); ++id_element_; // Преминете към друг кодов елемент if (id_element_ == codes_.value ( string_to_play_.at (id_char_).size ()) ( ++id_char_; id_element_ = 0; QTimer::singleShot (duration_dot_ * 3, this, SLOT (Mute())); //Пауза между връщане на символи; ) QTimer: : singleShot (duration_dot_, this, SLOT (Mute())); //Пауза между символните елементи ) void Morse::Space () ( if (stop_) ( this->Stop (); return; ) sound_.setMuted (true) ; //Паузата продължава 7 точки //Но тъй като след символа има пауза от три точки, трябва да се настрои допълнителна пауза с дължина 4 точки QTimer::singleShot (duration_dot_ * 4, this, SLOT (Mute()) ); ) void Morse::Mute () ( if (stop_) ( this->Stop (); return; ) if (id_char_ == string_to_play_.size ()) ( // Редът е приключил this->Stop () ; return; ) if (string_to_play_.at (id_char_) == " ") ( Space(); ++id_char_; //Отидете до друг кодов елемент return; ) if (codes_.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; }


Флаг Спри се_беше въведен за предотвратяване на неправилна работа на програмата (две последователни извиквания на Play() и други лоши неща).
Не виждам причина да включвам останалата част от изходния код и заглавните файлове в тялото на статията, тъй като всичко там е съвсем очевидно и прозрачно.

Можете да изтеглите пълния набор от източници за най-новата версия от GitHub. Писането на GUI е тривиална задача, но все пак, ако бъде създаден GUI, тогава ще добавя връзката. Ако имате въпроси или коментари, пишете в коментарите - определено ще отговоря.

Предлагаме на вашето внимание онлайн преводач на морзова азбука.

Какво означава? Да приемем, че трябва да преведете или да чуете как ще звучи вашият текст, когато бъде преведен на морзова азбука. Въведете текста си в левия прозорец, посочете езика на текста по-долу и щракнете върху стрелката надясно. В десния прозорец ще получите морзовата азбука на вашия текст. Като щракнете върху бутона "пусни" по-долу, можете да слушате текста си на морзова азбука. По този начин ще използвате нашия онлайн преводач на морзов код.

Онлайн текстов преводач
до Морзов код и обратно

В текстовата интерпретация на кода се използва „знак за раздел“ (-···-) за обозначаване на интервал. Това се прави единствено за по-лесно копиране.

внимание!Вграденият плейър работи добре в Chrome, нормално в Opera (ако се заби, можете да прекодирате текста в морзова азбука, помага), много посредствен в Safari. Изобщо не работи във Firefox и Internet Explorer .

В звуковата версия на съобщението се спазват всички правила: продължителността на една точка се приема за единица време; продължителността на тире е равна на три точки; паузата между елементи от един и същ знак е една точка, между знаци в дума - 3 точки, между думи - 7 точки.

Звуковият файл за изтегляне е представен във форматWAV (трябва да го изтеглите, а не да го отваряте в браузъра). Голям е: например морзова азбука за изпращане„Грък прекоси реката. вижда грък, рак в реката. пъхна ръката на гърка в реката и ракът сграбчи ръката на гърка.тежи в него 209 KB(въпреки че съдържа само835 битаинформация).

Искате ли да тествате силата си? Нищо не може да бъде по-просто.

Мелодии с морзова азбука:

кирилица
латински
морзов код
Пеене
А
А
. —
о да
б
IN
— . . .
ба-ки-те-кут
IN
У
. — —
ви-да-ла
Ж
Ж
— — .
га-ра-жи
д
д
— . .
до-ми-ки
д
д
.
Има
И
V
. . . —
же-ле-зи-сто
З
З
— — . .
за-ка-ти-ки
И
аз
. .
и-ди
Y
Дж
. — — —
и кратко
ДА СЕ
ДА СЕ
— . —
Как си
Л
Л
. — . .
лу-на-ти-ки
М
М
— —
Майка
н
н
— .
номер
ОТНОСНО
ОТНОСНО
— — —
близо до
П
П
. — — .
пи-ла-по-йот
Р
Р
. — .
ре-ша-ет
СЪС
С
. . .
си-не-е
T
T

Така
U
U
. . —
u-носи
Е
Е
. . — .
фи-ли-мон-чик
х
н
. . . .
хи-ми-чи-те
° С
СЪС
— . — .
цап-ли-на-ши
з
Не
— — — .
ча-ша-до-не
Ш
Не
— — — —
ша-ро-ва-ра
SCH
Q
— — . —
ша-ти-не-ша
б, б
х
— . . —
този мек знак
Y
Y
— . — —
не-да-правя
д
Не
. . — . .
е-ле-рон-чи-ки
Ю
Не
. . — —
Джулиана
аз
Не
. — . —
Аз съм малък, аз съм малък

А ето и мелодиите на числата и най-често срещаните знаци. Отбелязвам, че в чисто дигиталните текстове нулата често се предава с едно тире, като буквата Т - това приятно разнообразява предаването и премахва необходимостта да слушате пет тирета подред;)
Знак
морзов код
Пеене
0
— — — — —
нула-до-о-ко-ло
1
. — — — —
и-само-един
2
. . — — —
Отидох-на-планината
3
. . . — —
three-you-be-ma-lo, или I-ku-ka-ra-cha
4
. . . . —
че-ве-ри-те-ка
5
. . . . .
пет-ле-ти-е
6
— . . . .
по-шест-ти-бе-ри
7
— — . . .
да-да-се-ме-рик
8
— — — . .
осем-мо-го-и-ди
9
— — — — .
но-на-не-на-ми
?
. . — — . .
къде да питам
!
— — . . — —
по-ка-но-при-ка-за
,
. — . — . —
и така и така и така
\ (разделител)
— . . . —
веднъж-де-ли-те-ка

В този материал ще ви разкажа за най-добрите онлайн преводачи на морзова азбука в Интернет и как да работите с тях. Въпреки факта, че морзовият код вече е излязъл от масова употреба, той все още намира своето приложение във флота, в работата на Министерството на извънредните ситуации, а също и като средство за комуникация между много радиолюбители. Процесът на преобразуване буква по буква на думи (фрази) в морзова азбука може да отнеме много време, така че за да ускорите този процес, си струва да използвате специални онлайн мрежови услуги, които ни позволяват да получим превод на думите, от които се нуждаем Морзов код за част от секундата.

Какво трябва да знаете за работата на услугите за преобразуване на морзов код?

В мрежата има достатъчен брой услуги, които ви позволяват да извършвате както незабавна трансформация на необходимите думи и фрази в морзова азбука, така и необходимото обратно преобразуване от морзовата азбука в познатия ни текст.

Работата с тези услуги е доста проста: отивате на такъв ресурс, вмъквате текста (или морзовия код), необходим за трансформация в специален прозорец, щракнете върху бутона за превод и почти моментално получавате желания резултат.

В същото време някои услуги ви позволяват не само да извършвате онлайн превод на морзова азбука, но и да слушате аудио формата на този код, ако е необходимо да го изтеглите на вашия компютър като аудио файл.

Нека разгледаме по-отблизо популярните онлайн преводачи на морзова азбука.

Telegraphist.ru – онлайн урок по морзовата азбука

  1. Работата със сайта е доста проста. Вмъквате текста на радиограмата отляво, за да го конвертирате в морзова азбука (или морзова азбука в прозореца вдясно за обратната операция).
  2. След това изберете езика (руски или английски) и щракнете върху съответния бутон със стрелка, за да извършите процедурата за превод.
  3. Ресурсът също така ви кани да слушате звука на съществуващата морзова азбука, като използвате съответния бутон за възпроизвеждане на звук.

Boyslife.org - игрова форма за преподаване на Морзов код

Популярният международен портал за развлечения boyslife.org предлага на потребителите удобен инструмент за показване на символи на Морзов код за букви от латинската азбука. А също и възможността да проверите знанията си за морзовата азбука с помощта на специални тестове.

Когато отидете на ресурса, ще видите виртуална клавиатура, в която всяка буква (цифра) на клавиш ще има съответна морзова азбука. За да проверите знанията си за морзовата азбука, натиснете клавиша „Тест 1: Слушайте и познайте“ (от вас се иска да чуете морзовата азбука и след това да познаете кое число или буква е) или „Тест 2: буквата Морз“ (трябва да напишете необходимата буква или цифра с морзова азбука).

Bestfree.ru – конвертиране на текст в морзова азбука и обратно

За да извършите лесно и удобно преобразуване на текст в морзова азбука, трябва да използвате услугата bestfree.ru. Услугата има прост и удобен интерфейс на руски език, който ви позволява лесно да превеждате текст от стандартни форми на кирилица и латиница в морзова азбука и обратно.

  1. За да работите с услуги, влезте в bestfree.ru.
  2. Изберете желания език и посока на преобразуване.
  3. Въведете необходимия текст в съответния прозорец и щракнете върху бутона „Конвертиране“.

Morsify.net – международен онлайн преводач на морзов код

Международната услуга morsify.net е преводач на морзов код с аудио компонент, който ви позволява да възпроизвеждате звука на морзовия код, който имаме (или получен в резултат на превод).

Работният екран на услугата е разделен на два прозореца. Отляво можете да въведете желания текст на кирилица или латиница, а отдясно автоматично ще се изпише съответната морзова азбука.

За да възпроизведете морзовата азбука, щракнете върху бутона „Пускане“ (със стрелка) в горната част.

4txt.ru – домашна услуга за преобразуване на текст в морзова азбука

И последната услуга, за която искам да говоря в този материал, е 4txt.ru. Функционалността му напомня описаната по-горе услуга morsify.net, като тук автоматичната трансформация на текст в морзова азбука работи само в една посока – от кирилица (латиница) към морзова азбука.

Иначе услугата разполага с класически инструменти за услуги от този тип.

Заключение

Почти всички онлайн преводачи на морзова азбука, които изброих по-горе, ни позволяват да трансформираме текста, от който се нуждаем, във формата на морзова азбука и обратно (с изключение на услугата 4txt.ru, която работи едностранно). Сред всички изброени услуги бих искал да привлека вниманието на читателя към услугите telegraphist.ru и morsify.net. Позволява ви не само да преведете желания текст на морзова азбука, но и да слушате звука на получения резултат, което е полезно при трениране на възприемането на морзовата азбука на ухо (слушане).

    Има много опции за дешифриране на SOS сигнала за бедствие - „Спасете нашите души“, „Спасете нашия кораб“, „Плувайте или потънете“, „Спрете други сигнали“, „Спасете от смъртта“. Но всички те са просто мнемоника, измислена за по-добро запаметяване, докато когато този сигнал е приет като стандартен сигнал на Международната радиотелеграфна конференция през 1906 г., в съкращението не е вложено никакво значение. Дори самите букви SOS могат да бъдат приписани много условно на последователността на морзовия код (. . . . - - - . . .), тъй като в нея няма междубуквени интервали. И възприеха тази комбинация от точки и тирета, защото се оказа по-удобна от другите за разпознаване и подчертаване в общия поток от сигнали поради достатъчната си дължина и симетрия.

    Самюъл Морз е бил художник до 34-годишна възраст и не се е интересувал от технологии. През 1825 г. пратеник му доставя писмо от баща му, в което се казва, че жена му умира. Морс веднага напуска Вашингтон и отива в Ню Хейвън, където живее семейството му, но до пристигането му съпругата му вече е погребана. Този инцидент принуди Морз да се откаже от рисуването и да се задълбочи в изучаването на начини за бързо доставяне на съобщения на дълги разстояния, което доведе до разработването на морзовата азбука и електрическия телеграф през 1838 г.

    Морзовата азбука в познатата й форма не е изобретена от Морз, а от немския инженер Герке. Оригиналната морзова азбука беше тромава, въпреки че се използваше в някои американски железопътни линии през 60-те години.

    На 6 февруари 1900 г. радиостанция, разположена във финландския град Котка, предава безжична телеграма до ледоразбивача Ермак със заповед да спаси 50 рибари на счупен леден блок. Това беше първият радиосигнал за бедствие в историята, излъчен в морето. Спасителната операция е приключила успешно.

    Съвременните подводници са оборудвани с по-ефективни средства за комуникация с „наземния свят“. Комуникацията се осъществява на свръхдълги вълни, които са в състояние да проникнат в океански дълбочини до 300 метра. Това е много скъпа „мобилна комуникация“, която изисква поддръжката на мощни наземни антенни полета, които консумират мощност до 30 MW, и комуникационни самолети, които постоянно патрулират в небето.

    SOS сигналът се предава на честота 600 метра само в случай на спешност, когато екипажът на кораба и пътниците са в реална опасност за живота си. В случай на нарушение на това правило, могат да бъдат наложени санкции на отговорните за неоправдана паника. Или морален, което не е празна фраза в морските среди. Или материални - когато дошлите на помощ кораби претърпят значителни материални загуби. Има обаче изключение от това неизменно правило. Капитанът на кораба в някои случаи може да предава информация на „звукова честота“ в продължение на три фиксирани „минути мълчание“ за появата на сериозна заплаха за корабите в региона. Това може да са съобщения за неизправни фарове, вулканична дейност, пиратска дейност, потънали кораби...

    За да се ускорят радиокомуникациите, съкращенията, трибуквените "Q-кодове" и множество жаргонни изрази бяха въведени в широка употреба. Когато Q кодът се предава под формата на въпрос или твърдение, значението му се променя. При гласови комуникации SOS сигналът не се използва; Mayday се използва като сигнал за бедствие. Забранява се подаването на SOS сигнал, освен ако няма реална заплаха за живота на хора или плавателен съд в морето.



Свързани публикации