Звук аудио сигнала cq азбука морзе. Программа для генерации звукового кода морзе

  • 09.09.2022

Бесплатный сервис перевода русского и латинского текста в код Азбуки Морзе и обратно. Если скрипт не срабатывает, попробуйте включить поддержку 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" , созданную Русланом Богдановым.

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

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

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

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

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

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

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

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

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

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

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

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

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

Внимание! Встроенный плеер хорошо работает в 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
— — — — .
но-на-но-на-ми
?
. . — — . .
где-мне-во-прос-пи-сать
!
— — . . — —
по-ка-нет-при-ка-за
,
. — . — . —
и-так-и-так-и-так
\ (разделитель)
— . . . —
раз-де-ли-те-ка