Как звучит морзянка. Программа для генерации звукового кода морзе

Азбука Морзе - это способ кодирования символов, позволяющий операторам отправлять сообщения, используя серию длинных и коротких электрические сигналы или, другими словами, используя точки и тире.

Кто изобрел азбуку Морзе?

Изобретателями азбуки Морзе считаются Сэмюэл Ф. Б. Морзе и его помощник Альфред Вейл.

Когда была изобретена азбука Морзе?

Азбука Морзе была разработана в 1830-х годах, а в 1840-х годах - усовершенствована.

Какое первое сообщение было отправлено с помощью азбуки Морзе?

Первое официальное сообщение было таким: «What hath God wrought» (на русском: Чудны дела твои, Господи!). Его отправил Сэмюэл Ф. Б. Морзе 24 мая 1844 года при открытии телеграфной линии Балтимор - Вашингтон.

Для чего используется азбука Морзе?

В прошлом азбука Морзе применялась очень широко, особенно в армии. Сегодня азбука Морзе имеет ограниченную область применения, но она всё еще используется в авиации, в среде радиолюбителей и в качестве вспомогательной технологии для людей с ограниченными физическими возможностями.

Как использовать азбуку Морзе?

Код Морзе можно использовать различными способами, например, с помощью ручки и бумаги, с помощью света и звука или даже с помощью глаз или пальцев.

Как учить азбуку Морзе?

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

Как читать код Морзе?

Если вам не хватает опыта в чтении кода Морзе, вы можете найти соответствующие коду символы в таблице с азбукой Морзе, или просто использовать переводчик азбуки Морзе.

Как перевести код Морзе?

Если вы хотите перевести или расшифровать код Морзе и не умеете его читать, то можете просто использовать переводчик азбуки Морзе онлайн. С помощью переводчика азбуки Морзе вы можете легко расшифровать код и прочитать текст на русском языке.

Что такое переводчик азбуки Морзе?

Переводчик азбуки Морзе позволяет любому человеку переводить код Морзе в текст и легко декодировать сообщение, записанное кодом. С помощью онлайн-переводчика кода Морзе любой человек может перевести простой текст на русском или другом языке в код Морзе и наоборот. Помните ли вы мелодию SMS-сигнала Nokia? Если хотите испытать ностальгию, попробуйте расшифровать код «... -- ...», а затем воспроизвести звук. Что если вам потребуется расшифровать секретное сообщение на азбуке Морзе или вы наткнетесь в игре на пасхальное яйцо с кодом? Переводчик азбуки Морзе к вашим услугам 7/24, если у вас есть интернет-соединение и желание выучить азбуку Морзе.

    Существует множество вариантов расшифровок сигнала бедствия SOS - «Save Our Souls», «Save Our Ship», «Swim Or Sink», «Stop Other Signals», «Спасите От Смерти». Но все они являются лишь мнемониками, придуманными для лучшего запоминания, тогда как во время принятия этого сигнала в качестве стандартного на Международной радиотелеграфной конференции 1906 года никакого смысла в аббревиатуру не закладывалось. Даже сами буквы SOS к последовательности азбуки Морзе (. . . - - - . . .) можно отнести весьма условно, ведь в ней нет межбуквенных интервалов. А приняли эту комбинацию точек и тире из-за того, что она оказалась удобнее других для распознавания и выделения в общем потоке сигналов благодаря достаточной длине и симметричности.

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

    Азбуку Морзе в привычном нам виде изобрёл не Морзе, а немецкий инженер Герке. Оригинальная азбука Морзе была неудобной, хотя и использовалась на некоторых американских железных дорогах вплоть до 1960-х годов.

    6 февраля 1900 года расположенная в финском городе Котка радиостанция передала на ледокол «Ермак» беспроводную телеграмму с приказом спасти находящихся на оторвавшейся льдине 50 рыбаков. Это была первая в истории передача радиосигнала о бедствии на море. Спасательная операция завершилась успешно.

    Современные субмарины оснащены более эффективными средствами коммуникации с «наземным миром». Связь ведется на сверхдлинных волнах, которые способны проникать на океанскую глубину до 300 метров. Это очень дорогостоящая «мобильная связь», которая требует содержания мощных наземных антенных полей, потребляющих мощность до 30 МВт, и постоянно барражирующих в небе связных самолетов.

    Сигнал SOS передается на частоте 600 метров лишь в случае крайней необходимости, когда экипажу судна и пассажирам угрожает реальная опасность для жизни. В случае нарушения этого правила на виновников необоснованной паники может быть наложено взыскание. Либо моральное, что в морском сообществе не пустой звук. Либо материальное - когда пришедшие на помощь суда понесут значительные материальные потери. Однако существует исключение из этого непреложного правила. Капитан судна в некоторых случаях может передавать на «сосовой частоте» в три фиксированных «минуты молчания» информацию о возникновении серьезной угрозы для находящихся в регионе кораблей. Это могут быть сообщения о неисправности маяков, о вулканической деятельности, об активности пиратов, о затонувших судах…

    Для ускорения радиообмена в широкое использование были введены аббревиатуры, трёхбуквенные «Q-коды» и многочисленные жаргонные выражения. От того передается Q код в виде вопроса или утверждения, меняется его значение. В голосовой связи сигнал SOS не применяется, сигналом бедствия служит Mayday. Запрещено подавать сигнал SOS, если на то нет реальной угрозы для жизни людей или судна на море.

