Обновить
3

Пользователь

5
Подписчики
Отправить сообщение

Ваше - (вольное) обращение, со знаками - препинания, (доводит) - до, нервного, - тика

Не надо так, пожалуйста, лучше не использовать их вообще, чем щедро рассыпать игнорируя всякие правила языка - читаемость только повысится

Проблема самоидентификации растёт из того, что понятие "я" применимо только к ограниченной области философии, и уж никак не к науке, а его пытаются пихать везде. Нет никакого "я" объективно, это социальный конструкт. Поэтому вопрос "который из наблюдателей в ветвлении в многомировой интерпретации является мной" попросту не имеет смысла. Определение этого "я" недостаточно конкретно по аналогии с идентичностью в парадоксе корабля тесея, и подходить к вопросу стоит ровно так же как к этому парадоксу - переформулировать в однозначных терминах.

Статья хорошая, хоть и длинная, наверное удобнее было бы разбить на несколько

С того, что там об этом прямо просят? Как минимум в любой статье "как проходить собеседования в ит" одной из первых строчек прописано - проговаривайте свои рассуждения вслух. Это аксиома. Иначе сложно оценить уровень - ты можешь случайно угадать нужную строчку, а можешь всё в принципе правильно соображать и иметь достаточную квалификацию, но на собесе забыть какой-то момент который в рабочих условиях гуглится и работе не мешает.

И то, что ответы могут ожидаться разные, этот фактор никак не нивелирует.

На собеседованиях над ответом думают вслух, в этом и смысл. Интервьюеру важнее проверить ход мыслей, чем точно запомненные детали реализации, и из того, с чего соискатель начинает свои рассуждения, какие делает предположения, как быстро отбрасывает неверные, и складывается понимание - понимает ли вообще хоть что-то человек, который к тебе пришёл, или по бумажке читает. Поэтому 4 секунды на то, чтобы начать отвечать - это даже многовато ещё

Если у проекта объективные цели - недостижимые, то заниматься им нет смысла.

Даже с человеческим (английским) синтаксисом задача "сделать лучший язык для нескольких разных сфер" невыполнима просто потому что потому. У вас же пет-проект, которым в пике будут пользоваться три с половиной человека, включая кошку автора, которая случайно влезла в IDE. Ещё и с неисправимым недостатком в виде языка с падежами в основе. Поэтому и относиться к проекту стоит соответствующе. Если хочется поковыряться в том, как работают языки, что-то для себя понять - в принципе можно, но чтобы потом не расстраиваться, лучше заранее снизьте ожидания.

Удобнее читать на английском. Не пиши русскоязычный яп.

Это очень. Плохая. Идея. Всегда.

Тут речь про реализацию, а не идею. Сколько за последнее время в рамках работы над суверенным рунетом было сделано для "того, чтобы могло работать при отключении извне", а сколько для того чтобы "самим отключить изнутри", т.е. те самые агрессивные действия, только не предполагаемые, а реальные? К первому варианту относится сделать рутуб/мессенджер макс, всё. Но нет, конечная цель этих товарищей вовсе не суверенность рунета, а денег заработать, поэтому на "сделать" они не останавливаются, им надо чтобы туда все ушли даже если извне никого не отключали. И начинаются блокировки, на которые, между прочим, деньги тратятся. Более того, это убирает конкуренцию и демотивирует развивать и улучшать сервисы - зачем, если все и так вынуждены пользоваться.

Я не знаю, какая каша в мозгах должна быть, чтобы этого не понимать - хотя учитывая уже сказанное про "блокаду целых стран", примерно представляю, в какую сторону вектор мысли направлен, в сторону "все вокруг злые, спят и видят как бы нас уничтожить, так люди наверху сказали, назло внешним врагам можно с радостью себе уши уровень жизни отморозить".

Умная мысль пыталась настичь автора на строке "бразильские программисты не написали бразильский язык программирования", но он оказался быстрее, не додумав окончание "хотя у них тоже латиница".

Ответ лежит на поверхности - проблема "нативных языков" не в чармапе. И даже не в нераспространенности языка - сколько в мире носителей китайского и хинди, но никто не пишет код на них. Проблема в формализованности и лаконичности.

Английский структурирован так, что на нём удобно описывать логические структуры, он остаётся человекочитаемым в условиях строгой формализации и оптимизации синтаксиса и не расходится в разговорном и кодирующем использовании. define boolean translateYPosition звучит так, как это сказал бы человек в разговорной речи. РасширяемыйВыводОперацияЗапустить - не звучит. Программисты тоже люди, и язык пишется для того, чтобы его читал человек. Русский, с его падежами, склонениями и произвольным порядком слов, соответствует этому требованию хуже, чем практически что угодно. Поэтому никогда и ни в каком мире всякие йоптаскрипты не станут ничем большим, чем просто прикол и мемчик.

