Блог Һомай

Проснись, Хомай!

Какое слово вы произносите самым первым, когда просыпаетесь? В мире все чаще люди сразу после пробуждения говорят: “Hi, Alexa”, “Hello, Siri”, “Привет, Алиса”. Так они здороваются со своими умными колонками. Ключевые фразы, которые пробуждают колонку ото сна, называются wake word (буквально “слово пробуждения”).

Say. My. Name

Минимум три человека из нашей команды днем и ночью пытаются понять, как научить умную колонку просыпаться вовремя и по запросу! Чтобы обычным людям было понятно, с каким сложностями мы столкнулись, представьте себе ситуацию:
Вы на большом светском приеме. Закройте глаза и прислушайтесь: звенит хрусталь, вдалеке играет музыка, стучат ложки, семенят каблучки, кто-то шаркает ногами и поверх всего этого бесконечный людской гул. Десяток человек постоянно что-то говорят, спорят, их голоса имеют разные тембры, чья-то речь быстрая, кто-то говорит на разных языках. Помимо этого вы сами что-то рассказываете или даже поете. Что вам нужно сделать в этом грохоте? Уловить слово «Хомай» или, например, ваше имя.
Сложно? Еще сложнее, чем кажется! Помимо очевидных трудностей, есть еще неочевидные:
1. Колонка должна научиться постоянно слушать, что происходит вокруг, чтобы уловить слово «Хомай» в нашей речи. Среагировать нужно именно на Хомай. «Хаман», «йома», «камай» и другие фонетически похожие слова — не подходят.
2. Сделать все это нужно на минимальных комплектующих. Наш бюджет не позволяет использовать в колонке дорогостоящие процессоры. Это сделано для того, чтобы колонка была всем по карману. Поэтому мы взяли слабомощный двухядерный ESP32. Одно ядро будет постоянно работать для приема вайфая. А второе ядро будет слушать звуковые потоки в надежде услышать заветное пробуждающее слово.
3. Также второе ядро будет производить мгновенную запись небольшого кусочка речи сразу после пробуждающего слова: например, «Хомай, _включи сказку про батыра_». Этот кусочек фразы колонка отправляет на сервер, чтобы расшифровать и понять суть просьбы своего хозяина.
4. Нужно услышать пробуждающее слово, когда собственный динамик воспроизводит звуки. Если колонка уже играет какую-то мелодию или читает текст, и в это время поступает команда «Хомай», она должна среагировать.
Мы пока не справились с этой проблемой, поэтому во время воспроизведения звука Хомай вас услышит только после нажатия кнопки. Но мы работаем из всех сил, чтобы она научилась с этим справляться как ее “старшие сестрички”.
5. Колонка может находиться в разных частях комнаты, микрофон должен уловить текст независимо от источника звука.

У нас будет свой велосипед

Пока читаешь этот список, кажется, что тут нужны годы труда. Да, несколько лет назад это было невозможно. Но сейчас, благодаря алгоритмам машинного обучения, это стало возможным.
Кто-то скажет: “Почему просто не скопировать готовые программные решения у “старших сестер” Хомай - у Алисы, Сири или Алексы? Зачем изобретать велосипед?”.
К сожалению, не все так просто:
1. Готового пакетного решения нет даже у айти-гигантов, у большинства из них весь код по wake word-у засекречен.
2. Даже если мы каким-то образом сможем добыть готовое решение, оно не подойдет для наших умных колонок, так как там ограничены вычислительные ресурсы. 🤷Пока наша колонка слабее вашего смартфона в 100-1000 раз.
3. Для каждого пробуждающего слова (Алиса, Сири, Һомай) вам надо собрать свои данные (мы собрали их вместе с вами!).
Помните, как мы в группе телеграм просили вас записать аудио, как вы и ваши близкие говорят слово “Хомай”? Нам очень пригодились эти звуки! Именно благодаря вашей помощи мы обучили нейросеть распознавать пробуждающее слово на башкирском языке.
В нашей подборке есть женские, мужские, звонкие, хриплые, молодые, старые, детские голоса, которые говорят на разных диалектах, с акцентом или без. Спасибо вам огромное! Колонка неплохо распознает свое имя и откликается на него.
Однако, наши мы считаем, что достигнутого результата все равно не достаточно. Мы будем продолжать собирать звуки “Хомай”, но теперь уже из самой колонки. Процесс обучения можно увидеть вот тут. Мы включали на смартфоне голос, которой по-разному говорил “Хомай”, а колонка записывала эти звуки. Затем проводили анализ, чтобы понять, как колонка услышала свое имя. Эти данные помогли нам заново переобучить модель и улучшить распознавание речи.
💁Сейчас мы по принципу “голь на выдумку хитра” пытаемся впихнуть большую обученную модель на крошечный компьютер и научить ее четко и быстро распознавать слово “Хомай” в любом грохоте из любой точки комнаты. Как только у нас появятся первые результаты, мы обязательно вам расскажем, а пока пожелайте нам терпения и творческого задора!

Был мәҡәләне башҡортса уҡырға: "Уян, Һомай!"
Хотите узнавать о выходе новых статей сразу же? Подпишитесь на наш канал в Телеграме:
Хомай/Homai/Һомай - на русском языке
Һомай - на башкирском языке