Вчимо робот-пилосмок говорити українською

🔄 26 листопада 2024

Додано посилання на репозиторій з озвучкою Леся Подерв’янського

Нещодавно у TikTok завірусилося відео з роботом-пилосмоком з голосом Леся Подерев’янського.

Мені вдалось взяти інтерв’ю у розробника цієї озвучки і завантажити голосовий пакет на пилосмок Dreame за допомогою Home Assistant. Додам, що завантаження голосового пакету ніяк не змінює функціональність пилосмока та не порушує умови гарантії.

росія — держава терорист. російський військовий корабель, пішов нах***!

Для виконання інструкції вам знадобиться Home Assistant. Його можна встановити у віртуальну машину, однопалатний компʼютер, або інше обладнання.

Інтервʼю

— Можете коротко розповісти про себе та свої хобі?

— Мене звати Костянтин, я QA Engineer в компанії Qualium Systems. В робочий час допомагаю налаштовувати процеси розробки в компанії, випускати якісні продукти, у вільний — займаюся саморозвитком, проводжу час з дружиною, друзями, граю в ігри (комп’ютерні та настільні), на гітарі, та намагаюся розібратися в тому, як поставити кастомну озвучку на свій робот-пилосос)

— Чому вирішили переозвучити пилосмок? Як вам прийшла ідея озвучки голосом Леся Піддеревянського? Чи мали ви інші варіанти?