Платформа абсолютно мёртвая. Без вливания денег в раскрутку своего аккаунта заказов не получить ни одного. В целом, заказов смешное количество, для крупнейшей в РФ площадки.

Если 10 лет назад иметь там аккаунт было ещё хоть сколько-то резонно, то сейчас точно нет, парсинг по чатам в тележеньке даёт кратно лучший результат, чем площадка, нацеленная на это - о многом говорит. Закапывайте стюардессу обратно.

Хотел возразить ранее в ветке, но теперь понимаю, что бессмысленно, такие кадры либо на зарплате и сами не верят в то что пишут, либо ложку с трудом до рта доносят, куда там до мыслительной деятельности и тем более дискуссий. Спасибо, что раскрыли свой богатый внутренний мир подробнее и сэкономили время.

А с чего бы им от этого беситься? У национального суверенного мессенджера разве есть американская аудитория, чтобы каналы представляли интерес для ЦРУ и ФБР? На кой им этот неуловимый Джо?

Проблема в том, что ИИ-отклики сделаны для того, чтобы проходить ИИ-фильтры. Если твоё резюме не будет соответствовать тому, что ожидает машина, до человека-рекрутёра оно просто не дойдёт. Статья, начисто игнорирующая этот факт, абсолютно лишена смысла.

У этой модели всё довольно неплохо с охлаждением, плюс телефон висит на стене а не лежит - пока полёт нормальный, не греется

Отрепорчу через пару лет, если не забуду)

Python вполне запускается без докера в termux

Не решал :) не так часто мне приходится озвучивать цифры и аббревиатуры в диалогах с ассистентом

В любом случае, лучшего локального решения для TTS так и не нашёл

Не просто, автор даже на хабре где-то писал, что модель под андроид собирать не планирует потому что запроса на это нет и не стоит оно того

Тут вопрос не в деньгах даже, а в интересном проекте. Думаю, на этот вопрос работает правило "если надо объяснять - значит, не надо объяснять" :)

Так речь о старых моделях, которые без проблем рутируются и кастомные прошивки ставятся, а железо в них ещё очень даже ничего

В теории можно, лежит у меня ещё Redmi Note 4X, можно и его под что-то простенькое, просто X1 был под рукой, а для Vosk, как ни крути, нужно довольно много памяти под полную модельку, если выбросить часть с ассистентом - то можно и на совсем старом такое завести без проблем

Благодарю!

Скрытый текст
1. Общая архитектура
Система состоит из трёх независимых компонентов, работающих на одном устройстве (Xperia XZ1) и взаимодействующих через HTTP API:

Основной бэкенд умного дома (Central Hub) — ядро системы. Отвечает за:

Управление умными устройствами (свет, розетки, датчики и т.д.).

Хранение состояния и истории.

Предоставление API для модулей и внешних клиентов.

Логику автоматизации (правила, сценарии).

Обработку текстовых команд (от голосового ассистента или других интерфейсов).

Модуль голосового ассистента (Voice Module) — обеспечивает голосовой интерфейс:

Постоянное прослушивание микрофона, детекция ключевой фразы.

Распознавание речи (Vosk) и синтез речи (TTS).

Отправка распознанного текста в основной бэкенд.

Озвучивание ответов.

Управление аудиоресурсами через аудиоарбитр.

Модуль RKHomeHub — существующий (или новый) локальный сервер для Android-приложений:

Предоставляет API для мобильных приложений (чтение/запись локальных данных).

Работает независимо от основного бэкенда, но может интегрироваться через основной бэкенд (опционально).

Дополнительный компонент: Аудиоарбитр — встроен в Voice Module или вынесен отдельно, управляет доступом к микрофону и динамику, реализует приоритетную очередь для разных источников (Voice Module, будущие модули OpenClaw, нотифаер и т.п.).

2. Основной бэкенд умного дома (Central Hub)
2.1. Назначение
Центральный сервер, который управляет всей умной домашней инфраструктурой: устройствами, автоматизациями, сценариями. Взаимодействует с модулями и внешними клиентами (мобильные приложения, веб-интерфейс).

2.2. Функциональные требования
Управление устройствами:

Регистрация устройств (ID, тип, имя, метаданные, состояние).

Обновление состояния устройства (вручную или через датчики).

Выполнение команд над устройствами (включить/выключить, установить значение, запустить сценарий).