В данном материале я расскажу, о лучших онлайн переводчиках азбуки Морзе в Интернете, и как с ними работать. Несмотря на то, что азбука Морзе уже вышла из массового использования, она всё ещё находит своё применение на флоте, в работе МЧС, а также в виде средства общения между многими радиолюбителями. Процесс побуквенной конвертации слов (словосочетаний) в код Морзе может занять продолжительное время, потому для ускорения данного процесса стоит воспользоваться специальными сетевыми онлайн сервисами, позволяющими за долю секунды получить перевод в «морзянку» нужных нам слов.

Что нужно знать о работе сервисов конвертеров кода Морзе?

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

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

При этом часть сервисов позволяет не только выполнить онлайн перевод в код Морзе, но и прослушать аудиоформу данного кода, при необходимости скачав её на ПК в виде звукового файла.

Давайте рассмотрим детально популярные сетевые переводчики азбуки Морзе.

Telegraphist.ru – самоучитель азбуки Морзе онлайн

  1. Работать с сайтом довольно просто. Вы вставляете слева текст радиограммы для перевода её в код Морзе (или код Морзе в окно справа для обратной операции).
  2. Далее выбираете язык (русский или английский), и нажимаете на соответствующую кнопку со стрелкой для осуществления процедуры перевода.
  3. Также ресурс предлагает вам прослушать звучание имеющегося кода Морзе с помощью соответствующей кнопки воспроизведения звука.

Boyslife.org – игровая форма обучения азбуки Морзе

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

При переходе на ресурс вы увидите виртуальную клавиатуру, в которой каждой букве (цифре) на клавише будет отвечать соответствующий код Морзе. Чтобы проверить свои знания азбуки Морзе нажмите на клавишу «Test 1: Listen and Guess» (предлагается прослушать код Морзе, а затем угадать какая это цифра или буква), или «Test 2: Morse the letter» (нужно набрать требуемую букву или цифру в азбуке Морзе).

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. Позволяющие не только выполнить перевод нужного текста в код Морзе, но и прослушать звучание полученного результата, что пригодится при тренировке восприятия кода Морзе на слух (аудирование).

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

Что это значит? Предположим, что вам нужно перевести или прослушать, как будет звучать ваш текст переведённый в код Морзе. Вы вводите свой текст в левое окошко, указываете ниже язык текста и нажимаете стрелочку вправо. В правом окне вы получите код Морзе вашего текста. Нажав снизу на кнопку "плей" можно будет прослушать ваш текст, в коде Морзе. Таким образом вы воспользуетесь нашим переводчиком азбуки Морзе онлайн.

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

В текстовой интерпретации кода для обозначения пробела использован «знак раздела» (-···-). Это сделано исключительно для удобства копирования.

Внимание! Встроенный плеер хорошо работает в Chrome, нормально — в Opera (если затыкается, можно повторно перекодировать текст в морзянку, помогает), очень посредственно — в Safari. В Firefox и Internet Explorer не работает совсем .

В аудиоверсии посылки все правила соблюдены: за единицу времени принимается длительность одной точки; длительность тире равна трём точкам; пауза между элементами одного знака — одна точка, между знаками в слове — 3 точки, между словами — 7 точек.

Звуковой файл для скачивания представлен в формате WAV (его нужно скачать, а не открыть в браузере ). Он большой: например, код Морзе для посылки «ехал грека через реку. видит грека, в реке рак. сунул грека руку в реку, рак за руку греку цап.» в нем весит 209 Кбайт (хотя и содержит всего 835 бит информации).

Хотите проверить свои силы? Нет ничего проще.

Напевы "Морзянки":