— Пилосос ми придбали не так давно в Алло, попередньо надивившись різних оглядів, в тому числі і з цікавими озвучками. На другий день після покупки я задався питанням, а як же мені самому поставити якусь цікаву озвучку( окрім офіційних що доступні в додатку). Нагуглив сайт, на якому є бібліотека користувацьких озвучок, але нажаль всі російськомовні. На деякий час вибір пав на голос Kel`Tuzad з Warkraft. Вона весела але доволі швидко приїлася. Дружина попросила поставити якусь українську озвучку, я поставив офіційну, але стало якось нудно. Тому я вирішив розібратись, а як зробити свою, і вибір пав на голос пана Леся Подерв’янського, з творчістю якого я познайомився ще на першому курсі у 2008.

До речі, саме ті файли, передані по Bluetooth в ті далекі часи, послужили вихідними файлами для озвучки. Дружина в свою чергу теж ідею оцінила, бо колись вивчала його як частину теми про сучасну українську літературу на філологічному. Ідея прийшла в понеділок ввечері, на ніч я трохи нагуглив інформації, вранці у вівторок приступив до реалізації.

Відповідаючи на питання про інші варіанти: так, мав, і навіть один вже зробив (про це може потім якщо цікавить). В планах зробити 3 озвучки, першу вже світ побачив, друга вже готова але нікому крім дружини і вузького кола друзів ще не показував, до третьої ще не дійшов.

— Розкажіть про технічні аспекти проєкту. Як взагалі прошити пилосмок? Можете поділитись вихідними файлами озвучки Леся Подерев’янського?

— Прошити — це гучно сказано. В моєму випадку — це просто встановити кастомну озвучку через сайт, ніякої магії або складнощів. Маючи готовий архів це займає два кліки мишкою. Але все ж є підводні камені, пов’язані з моделями пилососів та форматами вихідних файлів. Так наприклад в мене модель Xiaomi Robot Vacuum S10+, аудіофайли для озвучки повинні бути в форматі .ogg , а сама папка з файлами має бути заархівована в .tar, а потім в .gzip (без стиснення). На виході має бути файл формату example.tar.gz.

Спосіб архівування теж має значення, я витратив десь годину на пошук причини, чому в мене замість голосу тиша в деяких тестових версіях. Прийшов до того, що треба архівувати через программу 7z, файли додавати саме через інтерфейс програми (не через контекстне меню). Вимоги до аудіо — частота 16к Гц, моно. Всі ці маніпуляції стосуються саме моєї моделі, і не спрацювали у мого товариша, у котрого молодша версія Xiaomi Robot Vacuum S10. Ми виявили що для його моделі потрібен архів в форматі .zip, але вочевидь треба використовувати інший формат аудіо файлів, бо моя версія озвучки з .ogg файлами в архіві .zip не встановилася на його девайс. Можливо коли ми знайдемо потрібний формат я поділюся своїм рішенням проблеми.

Для тестування можливості закидування озвучки використовувався російський сайт, але то не є файно, тому разом з Богданом покажемо альтернативні варіанти.

З приводу вихідних файлів та архіву з озвучкою — я би дуже хотів поділитися цим з людьми, тим паче що кожен другий коментатор під відео про це просить. Але не впевнений, що маю на це право (хоч і повністю безкоштовно). Тому хотів би скористатися нагодою та силою суспільства Dou та звернутися до пана Подерв’янського (може хтось з читачів знає його особисто): пане Лесь, якщо ви не проти того, щоб ця озвучка вийшла в суспільство, будь ласка дайте мені знати (краще якщо це буде відео підтвердження). Буду вдячний всім хто посприяє цій справі. Оновлення, все вдалося, голосовий пакет Леся додано. 🔥

Встановлення HACS

Встановлення доповнення Advanced SSH & Web Terminal

Перейдіть до Налаштувань >> Доповнення >> Магазин доповнень >> Advanced SSH & Web Terminal. Натисніть встановити.

Перед запуском доповнення перейдіть до вкладки Конфігурація та встановіть довільний надійний пароль у лапках та збережіть налаштування. Пароль можна згенерувати онлайн. Якщо ви отримуєте помилку 502: Bad Gateway, можливо ви не встановили, або встановили занадто простий пароль.

Після того перейдіть на вкладку Інформація, запустіть додаток, натиснувши Старт.

Встановлення HACS

HACS (Home Assistant Community Store) це неофіційний магазин спільноти Home Assistant. Він збирає та каталогізує інтеграції, теми, картки, python скрипти та інші елементи Home Assistant в одному місці.

Щоб встановити HACS відкрийте встановлений Advanced SSH & Web Terminal та вставте команду

wget -q -O - https://install.hacs.xyz | bash -
Після перезавантажте Home Assistant (Налаштування >> Система >> кнопка у верхньому правому куті)

Перейдіть до Налаштування >> Пристрої та сервіси >> Додати інтеграцію. У полі пошуку інтеграцій напишіть HACS та оберіть її.

У вікні що відкрилось прочитайте попередження та проставте прапорці, натисніть надіслати.

У наступному вікні скопіюйте наданий код, перейдіть за адресою github.com/login/device та вставте його. Якщо у вас немає облікового запису Github створіть його. У наступному вікні підтвердіть авторизацію HACS. Після успішної авторизації Home Assistant запропонує задати приміщення HACS, а на бічній панелі зявиться нова піктограма. На цьому встановленя HACS завершено.

Спосіб 1. Встановлення української озвучки на пилосмок інтеграція Dreame Vacuum

Спосіб завантаження озвучки на пилосмоки Dreame, Mijia та Mova. Переглянути підтримувані пилосмоки можна на сторінці Dreame vacuum integrations у розділі Supported devices. Для моделей що не входять у цей список я рекомендую використовувати метод 2 нижче. На бічній панелі натисніть інтеграцію HACS. У верхній стрічці пошуку введіть слово Dreame. Оберіть інтеграцію.

У нижньому правому кутку натисніть кнопку Download. Після перезавантажте Home Assistant (Налаштування >> Система >> кнопка у верхньому правому куті)

Перейдіть до Налаштування >> Пристрої та сервіси >> Додати інтеграцію. У полі пошуку інтеграцій напишіть Dreame та оберіть її.

У вікні що відкрилося оберіть тип конфігурації With map (Automatic) та натисніть надіслати

У наступному вікні введіть логін та пароль від застосунку Xiaomi Home та оберіть сервер (найчастіше це Німечинна — de)

Якщо отримуєте повідомлення cannot_connect, можливо пилосмок не увімкнений. Можна поставити його на зарядну станцію та спробувати повторно.

Якщо отримуєте помилку {"message":"Invalid handler specified"} видаліть каталог dreame vacuum з усім його вмістом. Це можна зробити через термінал за допомогою команди та rm -r homeassistant/custom_components/dreame_vacuum. Видаліть інтеграцію у HACS (три крапки у верхньому правому куті) та почніть процес встановлення заново.

Якщо все спрацювало ви побачите наступне вікно. Тут нічого змінювати не потрібно, лише натиснути кнопку надіслати та обрати кімнату пилосмока. На цьому встановлення інтеграції завершено.

Встановлення української озвучки на пилосмок

Для озвучення нам потрібно знаки команду та мати архів з голосовими файлами. Покажу як це зробити на прикладі крутезної озвучки Dreame Vacuum Ukrainian Voice Packs (поставте зірочку ⭐ на GitHub) від Oleksandr Belei. Озвучка дуже приємна і якісно записана. Послухати голос можна в розділі прикладів.

Для того, щоб завантажити архів з голосом на пилосмок потрібно перейти в пункт Інструменти для розробників на бічній панелі Home Assistant >> Служби >> натиснути кнопку перейти у режим YAML >> вставити таку команду та натиснути викликати службу. Перевірити чи завантажилась прошивка можна запустивши прибирання.
Також вказати дані можна зручно в графічному інтерфейсі (різниці ніякої)

Dreame Vacuum. Oleksandr Belei

service: dreame_vacuum.vacuum_install_voice_pack
data:
  lang_id: UK
  url: >-
    https://github.com/oleksandr-belei/dreame-vacuum-uk-voice-packs/raw/main/voice_packs/uk_female_pensive
  md5: 55bfe4272ce1e77d9bbafebf9ec99330
  size: 3585448
target:
  entity_id: vacuum.mops

В команді обов’язково змініть назву vacuum.mops на вашу. Назву пилосмока можна перейшовши до Налаштувань >> Пристрої та сервіси >> та натиснути на слово пристрій у нижній частині інтеграції Dreame Vacuum

У розділі елементи керування натисніть на піктограму вашого пилосмока, а потім на піктограму шестерні у верхньому правому кутку. У вікні що відкрилось скопіюйте ID сутності. Використовуйте його у якості entity_id.

Dreame Vacuum. Лесь Подерв’янський

service: dreame_vacuum.vacuum_install_voice_pack
data:
  lang_id: UK
  url: >-
    https://github.com/KonstantinDev7/Voice_Packs_for_Mi_Robot_S10_Plus/raw/refs/heads/main/Voice_Packs/LesV1ogg.tar.gz
  md5: 267b6a6bb90c14989ff4fb8369a29ead
  size: 2107482
target:
  entity_id: vacuum.mops

Dreame Vacuum. GLaDOS україномовний пакет

service: dreame_vacuum.vacuum_install_voice_pack
data:
  lang_id: UK
  url: >-
    https://github.com/sverdlyuk/glados_ukr/raw/refs/heads/main/uk_glados_voice_pack.gz
  md5: 3545e91c0626beccbd284469f6283a77
  size: 9620968
target:
  entity_id: vacuum.mops

Спосіб 2. Встановлення української озвучки на пилосмок інтеграція Xiaomi Miot

Цей метод працюватиме для усіх пилосмоків Xiaomi, оскільки інтеграція Xiaomi Miot For Home Assistant виконує команди протоколу miot, яким керуються усі пристрої від Xiaomi.

Встановлення

Перейдіть до HACS >> зверхуху в рядку пошуку введіть Xiaomi Miot Auto >> відкрийте та встановіть інтеграцію. Після перезавантажте Home Assistant (Налаштування >> Система >> кнопка у верхньому правому куті)

Перейдіть до Налаштування >> Пристрої та сервіси >> Додати інтеграцію. У полі пошуку інтеграцій напишіть Xiaomi Miot Auto та оберіть її.

У вікні що відкрилось обираємо пункт Add devices using Mi Account, тиснемо кнопку далі.

У наступному вікні вводимо данні Mi Home. Connection Mode залишаємо Automatic, server location — Europe, тиснемо кнопку надіслати.

У наступному вікні в рядку Filter Devce обираємо Include та у списку обираємо пилосмок, тиснемо надіслати. Налаштування інтеграції завершено.

Для того, щоб завантажити архів з голосом на пилосмок потрібно перейти в пункт Інструменти для розробників на бічній панелі Home Assistant >> Служби >> натиснути кнопку перейти у режим YAML >> вставити таку команду та натиснути викликати службу. Перевірити чи завантажилась прошивка можна запустивши прибирання.

Xiaomi Miot. Oleksandr Belei

service: xiaomi_miot.set_miot_property
data:
  entity_id: vacuum.dreame_p2041o_796c_robot_cleaner
  siid: 7 # siid для аудіосервісу
  piid: 4 # piid для встановлення голосового пакету
  value: '{"id":"UK","url":"https://github.com/oleksandr-belei/dreame-vacuum-uk-voice-packs/raw/main/voice_packs/uk_female_pensive","md5":"55bfe4272ce1e77d9bbafebf9ec99330","size":3585448}'

service: xiaomi_miot.set_miot_property — згідно специфікації home.miot-spec.com мій пилосмок встановлює голосовий пакет за допомогою параметрів (property), та використовує SIID 7 та PIID 4. Тому я використовую тут службу xiaomi_miot.set_miot_property та відповідні ID.

Проте частина пилосмоків, можуть робити це за допомогою дій (actions та AIID). Якщо ж ваш пилосмок використовує дії перегляньте розділ xiaomi_miot.call_action. Команда має бути подібною, але використовує службу xiaomi_miot.call_action, а SIID та AIID можуть мати інші значення.

entity_id — ідентифікатор вашого пилосмока. В прикладі команди вказаний мій ID пилосмока, замініть його на власний. Знайти його можна перейшовши до Налаштувань >> Пристрої та сервіси >> та натиснути на слово пристрій у нижній частині інтеграції Xiaomi Miot Auto.

У розділі елементи керування натисніть на піктограму вашого пилосмока, а потім на піктограму шестерні у верхньому правому кутку. У вікні що відкрилось скопіюйте ID сутності. Використовуйте його у якості entity_id.

Xiaomi Miot. Лесь Подерв’янський

service: xiaomi_miot.set_miot_property
data:
  entity_id: vacuum.dreame_p2041o_796c_robot_cleaner
  siid: 7 # siid для аудіосервісу
  piid: 4 # piid для встановлення голосового пакету
  value: '{"id":"UK","url":"https://github.com/KonstantinDev7/Voice_Packs_for_Mi_Robot_S10_Plus/raw/refs/heads/main/Voice_Packs/LesV1ogg.tar.gz","md5":"267b6a6bb90c14989ff4fb8369a29ead","size":2107482}'

Xiaomi Miot. GLaDOS україномовний пакет

service: xiaomi_miot.set_miot_property
data:
 entity_id: vacuum.dreame_p2041o_796c_robot_cleaner
 siid: 7 # siid для аудіосервісу
 piid: 4 # piid для встановлення голосового пакету
 value: '{"id":"UK","url":"https://github.com/sverdlyuk/glados_ukr/raw/refs/heads/main/uk_glados_voice_pack.gz","md5":"3545e91c0626beccbd284469f6283a77","size":9620968}'

Спосіб 3. Встановлення української озвучки на пилосмок python-miio

⚠️ Не поширюйте публічно ваш токен та did. Зберігайте його в безпечному місці

Python-miio це бібліотека (і супровідний інструмент miiocli) які можна використовувати для керування пристроями за допомогою протоколів Xiaomi miIO та MIoT. Miiocli — це швейцарський ніж для усіх Xiaomi пристроїв.

Встановлення Python Miio Windows

  1. Завантажте та встановіть Python.
  2. Відкрийте командний рядок (cmd) та встановіть pip (YouTube).
  3. Запустіть команду pip install git+https://github.com/rytilahti/python-miio.git.

Пошук токену, IP та did

Команда miio.cli cloud відображає інформацію про ваші Xiaomi пристрої підключені до Mi Home. Для подальших дій нам знадобиться токен, IP адреса та device id (did) пилосмоку

python -m miio.cli cloud
Username: [email protected]
Password:
== Mi Robot Vacuum-Mop 2 Pro+ (Device online ) ==
        Model: dreame.vacuum.p2041o
        Token: 614a498f6c72506d6e3066764f73696a
        IP: 192.168.50.157 (mac: 7B:25:HA:5C:39:6E)
        DID: 8023334994
        Locale: de
        Other fields:
                longitude: 0.0
                family_id: 0
                uid: 1363375079
                password:
                adminFlag: 1
                permitLevel: 16
                show_mode: 1
                shareFlag: 0
                pid: 0
                extra: {'isSetPincode': 0, 'pincodeType': 0, 'fw_version': '4.3.3_1111', 'needVerifyCode': 0, 'isPasswordEncrypt': 0}
                pd_id: 70126
                latitude: 0.0
                reset_flag: 0
                p2p_id:

Згідно специфікації home.miot-spec.com мій пилосмок встановлює голосовий пакет за допомогою (параметрів) property та використовує SIID 7 та PIID 4. Існує декілька способів встановити ці параметри. У цьому випадку використовується raw_command

Python Miio windows. Dreame (Oleksandr Belei)

python -m miio.cli genericmiot --ip 192.168.50.157 --token 614a498f6c72506d6e3066764f73696a raw_command set_properties "[{'did': '8023334994', 'siid': 7, 'piid': 4, 'value' : '{\"id\":\"UK\",\"url\":\"https://github.com/oleksandr-belei/dreame-vacuum-uk-voice-packs/raw/main/voice_packs/uk_female_pensive\",\"md5\":\"55bfe4272ce1e77d9bbafebf9ec99330\",\"size\":3585448}'}]"

Running command raw_command
[{'siid': 7, 'did': '8023334994', 'piid': 4, 'code': 0}]

Якщо команда спрацювала у відповідь ви отримаєте відповідь ’code’: 0, якщо не спрацювала ’code’: −1

Python Miio Windows. Офіційна озвучка Dreame

python -m miio.cli genericmiot --ip 192.168.50.157 --token 614a498f6c72506d6e3066764f73696a raw_command set_properties "[{'did': '8023334994', 'siid': 7, 'piid': 4, 'value': '{\"id\":\"UK\",\"url\":\"https://awsde0.fds.api.xiaomi.com/dreame-product/resources/59bcaf5201f15950c12917d0bb505321\",\"md5\":\"59bcaf5201f15950c12917d0bb505321\",\"size\":3927702}'}]"

Python Miio Windows. GLaDOS (україномовний пакет)

python -m miio.cli genericmiot --ip 192.168.50.157 --token 614a498f6c72506d6e3066764f73696a raw_command set_properties "[{'did': '8023334994', 'siid': 7, 'piid': 4, 'value' : '{\"id\":\"UK\",\"url\":\"https://github.com/sverdlyuk/glados_ukr/raw/refs/heads/main/uk_glados_voice_pack.gz\",\"md5\":\"3545e91c0626beccbd284469f6283a77\",\"size\":9620968}'}]"

Python Miio Windows. Лесь Подерв’янський

python -m miio.cli genericmiot --ip 192.168.50.157 --token 614a498f6c72506d6e3066764f73696a raw_command set_properties "[{'did': '8023334994', 'siid': 7, 'piid': 4, 'value': '{\"id\":\"UK\",\"url\":\"https://github.com/KonstantinDev7/Voice_Packs_for_Mi_Robot_S10_Plus/raw/refs/heads/main/Voice_Packs/LesV1ogg.tar.gz\",\"md5\":\"267b6a6bb90c14989ff4fb8369a29ead\",\"size\":2107482}'}]"

Python Miio Linux. GLaDOS (україномовний пакет)

Python нативна мова для Linux, тому встановлювати нічого не потрібно
Запустіть команду pip install git+https://github.com/rytilahti/python-miio.git
У Linux я не тестував, але команда має виглядати так:

miiocli genericmiot --ip 192.168.50.157 --token 614a498f6c72506d6e3066764f73696a raw_command set_properties "[{'did': '8023334994', 'siid': 7, 'piid': 4, 'value' : '{\"id\":\"UK\",\"url\":\"https://github.com/sverdlyuk/glados_ukr/raw/refs/heads/main/uk_glados_voice_pack.gz\",\"md5\":\"3545e91c0626beccbd284469f6283a77\",\"size\":9620968}'}]"

Python Miio Linux. Лесь Подерв’янський

miiocli genericmiot --ip 192.168.50.157 --token 614a498f6c72506d6e3066764f73696a raw_command set_properties "[{'did': '8023334994', 'siid': 7, 'piid': 4, 'value' : '{\"id\":\"UK\",\"url\":\"https://github.com/KonstantinDev7/Voice_Packs_for_Mi_Robot_S10_Plus/raw/refs/heads/main/Voice_Packs/LesV1ogg.tar.gz\",\"md5\":\"267b6a6bb90c14989ff4fb8369a29ead\",\"size\":2107482}'}]"

Python Miio Linux. Офіційна озвучка Dreame

miiocli genericmiot --ip 192.168.50.157 --token 614a498f6c72506d6e3066764f73696a raw_command set_properties "[{'did': '8023334994', 'siid': 7, 'piid': 4, 'value': '{\"id\":\"UK\",\"url\":\"https://awsde0.fds.api.xiaomi.com/dreame-product/resources/59bcaf5201f15950c12917d0bb505321\",\"md5\":\"59bcaf5201f15950c12917d0bb505321\",\"size\":3927702}'}]"

Python Miio Linux (miiocli device) Офіційна озвучка Dreame

miiocli device —ip IP —token TOKEN raw_command set_properties "[{’did’: ’DID’, ’siid’: 7, ’piid’: 4, ’value’ : ’{\"id\":\"UK\",\"url\":\"awsde0.fds.api.xiaomi.com/...​201f15950c12917d0bb505321\",\"md5\":\"59bcaf5201f15950c12917d0bb505321\",\"size\":3927702}’}]"

Маєте питання — пишіть в коментарі

Якщо інтерв’ю та стаття були для вас корисними, подякуйте донатом моєму другу на комплектуючі дронів для ЗСУ. Малих донатів не буває.

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

👍ПодобаєтьсяСподобалось8
До обраногоВ обраному5
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Чи вийде якось xiaomi robot vacuum s10 через miiocli прошити для озвучки від Леся?

Мабуть вийде, але у вашої моделі home.miot-spec.com/s/ijai.vacuum.v17 трохи специфічний формат запису файлів. Якщо файл переіменувати, то все має вийти. Напишіть мені будь ласка в приватні повідомлення на DOU

Dreamer d10 s яким варіантом краще пробувати прошити?

Має підійти варіант з інтеграцією Home Assistant Dreame Vacuum та пакетом .tar.gz для Dreame. Приклад github.com/...​-інтеграція-dreame-vacuum Також має підійти python miio. Спробуйте

Python Miio windows. Dreame (Oleksandr Belei)

Що по бити якщо в mi home не тягне модель d 10 dreamer?

Чи можна у вас замовити для моделі Dreame Mova Home E10? Додаток MovaHome

Дякую за інструкцію. А що робити власникам roborock s7, s5, для них нема

siid, aiid

в документації ( Гугління не допомогло

Зараз я в процесі розробки пакету для roborock dou.ua/forums/topic/50353. У мене немає де його протестувати. Якщо вас цікавить ви можете допомогти мені з тестуванням

Буду радий допомогти. Маю s7 та s5. На s5 колись ставив сторонні мовні пакети через miio (здається), то було років 7 тому. Звертайтеся.

Зараз я чекаю на озвучку фраз roborock docs.google.com/...​WsfufESs/edit?usp=sharing. Коли це буде не знаю. Маю дві пропозиції до вас.

1 почекати озвучку пакету GLaDOS roborock і спробувати завантажити пакет, коли я його складу
2 спробувати завантажити сторонній пакет builder.dontvacuum.me/pkg/voice/roborock roborock через miio, щоб знати як виглядатиме команда

Вітаю! S5 прошивається без проблем через команду mirobo --ip=192.168.@.@ --token=######## install-sound ~/Downloads/transformer.pkg, на s7 ніякий голосовий пакет не встановлюється. Хоча при намаганні встановити РУсішний голос налаштування робота змінюється на дефолтну російську (фу-фу-фу) озвучку. При намаганні змінити голосовий пакет в різній сяомівській аплікації з’являється повідомлення що «звуковий пакет не встановлено»

Вау дякую вам за команду. Може на s7 за допомогою url та md5 завантажити пакет? Типу такого

 mirobo --ip=192.168.1.25 --token=42**************************1337 install-sound https://github.com/flibustier/kaamerock/releases/download/v1.0.0/fr_kaamelott.pkg 764034b1b52cb60769615acdc0c91755 

про москальський голос цікаве спостереження. Цікаво чому так

можу спробувати. Але нарив в інтернеті інформацію про те що S7 — 3тя генерація роботів не дозволить прошити будь який пакет. Тільки такий що підписаний сертифікатом який є в середині робота. Але сам не перевіряв і не впевнений що то правда.

о... якраз рівень Подерев’янського 🤔

А на s10 (ijai.vacuum.v17) немає пакету із Подерев’янським?

Тут питання чи є взагалі можливість завантаження пакету. Такі можливості можуть бути реалізовані за допомогою properties або actions. У вашого пилосмока є actions 14.1 download-voice, тому гадаю можна завантажити пакет. Ви вже пробували його завантажити?

Так, я встановив на нього пакет ще давно за допомогою кацапського сервісу, але я хотів би Леся в нього запхати. Та тільки не можу виділити часу не повну переробку пакету, бо з нуля це довга історія, ось і питав, може хтось адаптував вже під цю модель.

Я дописав і тепер команда по встановленню Леся є на кожен метод (Dreame Vacuum, Xiaomi Miiot Auto та python-miio) Також у статтю додано новий україномовний пакет GLaDOS 🎉 github.com/sverdlyuk/glados_ukr

Я пробував, у мене теж actions 14.1. Робот-пилосос Xiaomi S20+ (xiaomi_b108gl), але схоже що на ньому це не працює. Пробував завантажувати всі три озвучки. Пакет не змінюється. Пилосос ніби просто перезавантажується і повідомляє про початок заряджання. В програмуванні не тямлю, тому код переписував в ChatGPT. Можливо Ви щось підкажете.

action: xiaomi_miot.call_action
data:
  entity_id: vacuum.xiaomi_b108gl_d209_robot_cleaner
  siid: 14 # language
  aiid: 1  # download-voice
  params:
    - 5 # voice-url
    - "https://github.com/KonstantinDev7/Voice_Packs_for_Mi_Robot_S10_Plus/raw/refs/heads/main/Voice_Packs/LesV1ogg.tar.gz"
    - 6 # voice-mdfive
    - "267b6a6bb90c14989ff4fb8369a29ead"

Дякую за ваш інтерес. Ваш формат запису виглядає правильно. Знайшов таке в інтернеті

service: xiaomi_miot.call_action
data:
  entity_id: vacuum.viomi_v18_entity_id
  siid: 4
  aiid: 13
  params:
    - 0 # Global
    - 1 # Start
    - xx,yy,zz # Room IDs

Що показують логи Home Assistant? (Налаштування >> Сиситема >> Журнал сервера?
У вас правильний I’d пилососа?
Спробуйте через target voice і piid. Бачу що aiid дублює функції aiid

Результат ідентичний. Змінив блок params на:

params:
— 5 # voice-url
— 6 # voice-mdfive
— ’{"voice-url«: «github.com/...​ice_Packs/LesV1ogg.tar.gz», «voice-mdfive»: "267b6a6bb90c14989ff4fb8369a29ead"}’

Відповідь:

code: −1
error: Unable to recover failed command

Пробував вводити цю команду у різних форматах і деякі були успішні з code:0, проте озвучка не оновлювалась. Схоже доведеться використовувати стандартну. В будь-якому разі дякую за допомогу

Не здавайтесь так рано. Технічно це можливо. Я подумаю і відпишу ще

id писолоса правильний, перевіряв.
Логи показують помилки і попередження. Там багато, ось декілька:

Got error when receiving: {’code’: −9999, ’message’: ’user ack timeout’}

Call miot action {’did’: ’1069707810′, ’siid’: 14, ’aiid’: 1, ’in’: [{’piid’: 1, ’value’: 5}, {’piid’: 5, ’value’: ’github.com/...​ce_Packs/LesV1ogg.tar.gz}, {’piid’: 6, ’value’: 6}]} failed: Unable to recover failed command

Got MiioException while fetching the state: Unable to recover failed command, mapping: {’vacuum.sweep_mop_type’: {’siid’: 2, ’piid’: 3}, ’vacuum.sweep_type’: {’siid’: 2, ’piid’: 4}, ’vacuum.clean_times’: {’siid’: 2, ’piid’: 7}, ’vacuum.suction_level’: {’siid’: 2, ’piid’: 8}, ’vacuum.mode’: {’siid’: 2, ’piid’: 16}}, max_properties: 5/5

Update of vacuum.xiaomi_b108gl_d209_robot_cleaner is taking over 10 seconds

Зараз ще спробую через target voice

upd:
Є умовно успішний результат. Код:

service: xiaomi_miot.set_miot_property
data:
entity_id: vacuum.xiaomi_b108gl_d209_robot_cleaner
siid: 14 # siid для аудіосервісу
piid: 1 # piid для встановлення голосового пакету
value: ’{"id":"UK","url":"github.com/...​ice_Packs/LesV1ogg.tar.gz","md5":"267b6a6bb90c14989ff4fb8369a29ead","size“:2107482}’

Видає відповідь:

did: “1069707810”
siid: 14
piid: 1
code: 0

Проте озвучка залишається старою) Але вже без помилок в логах.

А спробуйте інший голосовий пакет на всяк випадок у такому форматі не Леся. Наприклад GLaDOS, або стандартний Xiaomi

Пробував і GLaDOS, і Oleksandr Belei. Результат такий же:

did: «1069707810»
iid: 0.14.1
siid: 14
piid: 1
code: 0
exe_time: 0

Озвучка не змінюється. А стандартний Xiaomi звідки брати посилання на файл?

Ще хочу додати, що вчора я намагався завантажити пакет через формат:

action: xiaomi_miot.call_action
data:
entity_id: vacuum.xiaomi_b108gl_d209_robot_cleaner
siid: 14 # SIID для мови
aiid: 1 # AIID для завантаження голосового пакету
params:
— piid: 5
value: «github.com/...​ice_Packs/LesV1ogg.tar.gz»
— piid: 6
value: «267b6a6bb90c14989ff4fb8369a29ead»

І результат був успішним:

out: []
code: 0

Сьогодні цей формат вже не працює. Також сьогодні було оновлення Xiaomi Miot з 1.0.6 до 1.0.7. Не знаю чи це пов’язано, але підозрюю що так.
Цікаво що після введення цього коду пилосос не видавав жодних звуків при виконанні будь-яких команд. Я думав що це помилка, допоки сьогодні не спробував завантажити озвучку через сторонній сайт і результат був такий же — жодних звуків. При цьому через get_properties видно, що озвучку встановлено іншу. Тобто схоже, що пакет завантажується але формат архіву не підходить для пилососа. GLaDOS теж завантажив через сайт — теж жодних звуків. Oleksandr Belei через сайт не встановлюється, так як формат файлу не .tar.gz. Це все що вдалось дізнатись.

Про тишу дуже цікаве та корисне спостереження. У мене теж таке було коли створював пакет GLaDOS через неправильний формат архіву. Я потім взяв архів донор і замінив файли на свої. Костянтин, про якого йдеться у цій статті пише, що архіви можуть відрізнятись. Давайте спробуємо знайти архів з голосом під ваш пилосмок і спробуєм завантажити його. Потрібно знайти (якщо така існує) сторінку для вашого пилососа щоб побачити усі голосові пакети що він підтримує awsde0.fds.api.xiaomi.com/...​/voices/soundpackage.json

Замість dreame.vacuum.p2008 потрібно підставити правильну назву пилососа -xiaomi.vacuum.b108gl . Можливо ще замінити dreame-product на щось інше

перепрошував різні варіанти категорій, правильну сторінку знайти не вийшло. Я точно знаю що назву пишу правильно (назва показується при пошуку на сайті home.miot-spec.com), а категорію не можу вгадати. Є ще варіанти пробувати переробити архів з голосом, або перехопити url при зміні голосового пакету в застосунку Mi Home через Wireshark, Fiddler або Charles Proxy

https://awsde0.fds.api.xiaomi.com/xiaomi-product/xiaomi.vacuum.b108gl/voices/soundpackage.json
https://awsde0.fds.api.xiaomi.com/mi-product/xiaomi.vacuum.b108gl/voices/soundpackage.json
https://awsde0.fds.api.xiaomi.com/vacuum-product/xiaomi.vacuum.b108gl/voices/soundpackage.json
https://awsde0.fds.api.xiaomi.com/robot-vacuum-product/xiaomi.vacuum.b108gl/voices/soundpackage.json
https://awsde0.fds.api.xiaomi.com/dreame-product/xiaomi.vacuum.b108gl/voices/soundpackage.json
https://awsde0.fds.api.xiaomi.com/smart-product/xiaomi.vacuum.b108gl/voices/soundpackage.json
https://awsde0.fds.api.xiaomi.com/appliance-product/xiaomi.vacuum.b108gl/voices/soundpackage.json
https://awsde0.fds.api.xiaomi.com/global-product/xiaomi.vacuum.b108gl/voices/soundpackage.json

У HACS можна видалити інтеграцію і завантажити файли заново, тільки старіше версію. Там випадаючи вікно з вибором

видалив повідомлення що тут було, неактуально

Створив проблему в GitHub проєкту github.com/...​s-xiaomi-miot/issues/2229 Відповідь можна довго чекати, тому намагатимусь вирішити паралельно

Дякую! Слідкуватиму обов’язково. Я, власне, цей пилосос придбав лише тому, що побачив відео в tiktok з озвучкою :D

а оцю одну вавку можна замютити?

падлюка о 4 ранку будить

www.reddit.com/...​charge_roomba_on_the_960

Ого, співчуваю вам. Roomba досі нічого не зробила з цією проблемою? Бачу що обговорення на Reddit три роки тому. В налаштуваннях у вас немає щось накшталт режиму не хвилювати? (DND)

Ще булоб круто добавити озвучку з прекрасного відео передвиборчої гонки на посаду мера м. Харків 2005 року), за автроства добкіна на кернеса

Китайський dreame x20 pro plus все встало норм, декілька раз натискав кнопку, і нічого не було, потім перейшов у UI мод i прибрав

vacuum.mops

замінивши своїм роботом.

Радий що все вийшло, а яку озвучку ставили?

Я ставив дівчину

service: dreame_vacuum.vacuum_install_voice_pack
data:
lang_id: UK
url: >-
github.com/...​e_packs/uk_female_pensive
md5: 55bfe4272ce1e77d9bbafebf9ec99330
size: 3585448
target:
entity_id: vacuum.mops

тільки, тому що тут був вже згенерований код, і мені його треба було скопіювати. Якщо був би Подерв’янський у вигляді готового коду(з лiнком) я б може поставив його.

Мені цікаво, а тут усі відповіді у паку? — бо може таке бути що у більш наворочених роботів більше озвучки, наприклад у паку 50 речень, а у робота 100 слотів, цікаво як воно там все всередині робить..

Додам найближчим часом і Леся в згенерований код. Для цього використовую chat GPT. В ідеалі є голосовий пакет має близько 300 фраз для усіх типів пилососів. github.com/...​main/ua_voice_mapping.csv

Україномовний пакет dreame має 200 фраз awsde0.fds.api.xiaomi.com/...​201f15950c12917d0bb505321

service: dreame_vacuum.vacuum_install_voice_pack
data:
  lang_id: UK
  url: >-
    https://github.com/KonstantinDev7/Voice_Packs_for_Mi_Robot_S10_Plus/raw/refs/heads/main/Voice_Packs/LesV1ogg.tar.gz
  md5: 267b6a6bb90c14989ff4fb8369a29ead
  size: 2107482
target:
  entity_id: vacuum.mops

Доброго дня.
Підкажіть, а можна якось підняти гучність? Xiaomi S10+, стоїть 100% гучності, але рази в два тихше за оригінальну озвучку.

Підкажіть про яку озвучку йде мова?

Я например, зюзал нейроперевод в ютубе для 6 языков, т.е. когда идет ролик через 1-2 минуты подгружается перевод или субтитры, очень удобно.

Хлопцы, скажите, а есть в чате люди которые занимаются нейропереводом?

Пан Лесь вже перепостив це відео у себе на сторінці) Мабуть, реагував би інакше якщо б був проти
www.facebook.com/...​uRtw2ZdGPx3YpxXLoagREqT6l

Так, бачив. Це надзвичайно круто. Правда хтось свій водяний знак поставив. Костянтин найближчим часом завантажить озвучку на GitHub. Коли завантажить, додам посилання у цей топік

Витратив деякий час встановлюючи HA і налаштовуючи його, але зрештою виявилось що мій пилосмок(Xiaomi Mi Robot Vacuum-Mop P) не підтримує завантаження аудіо пакету. Нажаль.
Немає параметру в специфікації home.miot-spec.com/spec/viomi.vacuum.v8
Але дякую за статтю.

Шкода, дякую за ваш інтерес

Мені вдалося встановити на Dreame L10 Pro український пакет від Dreame D9 Max:

awsde0.fds.api.xiaomi.com/...​/voices/soundpackage.json

miiocli device —ip IP —token TOKEN raw_command set_properties "[{’did’: ’DID’, ’siid’: 7, ’piid’: 4, ’value’ : ’{\"id\":\"UK\",\"url\":\"awsde0.fds.api.xiaomi.com/...​201f15950c12917d0bb505321\",\"md5\":\"59bcaf5201f15950c12917d0bb505321\",\"size\":3927702}’}]"

Підписатись на коментарі