Поддержка разных типов устройств: свет, розетки, термостаты, датчики (температура, влажность, движение, дверь/окно), камеры, медиа-плееры.

Автоматизация и сценарии:

Создание правил "если-то" (триггеры: время, состояние устройства, событие; действия: команды устройствам, уведомления, вызов вебхуков).

Периодические задачи (cron-подобные).

Хранение и выполнение сценариев (последовательности действий).

Голосовой интерфейс (через Voice Module):

Приём текстовых команд (POST /api/voice/command).

Распознавание намерений (intent parsing) для преобразования естественного языка в команды устройствам.

Поддержка контекстных диалогов (сессий) – опционально.

Ответ в виде текста для озвучивания.

API для модулей и внешних клиентов:

REST API (JSON) для всех операций.

WebSocket для реального времени (уведомления об изменениях состояний).

Аутентификация (API-ключи или JWT) для безопасности.

Хранение данных:

SQLite (или другая встраиваемая БД) для устройств, правил, истории событий.

Конфигурация в YAML/JSON.

Логирование и мониторинг:

Запись всех команд, событий, ошибок.

Ротация логов (размер, время).

2.3. Примеры API (для спецификации)
Метод	Эндпоинт	Описание
POST	/api/devices/register	Регистрация нового устройства
GET	/api/devices	Список всех устройств
GET	/api/devices/{id}	Состояние устройства
POST	/api/devices/{id}/command	Отправить команду устройству
POST	/api/rules	Создать правило автоматизации
POST	/api/voice/command	Отправить текстовую команду (от ассистента)
GET	/api/status	Статус бэкенда
2.4. Требования к производительности
Низкое потребление RAM (< 200 МБ в простое).

Быстрый отклик на команды (< 500 мс).

Работа 24/7 без перезагрузок.

3. Модуль голосового ассистента (Voice Module)
3.1. Назначение
Обеспечивает голосовое управление умным домом через микрофон и динамик телефона.

3.2. Функциональные требования
Аудиозахват и детекция ключевой фразы:

Постоянное прослушивание микрофона.

Обнаружение ключевой фразы (например, "Окей сервер" или "Слушай") без отправки звука в сеть.

После активации — захват последующей речи до паузы (таймаут тишины) или явной команды окончания.

Распознавание речи (STT):

Локальное распознавание через Vosk (русский язык, компактная модель).

Возврат текста для отправки в основной бэкенд.

Синтез речи (TTS):

Преобразование текстового ответа от бэкенда в речь.

Использование системного TTS Android (через termux-tts-speak или нативное API).

Возможность настройки голоса, скорости, громкости.

Интеграция с основным бэкендом:

Отправка распознанного текста по HTTP в Central Hub.

Получение ответа (текст для озвучивания или команда "ничего не говорить").

Озвучивание ответа.

Аудиоарбитр (встроенный):

Управление доступом к микрофону и динамику.

Приоритетная очередь (приоритеты: 1 – системные модули, 2 – голосовой ассистент, 3 – уведомления).

Поддержка будущих модулей (OpenClaw, нотифаер и др.), которые могут запрашивать аудио через API арбитра.

При конфликте – сохранение контекста прерванного диалога (если нужно).

Управление состоянием:

Запуск и остановка по требованию (может работать постоянно).

Возможность временно отключать микрофон (например, по API).

3.3. API модуля (для внешних модулей)
Модуль предоставляет HTTP API (например, порт 8082) для других модулей:

Метод	Эндпоинт	Описание
POST	/audio/request	Запрос на захват аудио (с указанием приоритета, режима)
POST	/audio/release	Освобождение аудиоресурсов
POST	/tts/speak	Воспроизвести текст через динамик (однонаправленное уведомление)
3.4. Конфигурация
Ключевая фраза (настраивается).

Путь к модели Vosk.

URL основного бэкенда.

Параметры TTS.

Порт для API арбитра.

4. Модуль RKHomeHub
4.1. Назначение
Локальный сервер для обслуживания нескольких Android-приложений на других устройствах (например, приложение для управления умным домом, дашборд). Хранит данные, специфичные для этих приложений, и предоставляет к ним API.

4.2. Функциональные требования
Локальное хранилище данных:

Регистрация клиентов (Android-приложений) с уникальными ID.

Хранение произвольных JSON-данных для каждого клиента (ключ-значение).

Поддержка синхронизации данных между клиентами (опционально).

Автоматическая очистка устаревших данных.

API для Android-приложений:

CRUD операции над данными (чтение, запись, удаление, обновление).

Поддержка подписок на изменения (WebSocket или long polling).

