Как сделать умную колонку самому
Как создать умную колонку, подходящую для любого интерьера
Креативный директор Mail.ru Group Митя Осадчук рассказывает о «Капсуле Мини».
Митя Осадчук
креативный директор компании Mail.ru Group
На прошлой неделе Mail.ru Group выпустили «Капсулу Мини» — портативный гаджет, который привлекает внимание своей необычной формой. Сейчас найти его можно в двух цветах — в сером и чёрном. Мы попросили креативного директора компании Митю Осадчука подробнее рассказать о новинке.
Про дизайн
Изображение: capsula.mail / дизайн студии Layer
«Сама колонка — это оболочка голосового ассистента „Маруся“, для которого год назад вышла большая и мощная „Капсула“. Теперь настало время и для компактного формата. Когда мы начинали работу над дизайном и думали над брифом, мы хотели получить что-то новое и неординарное в классе умных колонок.
Одна из задач звучала так — „компактная умная колонка, которая гармонично впишется в любой интерьер“. Довольно непросто уместить универсальность, нестандартный дизайн, компактный размер и высокое качество звука в одном изделии. Мы изучили рынок команд, способных сделать не просто красивую вещь, но ещё и с идеальным звуком, то есть нужна была команда с опытом в создании акустического дизайна».
Про работу с Layer
На всех этапах разработки стояла задача при минимальном количестве деталей создать максимально выразительный визуальный язык, который обеспечит высокую ценность устройства. Дизайн — один из главных факторов, за счёт него продукт должен выигрывать у конкурентов.
В апреле Layer начали заниматься созданием концептов, выбором наиболее подходящих вариантов и доработкой финального варианта устройства. Для выбранного концепта нужно было определить цвета, материалы, проработать все детали. Всего Layer нарисовали восемь концептов.
Они сформировали видение на материалы: не соглашались на компромиссы вроде выбора более простых тканей, отказались от силиконовых вкладок или других мягких материалов — это бы увеличило стоимость колонки и сделало бы её менее красивой».
Про технические характеристики
Инсайт про экран мы нашли в отчётах и поняли, что колонки с дисплеями, в частности Amazon Echo Dot 3, поднимают продажи даже при высокой по сравнению с другими моделями цене. Эта эмоциональная часть и функциональное дополнение (отображение часов, температуры, громкости) делают колонку привлекательнее. Устройство получило человеческие черты: изображение глаз и носа позволяют передать целый спектр эмоций — от радости и удивления до заинтересованности или печали. Все, кто успел увидеть колонку или воспользоваться ей, остались в восторге от внешнего вида».
Пишем о событиях, явлениях и понятиях из мира дизайна и программирования, геймдева, образования и бизнеса.
Бенджамин Хьюберт — британский дизайнер, руководит командой промдизайнеров, технологов, социологов и инженеров.
Bang & Olufsen — датская компания, которая производит премиальные аудиосистемы, наушники и телефоны.
bitКонтейнер (для еды) — самодельная Яндекс.Станция
Вчера в чате на работе предложили скидки на Яндекс станцию. Посмотрел обычную цену — 9900.
В общем, она мне не нужна.
А так как без дела лежала плата Orange PI PC, купленная за 700 рублей на Алиэкспресс, решил собрать свою Станцию, а точнее «bitКонтейнер для еды».
Купил в обед флешку 10 класса за 399 рублей.
Залил прям в обед на флешку ПО Zidoo X1 v1.0.21 — скачал образ отсюда piboard.io.
Дома собрал все вместе — флешку в Orange PI PC (сама плата раньше использовалась — поэтому уже были приспособлены корпус — контейнер для еды, и кулер)
Для того что бы Яндекс Контейнер был мобильным — подключил Orange Pi PC к роутеру проводом, а сам роутер к домашнему wifi.
Для вывода изображения и звука используются либо HD монитор, либо дешевый китайский проектор. Их подключаем Hdmi кабелем.
Как видно 4 провода подключено к плате — питание, hdmi, эзернет, мышка.
Включаем, устанавливаем приложение Яндекс из Гугл плэй. Настраиваем в параметрах Google ассистента.
Начинается все с того что что голосом запускаем Ассистента гугл — Окей гугл, Затем кодовой, секретной фразой Включи Яндекс запускается Яндекс с Алисой. И дальше даем команды Алисе.
В чем различия — цена 1000 рублей против 10000.
P.S.: осталось примотать синей изолентой Контейнер к колонкам Sven — на одну Проектор, на другую Контейнер — получится мега-гипер-ультра Аппарат.
Так как микрофон не чувствительный — посоветую приклеить отрезанное горлышко от баклажки к корпусу и отдавать команды в баклажку (а-ля рупор).
Либо на саморез к монитору сзади — он хотя бы скроет весь этот ужас.
Как самому сделать колонку HomePod за 10 тыс. руб.
Умная колонка HomePod была представлена еще год назад, но даже сейчас устройство является довольно противоречивым.
Множество недостатков и ограничений наталкивают на мысли заменить HomePod более доступным аналогом, но без потери основных возможностей гаджета.
С чем приходится мириться в HomePod
Множество недочетов, ограничений и досадных минусов делают дорогую колонку не самой целесообразной покупкой.
1. HomePod до сих пор официально не продается в России
В то время, как зарубежные поклонники компании Apple с конца зимы уже во всю используют умную колонку, мы вынуждены искать гаджет у перекупщиков или серых дилеров.
Найти устройство в продаже не так и сложно, но вот ценник откровенно не радует. Американские $349 в наших реалиях превращается в 28-30 тысяч рублей.
Не самая справедливая цена за откровенно среднее по качеству звука устройство.
2. Дизайн и цвета на любителя
Если дизайн HomePod достаточно универсальный, то пара цветовых решений сильно ограничивает покупателя.
Это не рынок смартфонов, где все девайсы сейчас очень похожи. Колонок и беспроводных динамиков большое множество на любой вкус и цвет.
3. Качество звука могло бы быть и лучше
Настоящие аудиофилы никогда не выберут HomePod для прослушивания своей коллекции музыки, а для среднестатистического пользователя выдаваемый звук будет на приемлемом уровне.
Другое дело, что похожее звучание вполне реально получить от колонок вдвое или втрое дешевле.
Даже китайские производители колонок научились делать достойные альтернативы и продают их по 5-7 тысяч рублей.
4. Siri в HomePod сильно ограничена и не понимает русский
Еще одно ограничение от Apple. Общаться с колонкой придется на английском.
При этом голосовой ассистент сильно проигрывает в сравнении с помощником из iPhone или Mac.
Многие привычные действия и операции будут недоступны, их придется совершать со смартфона.
5. Система завязана на Apple Music
Для тех, кто привык слушать музыку из VK либо YouTube или подписан на другие стриминговые сервисы, для использования HomePod придется всегда подключать смартфон.
Банальная трансляция звука с iPhone, которую можно провернуть с любой колонкой с AliExpress.
Возможно, с официальным выходом HomePod в России колонка и обзаведется поддержкой других сервисов, но это неточно.
Как собрать аналог HomePod
Чтобы уйти от указанных выше ограничений, можно самостоятельно собрать аналог HomePod, который будет выигрывать по многим параметрам.
Для начала нам понадобится старый iPhone. Он будет выступать мозгом нашей системы и отвечать за интеграцию в экосистему Apple.
Можно использовать свой старый смартфон, который собирались продавать или отдавать родственникам, а можно приобрести восстановленный на AliExpress:
Как видите, разгуляться есть где. В первом случае получаем самую бюджетную систему управления по приемлемой цене, но с ограничением. Обновить iPhone 5C получится лишь до iOS 10.
Самым сбалансированным решением будет iPhone 5s. Здесь и Touch ID для защиты данных есть, и прошивка минимум до следующей осени обновляться будет, а стоит девайс лишь на пару тысяч дороже.
Можно взять iPhone 6/6s, но тогда бюджет решения сильно увеличится. В последнем случае получим более долгую поддержку устройства и возможность запускать Siri без подключения к зарядному устройству.
Да, восстановленные айфоны с ALiExpress это лотерея. Возможно, девайс придет с некачественным дисплеем или требующей замены батареей. В любом случае для нас это не так критично, ведь устройство будет находиться дома для управления музыкальной системой.
Покупаем док-станцию
Теперь нужно выбрать подходящую подставку для нашего смартфона. Конечно, можно обойтись и без дока, но:
Во-первых, смартфон должен быть постоянно подключен к зарядке, чтобы не забывать вовремя заряжать его.
Во-вторых, на моделях iPhone 5c/5s/6 активация Siri голосом возможна лишь при подключенном питании.
В-третьих, смартфон установленный в док будет красиво смотреться в интерьере.
В-четвертых, можно запустить красивое приложение с часами, календарем или погодой, которое будет все время отображаться на экране.
Здесь лучше не жадничать и выбрать оригинальную док-станцию от Apple. В ней есть необходимый нам 3.5 мм разъем, качество выводимого звука не страдает и заряжается смартфон исправно.
Есть возможность убрать один кабель из готовой конструкции, выбрав динамик с Bluetooth, но это может как удорожить проект, так и ухудшить качество звука.
Разумеется, можете подобрать подходящий для себя вариант на AliExpress или в любом магазине электроники.
Выбираем колонку
Самый ответственный момент. От выбора колонки зависит качество воспроизводимого звука.
Следует понимать, какие задачи ставятся перед собираемым девайсом. Будет ли делаться упор на воспроизведение музыки или на использование голосового ассистента.
Можно даже поискать колонки, которые внешне похожи на HomePod.
Вот достойные варианты с AliExpres:
Вот несколько колонок из российских магазинов:
Не забывайте про другие особенности колонок разных производителей. Например, некоторые могут параллельно выступать в роли светильника, ночника или зарядки для основного смартфона. Отдельные модели могут образовывать пару для воспроизведения стереозвука.
При проводном подключении звука не забудьте обзавестись кабелем 3.5 мм на 3.5 мм.
Собираем систему и наслаждаемся.
Преимущества такого решения
1. Система стоит дешевле HomePod
Можно собрать хоть за 10 тысяч рублей. А на стоимость колонки Apple получится аналог с лучшим звучанием.
2. Можно выбирать дизайн и качество звука
В зависимости от задач можно вписать наш аналог в конкретный бюджет или подобрать нужное звучание, которое не расстроит владельца в дальнейшем. Не забывайте о возможности выбрать практически любой дизайн колонок и получить дополнительные фишки, которых нет в HomePod.
3. Есть полноценная Siri с поддержкой русского языка
Голосовой ассистент в iOS работает лучше, чем в HomePod, русский есть из коробки, а при помощи новых команд iOS 12 можно расширить его возможности.
Большинство действий и сценариев получится запускать при помощи удобных команд.
4. Портативную колонку можно брать с собой на природу
Если построить систему на базе колонки со встроенной батареей, то получится еще и брать динамик с собой при случае.
5. Смартфон может выступать в роли пульта для умного дома
Управлять можно не только девайсами с поддержкой HomeKit, но и любой другой электроникой через фирменные приложения.
6. iPhone сможет выступать простым информером
На экране iPhone во время работы может отображаться любая полезная информация из виджетов или приложений.
В чем HomePod окажется лучше
Безусловно, колонка Apple окажется технологичнее своих аналогов. Если заполнение пространства звуком – штука относительная, то вот чувствительные микрофоны – полезная вещь.
Чтобы во время воспроизведения музыки подключенный к колонке смартфон смог услышать обращение к голосовому ассистенту, его придется расположить подальше от источника звука.
Не забывайте, что HomePod может выступать в роли хаба для умного дома. Так в HomeKit получится создавать сценарии автоматизации и управлять умными гаджетами извне. Колонку в таком случае может заменить Apple TV или iPad, который все время находится дома.
Я сделаю свою «умную» колонку… «with blackjack and hookers!»
Привет всем. В данной статье я расскажу историю как мы с двоюродным братом сделали свою «умную» колонку.
На самом деле никакая она неумная, грубая и не особо полезная, но зато весёлая и с характером.
За мной сама идея, программирование, железо (подбор и настройка).
От брата 3D-модель, 3D-печать, железо (подбор и электромонтаж).
Статья по-большей части описывает то, что делал я, лишь немного касаясь 3D-модели.
«Ты на самом деле хочешь дружить с роботом?»
Будучи большим фанатом известного мультсериала «Футурама», однажды (где-то в 2018 году) мне захотелось заиметь самодельную голову робота Бендера Родригеса. В голове, в том числе крутились дурацкие варианты сделать её из какой-нибудь кастрюли. В силу своей глупости идея была забыта и заброшена ровно до того момента пока у одного хорошего человека, моего брата, товарища xbost’а не появился 3D-принтер (весна 2019 года). И тут эта идея снова ожила…
Обсудив эту идею за пивом, принялись за работу. Брат начал делать 3D-модель, а я искать, что из электронного хлама в ящике стола можно задействовать в проекте.
К тому моменту, у меня уже несколько лет валялась без дела плата Intel Galileo Gen2. И было желание задействовать её в этом проекте. Изначально никаких «умных» функций не планировалась, просто запихнуть её в корпус вместе с динамиком и светодиодами, вытащить кнопочку, при нажатии на которую воспроизводились бы цитаты из серий и светились диоды.
В то же время вокруг буйным цветом расцветали (и продолжают расцветать сейчас) умные колонки с голосовыми ассистентами. Они вежливы (Алиса правда хамовата), достаточно много всего умеют и не работают без Интернета. И по мне достаточно скучны.
Это привело к мысли, что на основе Бендера с его вредным, эгоистичным и вообще отрицательным характером можно сделать для себя отличную «умную» колонку. Этакий арт-проект, протест против умных колонок. И обязательно работающую оффлайн, даже ценой производительности.
Первые попытки
Почитав о системах распознавания речи с возможностью оффлайн-распознавания, а также узнав, что ещё один хороший человек, коллега с прошлой работы, в то время писавший диплом, использует CMU Sphinx, выбор был остановлен на нём.
В силу своей природной… хм… невнимательности, я упустил существование более подходящей для моей задачи версии – pocketsphinx, и начал с «большого» CMU Sphinx на Java.
Создал простенькие JSGF-грамматику и программу на Яве. Взял несколько наиболее известных цитат для проигрывания(“with blackjack and hookers”, “bite my shiny metal ass”, “kill all humans” и т.п.). Пробовал изначально на достаточно мощном компьютере(MacBook Pro 13-го года), был доволен результатом производительности, но понимал, что на Галилео меня ждёт нечто другое. Но дело оказалось совсем плохо.
Вообще Галилео уже давно заброшен Интелом. Стандартный Линукс, шедший с ним мне в принципе особенно не нравился. Поэтому попробовал с последней доступной для него сборкой Дебиан.
Туда с проблемами(подробности уже честно не вспомню) был поставлен JRE. В качестве устройства ввода/вывода аудио была использована USB-гарнитура. И… Результат был крайне печален в плане производительности. Сейчас опять же не вспомню, возможно неправильную акустическую модель использовал на ней, но на реакции уходило 30-60 секунд. Плюс брат начал разрабатывать 3D-модель, и сказал, что габариты Галилео большеваты. Плюс отсутствие встроенного Wi-Fi. В общем Галилео опять отправилась в стол.
Решено было попробовать на гораздо более популярной Малинке, и выбор пал на слабую, но самую компактную версию Raspberry Pi Zero W. А также, прокачав внимательность, узнал о pocketsphinx (отличная статья для старта), перешёл на него, и переписал программу на Питоне.
При переходе на Малину, с подачи xbost’а, родилось название для проекта – Pinder (Raspberry Pi + Bender). Да, я прекрасно помню историю с Pidora в русскоязычном сегменте, но в данном случае намеренно выбрал такое лулзовое для русского уха название.
И так предыстория завершена, можно переходить непосредственно к описанию Пиндера.
Внутренняя железная часть
Перечень использованных компонентов:
Raspberry Pi Zero W – собственно основа всего.
Маленький ИБП для Малинки. Его штатный выключатель был выпаян, и к его контактам был припаян микропереключатель (см. далее по списку).
Для подсветки и анимации «зубов»(18 штук) и глаз(2 штуки).
В принципе подойдёт любая, работающая в Линуксе. Подключается через OTG-кабель в единственный доступный для этого порт на Малине Зеро.
В общем тут колхозный вариант был использован. Колонки были раздербанены, взят один динамик, усилитель вытащен из корпуса. Можно было купить отдельный усилитель и динамик, но для меня самым быстрым вариантом было тогда купить эти колонки и разобрать на части.
Но во время разработки поначалу использовался микрофон от телефонной гарнитуры Philips.
Замыкается/размыкается при вставлении/вынимании «антенны» Бендера. Включает/выключает питание от UPS к Малине.
3,5мм разъём и гнездо jack. Для подключения микрофона к аудиокарте (микрофон находится наверху Бендера, в антенне).
В общем внутри всё достаточно колхозно.
Схема подключений очень простая:
Глаза сидят на отдельном пине от зубов и запараллелены между собой. Если бы делал сейчас, то включил бы глаза на одну ленту вместе с зубами, но что уже сделано, то сделано.
3D-модель, корпус
Здесь я не смогу рассказать многого, так как эта часть работы полностью брата.
3D-модель и небольшая инструкция доступны здесь.
Зубы и глаза напечатаны фотополимерной смолой на Anycubic Photon. Все остальные части PLA на Creality Ender 3.
Если будут какие-то вопросы по 3D-модели и печати можно задать мне, я их передам, либо попробовать напрямую спросить у xbost’а на thingiverse (но не уверен будет ли он на них отвечать).
Краткая схема сборки:
Фото в процессе сборки и полностью собранном виде:
Программная часть 1
В качестве ОС используется штатный Raspbian (теперь Raspberry Pi OS).
За распознавание, как уже писалось выше, отвечает pocketsphinx. В качестве аудиоподсистемы используется Alsa (Pulseaudio выпилен).
При разработке никакими лучшими практиками не руководствовался, поэтому код «попахивает».
Поддерживается два языка: английский и русский. Для каждого языка своя JSGF-грамматика, набор аудио-сэмплов(сэмплов в репозитории нет, по соображениям авторских прав) и синтез речи. Русский дорабатывался(и дорабатывается) с некоторым опозданием.
Основной целью была просто возможность отвечать фановыми фразами из серий. Задаешь ему вопросы типа “Как дела?”, “Где ты родился?”, “Что думаешь о Сири?”. Ищется и воспроизводится ответ из сэмплов (в случае отсутствия сэмпла используется синтез речи, но об этом чуть позже).
Изначально скорость ответов на Малине была не очень шустрой (4-6 секунд до ответа):
Покопавшись у себя в коде, были найдены и уничтожены необязательные паузы. То же самое касалось и сэмплов (были пустые места вплоть до 1 секунды в начале файлов). А также прочитана информация о параметрах оптимизации pocketsphinx. Получилось уже получше:
Далее начал добавлять кое-какие полезные функции. Первой стала проигрывание музыки с локальной ФС или интернет-радио с помощью MPD. При этом докричаться до Бендера при проигрывании музыки на приличной громкости сложновато:
После достаточно долгого перерыва, живя на даче, была добавлена первая функция “умного дома”- управление освещением в своём углу через ModBusTCP. Вот только Бендера недостаточно иногда просто попросить включить свет, нужно обязательно сказать «пожалуйста». Работает достаточно шустро:
Программная часть 2
Потом однажды захотелось добавить читалку RSS-новостей. Это уже было невозможно без синтеза речи, но при этом хотелось, чтобы синтезатор звучал как, или хотя бы похоже на голос Бендера. Такой синтез речи на Малине Зеро представляется малореальным и поэтому в этом моменте пришлось сдаться и задействовать онлайн-сервис.
Почитав информацию и попробовав разные варианты остановился на Microsoft Azure Custom Speech.
При создании пользовательского голоса на выбор есть три варианта:
Statistical Parametric – стандартное качество, нужно небольшое количество(для английского языка) сэмплов для обучения.
Concatenative – высокое качество, нужно 6000 сэмплов для обучения.
Neural премиум-качество. По факту недоступно(доступно из США, при написании челобитной в Майкрософт зачем тебе это нужно и выкладывании 100 000$).
Более подробно по технологиям синтеза речи можно почитать например на Википедии.
У меня не было большого количества сэмплов, поэтому сначала поигрался со Statistical Parametric. Результат был неплох, голос конечно не был похож(такой тип синтеза для сильной похожести и не предназначен), но интонации передавал сносно. В итоге на основе набора данных созданного с помощью этой модели я создал оффлайновую модель для CMU Flite, используемую в случае отсутствия связи с MS Azure.
Но всё же хотелось большей похожести и я решился попробовать собрать 6000 сэмплов для Concatenative модели, использующей отрывки из сэмплов настоящего голоса. Очень помог некий хороший человек, выложивший на YouTube 7 видео The Best of Bender. Надёргав оттуда сэмплов, приплюсовав к ним те что уже были и натравив на них майкрософтовский же Text-to-Speech (здесь у меня набор тулзов вспомогательных), получил что-то около 2000 транскрибированных сэмплов. Было принято решение просто скопировать это всё три раза под разными именами, чтобы получить 6000.
В итоге всё это было залито на обучение модели, и результат получился следующим:
Да конечно не идеально, но меня результат трудов устроил.
В итоге синтез речи используется не только для чтения новостей, но и в случае отсутствия оригинального сэмпла. Сначала ищется сэмпл. Если его нет, проверяется связь с порталом MS Azure, если есть – синтезируется с помощью него. Если же связи с Azure нет – используется локальная модель Flite(а для русского языка роботизированный голос eSpeak).
В сумме периодическими волнами и рывками разработка шла с весны 2019-го по весну 2020-го, в свободное время(хорошо видно по коммитам на гитхабе). Далее уже даже не волнами, просто отдельными всплесками.
Будущее
Как таковых планов развития проекта нет. Если появляется желание и вдохновение, то добавляю что-нибудь. Так конечно напрашивается сделать режим просто болталки на нейронке, обученной на фразах Бендера. Ещё возможно добавить режим bluetooth-колонки(и чтобы зубы загорались синим в этом режиме) и приложение для смартфона, для активации схемы патриотизма.
Но для начала надо изобрести удлинитель пальца.
Заключение
Исходный код ПО и 3D-модель выложены под открытыми лицензиями, так что если у кого-то есть желание сделать своего Бендера, добавить свои функции и улучшить – буду рад.
На этом статья подошла к концу. Спасибо, что прочитали!