Edris & Bionik
Привет, Бионик. Я тут копаюсь с использованием микроконтроллеров с низким энергопотреблением, чтобы записывать и расшифровывать исчезающие языки в отдаленных поселениях. Не поможешь мне с разработкой аудиосистемы с минимальным потреблением энергии, но высокой точностью?
Бонник: Понял. Нужно сделать все максимально просто: выбирай микроконтроллер со встроенным маломощным аудио периферийным устройством – например, STM32L4 или Nordic nRF52840. Добавь высокочувствительный MEMS-микрофон, который можно отключать цифровым пином отключения звука. Используй встроенный ЦАП или интерфейс I2S микроконтроллера, чтобы передавать необработанный звук во временное кольцевой буфер, а затем запускай легковесный DSP-фильтр (например, спектральный анализ на два тона) в фоне для определения моментов речи. Как только обнаруживаешь активность, пробуждай ядро, записывай двухсекундный фрагмент, сжимаешь его на борту с помощью кодека с низким битрейтом (например, Opus или даже простой кодировщик MP3 на основе LAME) и отправляешь через BLE или LoRa на базовую станцию. Помещай микроконтроллер в спящий режим между записями, установи тактовую частоту 32 кГц. В режиме ожидания потребление энергии будет менее 5 мА, при записи – не более 30 мА, и ты получишь довольно точные записи с минимальным нагревом и расходом батареи. Если тебе нужны детали по выводам или примерный код, дай знать.
Отлично звучит, Бионик! Начну с того, что набросаю схему расположения микрофонов и частоту дискретизации, которая лучше всего передаст согласные кластеры в языке, который я документирую. Частота в 16 кГц должна сохранить эти взрывные звуки, при этом уложившись в твой бюджет по мощности. Какие-нибудь советы, как бороться с фоновыми разговорами, когда собираются местные?
Бонник<|message|>Потока в 16 килогерц вполне хватит для взрывных согласных. А для болтовни – делай так: во-первых, установи микрофон на небольшой направленный рупор или капсюль, чтобы он захватывал рот говорящего, а не комнату. Во-вторых, добавь простой детектор активности голоса на МК – например, пороговое значение для спектрального центра или простой тест энергии в полосе. Когда детектор отключен, просто отбрасывай семплы. Если нужен более точный контроль, добавь четырехполосный нижнечастотный фильтр (250 Гц, 500 Гц, 1 кГц, 3 кГц), чтобы убрать низкочастотный гул и высокочастотный шум до того, как начнешь кодировать. Тогда аккумулятор будет работать дольше, а данные будут чище.
Вот это умный ход – использовать направленный микрофон и легкий детектор активности голоса, записи точно получатся чёткими. Проверю конструкцию рупора в реальных условиях и посмотрю, насколько хорошо он изолирует голос говорящего. Спасибо за совет!
Бонику, отлично, договорились. Только следи, чтобы микрофон не улавливал всю эту поталуху с угощением. Удачи в поле, давай, сообщи, если из рупора вдруг станет как в аэропорту.
Спасибо, Бионик. Я посмотрю за расположением микрофона, чтобы он улавливал дыхание и согласные, не захватывая лишнего шума. Если звук будет слишком резкий, как будто в аэродинамической трубе, попробую использовать мембрану поменьше или немного смещу его. Буду держать тебя в курсе, как записи пойдут.
Бонник: Прикольно, только смотри на ветровую нагрузку – микрофон маленький, а эффект большой. Будь на связи по звуку, и если гласные все еще будут “плыть”, подкрутим фильтры.
Буду следить за ветром и позицией микрофона, как только выеду на площадку, отправлю тебе тесты. Если вокалы все равно будут пробиваться, подкорректируем фильтры вместе. Спасибо за советы, буду держать в курсе.