Аутентификация по токену (простому, без сложной безопасности, т.к. локальная сеть).

Независимость от основного бэкенда:

Может работать без Central Hub.

При наличии Central Hub – может интегрироваться через него (например, публиковать свои данные как устройства умного дома).

Минимальное потребление ресурсов:

RAM < 50 МБ.

Хранение данных в SQLite или плоских файлах.

4.3. Пример API
Метод	Эндпоинт	Описание
POST	/api/client/register	Регистрация нового клиента
GET	/api/data/{client_id}/{key}	Получить значение
POST	/api/data/{client_id}	Сохранить/обновить значение
DELETE	/api/data/{client_id}/{key}	Удалить ключ
GET	/api/status	Статус
5. Взаимодействие между компонентами
flowchart TD
    subgraph Xperia XZ1
        A[Central Hub<br>умный дом]
        B[Voice Module]
        C[RKHomeHub]
        D[Будущие модули<br>OpenClaw, Notifier]
    end
    subgraph Внешние устройства
        E[Android-приложения]
        F[Пользовательский голос]
    end

    F -->|голос| B
    B -->|текст команды| A
    A -->|текст ответа| B
    B -->|озвучка| F
    A <-->|опционально| C
    E <-->|API| C
    D <-->|аудио запросы| B
    D <-->|команды/статус| A
Правила взаимодействия:

Voice Module отправляет текстовые команды в Central Hub (POST /api/voice/command).

Central Hub обрабатывает команды, управляет устройствами, возвращает ответ.

Voice Module озвучивает ответ.

RKHomeHub работает независимо, его клиенты – Android-приложения.

Будущие модули (OpenClaw, нотифаер) регистрируются в Central Hub и могут запрашивать аудио через Voice Module (через API арбитра).

6. Общие требования к реализации
Платформа:

Xperia XZ1 (Android 8+, ARM64, 4 ГБ RAM).

Root (Magisk), ACC для контроля заряда.

Termux с поддержкой termux-api, termux-tts-speak, termux-microphone-record.

Автозапуск всех трёх бэкендов при загрузке (через Termux:Boot).

Языки и технологии (на усмотрение агента):

Central Hub: предпочтительно Go (высокая производительность, малый размер).

Voice Module: Python (быстрая разработка, готовые биндинги Vosk) или Go (с обёртками).

RKHomeHub: Go (лёгкий, простой).

Коммуникация:

HTTP/JSON между компонентами (локальный порт, например 8080 для Central Hub, 8081 для Voice Module API, 8082 для RKHomeHub).

WebSocket для событий реального времени (опционально).

Конфигурация:

Единый конфигурационный файл (YAML) для всех компонентов, либо отдельные файлы.

Параметры: IP-адреса, порты, пути к моделям, URL внешних API.

Логирование:

Каждый компонент пишет логи в отдельный файл в /sdcard/logs/.

Ротация: размер 10 МБ, хранить 5 файлов.

Документация для агента:

Инструкция по сборке (если требуется компиляция).

Инструкция по развёртыванию на телефоне.

Примеры API-запросов.

7. Критерии успешной реализации
Central Hub запускается и отвечает на API-запросы. Можно зарегистрировать тестовое устройство, отправить команду, получить ответ.

Voice Module активируется по ключевой фразе, распознаёт тестовую команду ("включи свет"), отправляет в Central Hub, получает ответ и озвучивает его.

Аудиоарбитр корректно обрабатывает конфликтные запросы (например, одновременный запрос от Voice Module и симулированного модуля с более высоким приоритетом).

RKHomeHub позволяет Android-приложению (симулированному) сохранить и прочитать данные.

Все три компонента работают одновременно без взаимных блокировок и утечек памяти в течение 24 часов.

Управление через ADB/SSH возможно (логи, рестарт).

8. Дальнейшее расширение (не требуется сейчас, но для спецификации)
Добавление веб-интерфейса для управления умным домом.

Поддержка MQTT для интеграции с внешними платформами.

Графический интерфейс на телефоне (через нативное приложение) – но из-за разбитого экрана не актуально.

Локальный LLM (например, через llama.cpp) для обработки команд без интернета.

Итог для агента: Агент должен создать три независимых проекта (каждый в своей директории) с полным исходным кодом, конфигурациями, скриптами развёртывания и инструкцией. Основной бэкенд (Central Hub) и RKHomeHub – на Go, Voice Module – на Python или Go. Взаимодействие через локальный HTTP. Всё должно работать на Xperia XZ1 под управлением Termux.

Информация

В рейтинге
4 463-й
Зарегистрирован
Активность