Skip to content

Своя колонка на ReSpeaker ​

Экспериментально

Самодельный спутник: плата ESP32-S3 с микрофонным массивом ReSpeaker и прошивкой Хомера. Как и рутованные колонки Яндекса, в продукт Homer 1.0 не входит — собирается и прошивается своими руками.

ReSpeaker Mic Array v2.0 — круглая плата с четырьмя микрофонами, своим шумоподавлением, эхоподавлением и направлением на голос, кольцом из 12 светодиодов и гнездом для наушников или активной колонки. В доме Хомера она работает двумя способами.

  • Микрофон колонки на компьютере. Драйверов для Windows у платы нет, поэтому она отдаётся в WSL, а оттуда звук идёт колонке: в «Какой микрофон слушать» это вход «Мост из WSL (udp:8799)».
  • Своя сетевая колонка. Плата ESP32-S3 с прошивкой Хомера превращает ReSpeaker в спутник — такой же, как рутованные колонки Яндекса и Smartbox: микрофон идёт мозгу Хомера по сети, голос возвращается обратно, настройки колонка забирает сама. Мозг — колонка на компьютере или резервная на сервере дома; своих мозгов у платы нет. Эта страница — про неё.

Исходники прошивки — alice/respeaker/ в репозитории Homer, Bluetooth-моста — alice/btbridge/.

Что понадобится ​

  • Плата ESP32-S3 с разъёмом USB OTG: ReSpeaker подключается к ней по USB.
  • ReSpeaker Mic Array v2.0 и питание для обеих плат.
  • Активная колонка или наушники в гнездо ReSpeaker — через него плата играет голос Хомера.
  • По желанию — классический ESP32 для Bluetooth-колонки.

Прошивка собирается в ESP-IDF и первый раз заливается кабелем. Дальше обновления идут из приложения.

Wi-Fi через точку Homer-Setup ​

Пароль Wi-Fi в прошивку не зашит. Плата без настроенной сети поднимает точку доступа Homer-Setup:

  1. Подключитесь к ней с телефона и откройте http://192.168.4.1/.
  2. На странице «Хомер · ReSpeaker» выберите домашнюю сеть из найденных или впишите имя, введите пароль.
  3. Адреса мозгов можно оставить пустыми: их выдаст дом при добавлении колонки.
  4. «Сохранить и перезапустить». Плата подключится к домашней сети.

Та же страница открывается по адресу платы в домашней сети. На ней видно версию прошивки, связь с мозгом, найден ли ReSpeaker, уровень микрофона и громкость.

Добавить в дом ​

Настройки → Колонка → Микрофоны колонки → Колонки дома → Новая колонка. Впишите адрес платы и нажмите «Поставить по адресу» (в приложении — «Поставить прошивку»). Сервер Хомера узнаёт плату сам, SSH ей не нужен: прошивка уже стоит, сервер только передаёт ей адреса мозгов дома. Колонка появляется в списке с картинкой ReSpeaker и получает те же настройки, что остальные спутники: «Слушает», «Мозг колонки», «Комната», «Голос по умолчанию», громкость.

Имя можно задать сразу в поле «Имя колонки» или переименовать потом.

Обновление прошивки ​

У платы та же кнопка «Обновить до …», что у колонок Яндекса. Плата сама забирает образ у сервера дома, сверяет контрольную сумму, ставит и перезагружается; ход виден в карточке и звучит вслух. Если новая прошивка за минуту не связалась с мозгом, плата откатывается на прежнюю сама. Обновление занимает около 20 секунд.

Bluetooth-мост рядом с платой обновляется той же кнопкой.

Режим под комнату ​

ReSpeaker сам чистит звук до того, как его услышит Хомер: усиление, шумодав, срез басов. В «Микрофонах колонки» у колонки, которая слушает ReSpeaker, есть выбор «ReSpeaker: шум в комнате»:

РежимКогда
Тихая — ловить голос издалекаТихая комната, говорите из другого конца
Обычная (заводская)По умолчанию
Шумная — телевизор, разговорыРядом работает телевизор или разговаривают: дальний фон не вытягивается до уровня голоса рядом

Режим доходит до платы за несколько секунд, без перезапуска.

Световое кольцо ​

Кольцо ReSpeaker показывает, что делает Хомер, — как световая панель у колонок Яндекса:

КольцоЧто происходит
Волна со стороны голосаИмя услышано
Дыхание, ярче со стороны голосаСлушаю
Бегущая кометаДумаю
Волна громкости по кругуГоворю
КрасноеМикрофон выключен

Светодиод самой платы ESP32-S3 показывает связь: зелёный — связь с мозгом есть, красный — мозга не видно, оранжевый — нет Wi-Fi.

Bluetooth-колонка ​

У ESP32-S3 нет классического Bluetooth, поэтому Bluetooth-колонку подключает отдельный мост — классический ESP32 с прошивкой из alice/btbridge/. Он ищет колонки, сопрягается, держит связь и сам переподключается, когда колонку выключили и включили. Плата ReSpeaker находит мост в сети сама и передаёт ему команды, так что в приложении у неё работает тот же раздел «Bluetooth: наушники и колонки», что у остальных спутников: «найти наушники или колонку», выбрать, подключить.

Звук пока не идёт

Голос Хомера в Bluetooth-колонку пойдёт по проводу между платами; пока мост умеет только тестовый тон при проверке. Голос по-прежнему звучит из гнезда ReSpeaker.

Чего у платы нет ​

  • SSH. Кнопок «Залить SSH-ключ» и «Снять прошивку» у неё в карточке нет — снимать нечего.
  • Алисы. Это колонка только Хомера.
  • Своих мозгов. Без компьютера или сервера дома плата не отвечает.

Если не работает ​

  • Откройте страницу платы по её адресу: там написано, есть ли связь с мозгом и найден ли ReSpeaker.
  • Красный светодиод платы — мозга не видно: работает ли колонка на компьютере или резервная, верны ли адреса мозгов (их заново выдаёт «Поставить по адресу»).
  • Оранжевый — нет Wi-Fi: плата снова поднимет точку Homer-Setup, если сеть не сохранена.
  • Остальное — в неполадках.