Два месяца тишины: что я на самом деле делал

Давно не писал, август проскочил, вот и октябрь на дворе. Не потому что лень. Просто работы навалилось столько, что блог, который я люблю, оказался последним в списке. Знакомая история для любого, кто ковыряет серверы: когда горит, первым сгорает то, что делаешь для себя.

Коротко и по делу, что всё это время делал. И сразу скажу: ни один проект не завершён, всё живое и в работе.

phoenix-agents, моя стройка с августа

Единственный проект, который полностью мой и который я начал сам,, phoenix-agents: мультитенантные AI-агенты под задачи, у каждого своя песочница. Начал в августе, строю до сих пор.

Что имею: из готового «с полки» тут только агентская среда. Всё остальное, скилы и обёртки, написаны руками, под конкретные задачи. Сколько раз хотел взять «готовое», столько раз оно не ложилось. Когда дорастёт до внятного «вот что я сделал и как», распишу отдельно, с граблями и цифрами. Пока, в работе.

Форк RVC-бота: каверы, разделение музыки, подписки

Дальше, форк. Я поднял и развиваю чужой проект, и здесь важно всё назвать своими именами, потому что я человек, который уважает чужой труд.

База, это RVC-бот (Retrieval-based Voice Conversion) от Danil Boldyrev, @daswer123 на GitHub: оригинальный RVC-telegram-bot. Он делает AI-каверы, преобразование голоса, озвучку текста, разделение вокала и кучу эффектов. Это его архитектура, его логика, его пак голосов. Я благодарен ему за фундамент и честно это признаю, без его работы моего форка бы не было.

Мой вклад, поверх этой базы. Первое и главное: оригиналу был нужен GPU, а я всё это переделал под софтверный деплой на CPU. Низкопороговый вариант, который можно поднять без видеокарты. Заодно починил infer_uvr5.py, half-режим теперь только на CUDA, а для шумодава отдельная ветка. Второе, сделал модуль подписок: тарифы, оплата, плюс промокоды с множителями x2/x3/x5 и сроком жизни, и обращения поддержки со статусами и алертами.

Ссылка: @phoenixaicoversbot. Хотите вытащить вокал из песни или сделать кавер в другом стиле, заходите. И тут работы ещё поле непаханное, продолжаю.

Реанимация из сентября: конвертер для слепых, OSM > LoadStone и DotWalker

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

Чтобы было понятно. LoadStone и DotWalker, это навигационные программы для слепых: незрячие пешеходы ходят с ними по городу без поводыря. Им нужна база точек: где дома, переходы, перекрёстки, остановки, какие улицы и в каком направлении идут. Эти базы делаются из карт OpenStreetMap. И существует конвертер, который берёт кусок OSM и превращает его в такую базу.

Вот только конвертер этот, ровесник динозавров. Написан на Python 2 ещё бог знает когда, автор бросил его давно, и кто вообще это делал, мне неизвестно. А он нужен: достойной замены, по сути, нет. Старые методы скачивания карты давно развалились и не работали, api умер, зеркала побились, утилита тихо умерла вместе со своими обещаниями.

Что я сделал: взял то, что осталось, и слепил поверх наколхоженный велосипед. Старый код, обёртка, а методы получения OSM переписал заново, прежние-то мертвы. Виндовую сборку реанимировал. Под Linux собрал свою версию с нуля, жить в окошке ради одного конвертера мне не хотелось.

Теперь это работает так: одна команда, имя города, и на выходе готовая база для обеих программ.

python3 osm2nav.py "Новороссийск"

Или с запасом вокруг города, радиус в километрах:

python3 osm2nav.py "Санкт-Петербург" 5

Скрипт сам геокодирует название, качает свежую карту (если кусок велик, сам дробит, если сервер занят, сам ждёт и пробует другие зеркала), конвертирует и в конце печатает, куда положил файлы и сколько точек вышло. На выходе, три файла: loadstone.txt для LoadStone, route.xml и route.dat для DotWalker, причём route.dat типизированный: дома, переходы, перекрёстки, остановки, направления улиц. Человеку, который хочет ходить по родному городу без поводыря, это буквально открывает город.

Ссылка: @osm_dotwalker. Нужна такая база, заходите. Про статус тут честно скажу: закончено ли, я сам не знаю. Люди пользуются, на ошибки не кричат, значит, работает. Но руки до нормальной финализации пока не дошли, там тоже есть куда расти.

Что дальше

И ещё одно, без подробностей, потом отдельным постом как будет время: я возвращаюсь в рынок хостинговых услуг. Всё, детали позже.

Что вынес из этой заварушки. Первое, не вычёркивать блог из плана «на время»: пауза растянулась на два месяца просто потому, что я не занёс посты в расписание. Второе, не делать всё одновременно: стройка + два форка/реанимации + блог, это перегруз, и всё шло медленнее, чем при последовательной работе.

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

Всё, вернулся на бегу, работа продолжается. Но посты теперь будут.

👁️ 18

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

13 − один =

root@phoenix901:~# connect
[×]

Получай дайджест раз в неделю.
Без спама.