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

Бесплатный сервис перевода русского и латинского текста в код Азбуки Морзе и обратно. Если скрипт не срабатывает, попробуйте включить поддержку Javascript в Вашем браузере.

Символы в таблице активные. При нажатии левой кнопкой мышки на символ или код Морзе, они добавятся в окно ввода.


Русский
символ
Латинский
символ
Код
Морзе
А A
Б B
В W −−
Г G −−
Д D
Е и Ё E
Ж V
З Z −−
И I
Й J −−−
К K − −
Л L
М M −−
Н N
О O −−−
П P −−
Р R
С S
Т T
У U
Ф F
Х H
Ц C − −
Ч Ö −−−
Ш CH −−−−
Щ Q −− −
Ъ Ñ −− −−
Ы Y − −−
Ь X − −
Э É
Ю Ü −−
Я Ä − −
Русский
символ
Латинский
символ
Код
Морзе
1 −−−−
2 −−−
3 −−
4
5
6
7 −−
8 −−−
9 −−−−
0 −−−−−
.
, . − − −
! , −− −−
! − − −−
? −−
" −−−−
" − −
; − − −
: −−−
- − −
+ − −
= − −
_ (подчёркивание) −− −
/ − −
(− −−
(или) ) − −− −
&
$ − −
@ −− −
Ошибка Error
Конец связи End contact − −

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

  • символ "точка" в русском варианте: · · · · · · , а в латинском: · – · – · –
  • запятая в русском: · − · − · − , а в латинском: – – · · – –
  • восклицательный знак в русском: − − · · − − , а в латинском: – · – · – –
  • открывающая скобка в латинском: – · – – · , а закрывающая – · – – · – , а в русском обе скобки одинаковые: – · – – · –
  • некоторые символы вроде & + _ $ есть только в латинском варианте

Поэтому при спорных моментах, например, конвертировать код − − · · − − в восклицательный знак (по-русской версии) или в запятую (по латинской), предпочтение отдаётся русской версии, поскольку раз Вы читаете это сообщение на русском, то предполагается, что для Вас важнее именно русский вариант.

В то же время, раз в русском нет такого нужного знака как + (а для кого-то может быть нужнее $ :), то я добавил этот знак также и в русскую кодировку. Если данный вариант Вас не устраивает, при наличии минимальных знаний по Javascript и HTML Вы всегда можете подправить этот скрипт под свои нужды.

К слову сказать, это моё первое в жизни творение на языке Javascript и наверняка в нём есть куча недостатков. Не судите строго:).

P.S. Разрешается свободно копировать и цитировать данную статью при условии указания открытой активной ссылки на источник и сохранения авторства Руслана Тертышного.

P.P.S. Если хотите освоить азбуку Морзе в интересной форме, предлагаем Вам игру "Магия Морзе 2" , созданную Русланом Богдановым.

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

В качестве инструмента реализации идеи был выбран С++ в связке с 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, то ссылку я добавлю. Если есть какие-то вопросы или замечания, пишите в комментариях - обязательно отвечу.

    Существует множество вариантов расшифровок сигнала бедствия 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, если на то нет реальной угрозы для жизни людей или судна на море.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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