Кириллица
Латиница
Код Морзе
Напев
А
А
. —
ай-да
Б
В
— . . .
ба-ки-те-кут
В
W
. — —
ви-да-ла
Г
G
— — .
га-ра-жи
Д
D
— . .
до-ми-ки
Е
Е
.
есть
Ж
V
. . . —
же-ле-зи-сто
З
Z
— — . .
за-ка-ти-ки
И
I
. .
и-ди
Й
J
. — — —
и-крат-ко-е
К
К
— . —
как-де-ла
Л
L
. — . .
лу-на-ти-ки
М
М
— —
ма-ма
Н
N
— .
но-мер
О
О
— — —
о-ко-ло
П
P
. — — .
пи-ла-по-ёт
Р
R
. — .
ре-ша-ет
С
S
. . .
си-не-е
Т
Т

так
У
U
. . —
у-нес-ло
Ф
F
. . — .
фи-ли-мон-чик
Х
Н
. . . .
хи-ми-чи-те
Ц
С
— . — .
цап-ли-на-ши
Ч
нет
— — — .
ча-ша-то-нет
Ш
нет
— — — —
ша-ро-ва-ра
Щ
Q
— — . —
ща-вам-не-ша
Ь, Ъ
Х
— . . —
то-мяг-кий-знак
Ы
Y
— . — —
ы-не-на-до
Э
нет
. . — . .
э-ле-рон-чи-ки
Ю
нет
. . — —
ю-ли-а-на
Я
нет
. — . —
я-мал-я-мал

А вот напевы цифр и наиболее часто встречающихся знаков. Замечу, что в чисто цифровых текстах ноль часто передают одним тире, как букву Т - это приятно разнообразит передачу и избавляет от необходимости слушать пять тире подряд;)
Знак
Код Морзе
Напев
0
— — — — —
ноль-то-о-ко-ло
1
. — — — —
и-толь-ко-од-на
2
. . — — —
я-на-гор-ку-шла
3
. . . — —
три-те-бе-ма-ло, либо я-ку-ка-ра-ча
4
. . . . —
чет-ве-ри-те-ка
5
. . . . .
пя-ти-ле-ти-е
6
— . . . .
по-шест-ти-бе-ри
7
— — . . .
да-да-се-ме-рик
8
— — — . .
вось-мо-го-и-ди
9
— — — — .
но-на-но-на-ми
?
. . — — . .
где-мне-во-прос-пи-сать
!
— — . . — —
по-ка-нет-при-ка-за
,
. — . — . —
и-так-и-так-и-так
\ (разделитель)
— . . . —
раз-де-ли-те-ка

Но она рассчитана на изучение кодов кириллических букв, что является неактуальным в современной радиосвязи (все используют латинский алфавит, кроме нашей доблестной армии).

В качестве инструмента реализации идеи был выбран С++ в связке с Qt.

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

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

Первоначальный вариант реализации

В первой версии программы комбинация звучащих и незвучащих точек хранилась в виде вектора с булевыми элементами, где true соответствовал включению звука, а false - выключению.

Как вы уже поняли, для получения конечного сигнала я всего лишь «дергал» звук с некоторой задержкой (с помощью таймера, равного длительности точки в миллисекундах) при бесконечно воспроизводящемся.wav файле с записью синуса. Но данный подход имел значительный минус и заключался он в том, что приходилось каждую точку загружать отдельно с помощью перегруженного оператора или специального метода. Из-за такого подхода пришлось писать отдельный макрос для каждой буквы (вроде такого - #define I DOT << false << DOT) и создать огромный жуткий switch для воспроизведения переданной строки. Это было ужасно, но если вам любопытно, то вы можете ознакомиться
с первой версией программы (у меня не получилось полностью загрузить на 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 ())); return; } }

Окончательная версия

Очень уж оказались эти макросы громоздки, и мой перфекционизм не смог больше смотреть на эти монструозные конструкции. Поразмыслив немного, пришел к мысли, что идея у меня хорошая, но хранение кодов в виде макросов очень неудобно и, если решить эту проблему, то все будет хорошо. В итоге для хранения кодов стал использоваться QMap:

//Хранит соответствующие комбинации точек и тире символов QMap codes_;
Такой подход оказался очень удобным. Теперь я всего лишь использовал текущий воспроизводимый символ в качестве ключа и получал готовый
для воспроизведения код (набор булевых значений), правда, алгоритм воспроизведения немного усложнился: понадобилось ввести счетчик текущего элемента символа и счетчик символов в строке:

Новая реализация воспроизведения:

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())); //Пауза между символами return; } 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; }


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

Полный набор исходников последней версии вы можете скачать на гитхабе . Написание графического интерфейса является тривиальной задачей, но все же, если будет создан GUI, то ссылку я добавлю. Если есть какие-то вопросы или замечания, пишите в комментариях - обязательно отвечу.