Конвертер Азбуки Морзе в Аудио 🛠️ — Онлайн, Без Сервера

📡 Конвертер Азбуки Морзе в Аудио

Описание 📝



Этот инструмент позволяет преобразовать текст в аудио азбуки Морзе, воспроизвести его, скачать как аудиофайл и даже декодировать загруженный аудиофайл с Морзе обратно в текст. Всё работает локально в вашем браузере без сервера! 🌐 Используйте эмодзи для веселья: 🚀

Техническое Описание 🛠️

Этот микросервис реализован полностью на клиентской стороне с использованием HTML, CSS и JavaScript, без бэкенда. Он использует Web Audio API для генерации и анализа аудио, а также File API для работы с загруженными файлами. Вот детальное описание работы:

  • Словарь Морзе: Определён объект morseCode с сопоставлением символов (A-Z, 0-9, пробел и знаки препинания) к кодам Морзе (точки и тире). Обратный словарь reverseMorse создан для декодирования.
  • Преобразование текста в Морзе: Функция textToMorse преобразует текст в верхний регистр, разбивает на символы и заменяет на коды Морзе, разделяя буквы пробелами и слова слешем '/'.
  • Генерация аудио: Используется AudioContext для создания буфера аудио. Параметры: частота 600 Гц, длительность точки 0.1с, тире 0.3с, паузы внутри буквы 0.1с, между буквами 0.3с, между словами 0.7с. Функция generateMorseAudio рассчитывает общую длительность, создаёт буфер и заполняет его синусоидой для сигналов (точек/тире), с точными паузами. Сэмплы рассчитываются с Math.round для целочисленности.
  • Воспроизведение: Функция playMorse генерирует буфер и использует BufferSource для проигрывания.
  • Скачивание: Функция downloadMorse генерирует буфер, преобразует в WAV с помощью audioBufferToWav (записывая заголовки RIFF/WAVE/FMT/data и 16-битные сэмплы), создаёт Blob и скачивает через ссылку.
  • Декодирование аудио: Функция decodeMorseFunc читает файл как ArrayBuffer, декодирует в AudioBuffer. Вычисляет огибающую (сглаженное среднее абсолютных значений с окном 100 сэмплов) для стабильного детектирования сигналов. Затем использует конечный автомат (state machine) для подсчёта длительностей сигналов и пауз. Оценивает единицу времени (unit) по минимальной длительности сигнала (точка). Устанавливает пороги: для символов (dot < 2*unit, dash >=), для пауз (intra < 2*unit, inter >=2*unit <5*unit, word >=5*unit). Собирает коды Морзе, декодирует в текст, заменяя '/' на пробелы.
  • Отладка: Добавлен блок debugOutput для вывода длительностей, оценок и кодов для диагностики проблем.
  • Адаптивность: CSS с media queries для мобильных, всё responsive. Нет зависимости от сервера, работает оффлайн после загрузки.
  • Ограничения: Декодирование работает лучше с чистыми аудио, сгенерированными здесь (то же частота, тайминги). Для внешних аудио может потребоваться совпадение параметров; шум или разная скорость могут привести к ошибкам. Нет поддержки FFT для частотного анализа, только амплитудный.

Текст в Азбуку Морзе 🎧

Аудио Морзе в Текст 📄

FAQ ❓

Что такое азбука Морзе?
Азбука Морзе — это система кодирования букв и цифр с помощью точек и тире. 📡
Как работает воспроизведение?
Введите текст, нажмите "Воспроизвести", и браузер сгенерирует звуки Морзе. 🎵
Можно ли скачать аудио?
Да, нажмите "Скачать Аудио" для получения WAV-файла. 💿
Как декодировать аудио?
Загрузите аудиофайл с Морзе (сгенерированный здесь или подобный), нажмите "Декодировать", и получите текст. Убедитесь, что аудио чистое, без шума, с частотой около 600Hz. 🔄
Поддержка мобильных?
Да, дизайн адаптивный для мобильных устройств. 📱
Почему декодирование показывает вопросики?
Возможно, шум в аудио, несоответствие таймингов или частоты. Попробуйте с аудио, сгенерированным здесь. Для лучшей точности используйте чистый тон 600Hz. Если не работает, проверьте консоль браузера на ошибки или debug вывод ниже.