Своя колонка на 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:
- Подключитесь к ней с телефона и откройте
http://192.168.4.1/. - На странице «Хомер · ReSpeaker» выберите домашнюю сеть из найденных или впишите имя, введите пароль.
- Адреса мозгов можно оставить пустыми: их выдаст дом при добавлении колонки.
- «Сохранить и перезапустить». Плата подключится к домашней сети.
Та же страница открывается по адресу платы в домашней сети. На ней видно версию прошивки, связь с мозгом, найден ли 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, если сеть не сохранена.
- Остальное — в неполадках.