Обложка «Луна. Девушка, которой не должно существовать»

«Луна. Девушка, которой не должно существовать»

Vaditech

0% прочитано
Стандартный
Vaditech

«Луна. Девушка, которой не должно существовать»

Глава 1. Слышишь меня?

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

Он отпустил ручку.

Дождь шёл косо, с порывами ветра. Между домами вспыхнула молния, на секунду обозначив мокрые антенны и спутниковые тарелки. На крыше стояли лужи. Илья обходил их, хотя штанины и ботинки давно промокли. Телефон в кармане вибрировал уже не первый раз, но доставать его не хотелось.

У края он остановился. Внизу горел светофор, машины поворачивали с одной улицы на другую. На остановке под узким козырьком теснились люди. Кто-то вышел из подъезда с пакетом мусора и побежал к контейнерам, прикрыв голову капюшоном.

Илья узнал эту улицу. Ещё недавно он мог пройти по ней и думать о совершенно обычных вещах: успеет ли в магазин до закрытия, сколько осталось до зарплаты, когда Антон вернёт зарядку. Теперь от одного воспоминания о тех днях становилось больно.

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

Ничего не находилось.

— Почему? — спросил он. — Что я сделал не так?

Голос прозвучал жалко и чуждо. Илья замолчал. Он не ожидал, что начнёт плакать, хотя слёзы текли уже давно, смешиваясь с дождём. Хотелось разозлиться, разбить телефон о бетон, кому-нибудь позвонить и потребовать объяснений. Но он знал, что услышит в ответ. Собственно, потому и не отвечал на звонки.

У стены технической надстройки валялась чья-то пустая бутылка. Илья помнил такие мелочи особенно хорошо. Квартира со скрипучими полами. Сумка у шкафа. Рабочий терминал, от которого к вечеру начинала ныть кисть. Ненавистный подъём в шесть утра. Глупые разговоры в курилке. Прежде ему казалось, что это и есть жизнь, из которой срочно надо выбираться.

*Верните мне её. Хоть на день. Я больше ничего не попрошу.*

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

Сзади послышался тихий металлический стук.

Илья не обернулся. Только крепче ухватился за край.

А потом кто-то произнёс его имя.

Он узнал голос прежде, чем прозвучало второе слово.

***

Калуга. Октябрь 2030 года.

В одиннадцать утра Илью разбудил Антон. Точнее, разбудил он себя сам, когда на третий звонок уронил телефон с кровати и полез искать его под тумбочкой.

— Ты там вещи собрал? — спросил Антон без приветствия. — Я билет ещё вчера тебе переслал. До поезда не так уж много времени.

— Время есть. Я сейчас встану, — сказал Илья, хотя уже сидел на полу, придерживая телефон плечом. — Ты сам-то готов?

— Я с вечера готов. Ты в прошлый раз тоже говорил, что время есть, а потом в подъезде паспорт искал. Давай без приключений. На вокзале встретимся.

Антон отключился. За окном моросило. В соседнем дворе дворник толкал тележку с мусорными пакетами, увязая колёсами в мокрых листьях.

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

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

— Да слышу я, слышу.

Двухкомнатную квартиру он снимал на третьем этаже старой пятиэтажки. Обои были свежими только на фотографиях хозяйки, зато окна пластиковые и мебель вполне нормальная. В коридоре оставался деревянный пол, который скрипел при каждом шаге. Хозяйка обещала заменить его, когда появятся деньги.

В одной комнате стояли кровать и шкаф, в другой — стол с компьютером, диван и коробки со старыми деталями. Когда приходили гости, Илья называл вторую комнату кабинетом. Антон — местом, где пропадают зарядки.

Пока закипал чайник, Илья заглянул в банковское приложение. До зарплаты ещё оставалось несколько дней. Очередной платёж по кредиту был отмечен красной датой, а сверху приложение заботливо предлагало новый заём на выгодных условиях. Он смахнул предложение и открыл список расходов. Снимать квартиру, ездить на работу, платить по старым долгам — на всё хватало, если не происходило ничего неожиданного. Неожиданное, впрочем, случалось с завидной регулярностью.

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

— Да покажите уже целиком, как он чашку ставит, — пробормотал Илья. — Мне тоже так удобно работать: неудачный дубль вырезал и пошёл на премию.

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

С тех пор свободные вечера он часто проводил за компьютером. Приходилось читать инструкции, проверять команды и выяснять, почему нейросеть предлагает библиотеку, которой не существует. Но интерес только рос.

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

Перед выходом Илья проверил окна и розетки. В коридоре вспомнил про зарядку от телефона, вернулся к столу и увидел рядом старую записку: «посмотреть курс Python». Сам курс так и оставался в закладках браузера.

На вокзале Антон ждал возле автомата с кофе. Он заметил Илью через стеклянные двери и поднял второй стакан.

— Без сахара, как обычно. Только не говори, что уже пил.

— Пил. Но твоим тоже не побрезгую. Ты чего так рано приехал?

— У матери сантехник должен был прийти, я ей с утра помогал разобраться, где стояк перекрывается. Потом уже сюда. — Антон передал кофе и кивнул на рюкзак. — Паспорт на месте?

— В кармане. Можешь не проверять.

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

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

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

— На работе новости есть? — спросил Илья.

— Серёга сказал, у них перед нашей сменой завал был. На сборку новый заказ пришёл, срок срезали, а кто под него людей выделять будет — никто толком не знает. Громов всех гоняет. — Антон убрал пакет. — Меня ещё вчера с другого производства звали на собеседование. Зарплата вроде повыше, но половина в премии и оформление через подрядчика. Я даже ехать не стал.

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

— Ты бы сначала нашёл, куда уйти. Уволиться несложно. Сложнее потом квартиру оплатить, — заметил Антон. — Я тоже не от хорошей жизни там работаю.

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

Дальше ехали молча. Антон задремал, а Илья открыл в телефоне обновления одного из ИИ-сервисов. На короткой демонстрации пользователь показывал камере разобранную клавиатуру, а помощник объяснял, куда поставить выпавшую деталь. Илья отправил ссылку в заметки: особенно заинтересовало, что программа одновременно видела и разговаривала.

В Дубну приехали уже к вечеру. До служебного общежития добрались автобусом, отнесли вещи в комнату и легли пораньше. Наутро начиналась смена.

***

Утром на складе обнаружилось, что один из терминалов сбора снова не заряжается, а в зоне отгрузки с ночи осталось полтора десятка палет. Бригадир Громов стоял перед доской с заданиями и перечислял сроки. У него была привычка повышать голос, когда кто-нибудь пытался перебить, даже если вопрос касался дела.

— На сборку сегодня идёт крупная партия. Сначала закрываем её, остальное — после. По накопителям и памяти работаем внимательно, пересорты потом обратно нам же прилетают. Илья с Антоном, берите вторую очередь, — закончил он.

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

В работе Илья разбирался хорошо. Новички иногда смеялись, что он ищет товар по запаху, но сам он просто помнил, где обычно лежат ходовые позиции. Терминал показывал адрес, количество и код, оставалось найти коробку, сверить маркировку и подтвердить. Ошибка в одной цифре могла отправить на сборку не тот накопитель или модуль памяти, а разбираться потом приходилось всей смене.

Ближе к полудню он добрался до партии, с которой и начались неприятности. В задании значились двадцать четыре накопителя по одному терабайту. На полке стояли запечатанные коробки с правильным названием серии, но на заводской наклейке был указан объём вдвое меньше. Илья вытащил одну, проверил вторую и достал терминал. По остаткам всё совпадало: нужный товар числился именно здесь.

— Антох, подойди на минуту, — позвал он друга, работавшего через проход. — Мне либо очки пора менять, либо тут кто-то весь остаток не тем товаром забил.

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

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

— Я уже проверял. По системе они все здесь. И отгрузка через час. — Илья поставил коробку обратно. — Пойдём к Громову. Пусть приёмку поднимет, а то потом с нас спросят.

Бригадира нашли возле двери в сборочный цех. Он одновременно говорил по телефону и отмечал что-то в планшете. Дослушав объяснение, Громов бросил взгляд на накладную, затем на часы.

— Вы мне хотите сказать, что у нас сейчас двадцать четыре накопителя исчезли? Я людям на сборке что должен объяснять? Они под эту партию уже корпуса подготовили.

— Они не исчезли, Олег Викторович. По указанному адресу лежит другая модель. Наклейки можно проверить, — ответил Илья. — Нужны данные с приёмки и разрешение на пересорт, иначе мы заказ неправильно соберём.

— Ты седьмой год работаешь или первый? Я тебе сейчас должен рассказывать, куда за товаром идти? Если я начну за каждым комплектовщиком бегать, кто тогда сменой заниматься будет?

Разговор услышали двое сборщиков, проходивших мимо. Один задержался возле двери. Илья почувствовал, как начинает гореть лицо, но на этот раз заставил себя договорить:

— Я как раз не хочу отправлять им не то, что нужно. Мы с Антоном уже адреса проверили. Сотрудник приёмки может посмотреть поставку, а я пока соседние зоны обойду.

— Вот и обходи. Не понимаю, зачем меня от работы отрывать, если сами можете разобраться. Из-за таких задержек потом премии режут, а вы ходите, будто времени полно.

— Погодите, — Илья не выдержал. — За что мне премию резать? За то, что кто-то на приёмке перепутал коробки? Я товар не размещал. Наоборот, заметил ошибку до сборки.

Громов положил планшет на стойку.

— Во-первых, тон сбавь. Во-вторых, про премию я сказал не лично тебе. Будет срыв — будем смотреть, на каком этапе случился. А в-третьих, не надо здесь устраивать разборки. Заказ должен уйти сегодня.

— Я ничего не устраиваю. Но вы же при всех говорите, что мы работать не умеем. Я вам по делу пришёл сказать.

— Всё, Илья. У нас времени на это нет. Ещё слово — оформлю объяснительную за отказ выполнять распоряжение.

— Да какое распоряжение я отказываюсь выполнять? Мне найти то, чего на полке нет? — Илья уже говорил громче, чем хотел. Несколько человек возле цеха повернули головы. — Давайте тогда вместе пойдём и посмотрите, что там лежит.

Антон встал между ними не буквально, а разговором:

— Олег Викторович, мы заказ закроем, если нужный остаток на складе есть. Я сейчас по журналу приёмки проверю, Илья резерв обойдёт. Нам бы только ответственного за пересорт, чтобы документ оформить.

Громов несколько секунд смотрел на них, потом набрал внутренний номер.

— Приёмка? Поднимите вчерашнюю поставку накопителей. Двадцать четыре штуки, номер заказа сейчас скину. И найдите, кто размещал. — Он убрал телефон. — Разрешение будет, когда выясним, откуда расхождение. Пока ищите. И без концертных выступлений.

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

— Потому что достал, — ответил Илья. — Я ему семь лет объясняю одно и то же. Вечно виноват тот, кто последним коробку в руках держал. Ты слышал про объяснительную? Я же пришёл ошибку показать, а он мне отказ от работы приплёл.

— Слышал. Я и сам офигел. Только он сейчас заведённый, а у нас заказ горит. Давай найдём накопители и зафиксируем, что они были не там. Если будет что-то с премией, я подтвержу, как всё произошло.

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

Они забрали нужные накопители и успели передать заказ сборщикам. Но время, потраченное на поиски, никуда не исчезло: в журнале выполнения задания оно осталось за Ильёй. Позже Громов велел ему написать объяснение о задержке. Не выговор, как тот сперва подумал, а описание обстоятельств. Всё равно приятного было мало.

— Напиши спокойно, что произошло, — посоветовал Антон. — Укажи время, номера перемещений. Я тебе подтверждение с приёмки скину. Пусть разбираются по документам, а не по тому, кто громче орёт.

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

Отправив сообщение, Илья взял куртку и вышел на перерыв.

За складом под навесом курилки дождь стучал по краю жестяной крыши. Двое работников обсуждали цены на машины. Один показывал объявление на телефоне, другой утверждал, что за эти деньги несколько лет назад купил бы автомобиль вдвое лучше.

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

Он хотел уйти со склада давно. Но когда представлял, как кладёт пропуск на стол, сразу вспоминал долги и аренду. Найти место с такой же стабильной зарплатой без образования и связей было непросто.

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

Илья отвёл взгляд. За восемь лет без отношений он успел привыкнуть ужинать перед монитором, ходить в кино одному и не спрашивать ни у кого разрешения на собственные планы. В некоторых отношениях это было удобно. Но когда после двух недель работы возвращаешься в квартиру и даже сказать «я приехал» некому, удобство не особенно радует.

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

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

А если собрать такой помощник дома?

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

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

Он набрал вопрос: «Можно ли связать голосовую нейросеть с видеокамерой и датчиками так, чтобы она сама начинала разговор, когда человек входит в комнату? Я не программист, но Python понемногу изучаю. С чего начать?»

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

— Ты чего там так улыбаешься? — Антон вышел из склада и остановился рядом. — Громов извинился, что ли?

— Да ну его. Смотри, что можно сделать. — Илья показал телефон. — Типа умной колонки, только чтобы видела через камеру, понимала, кто дома, и сама разговаривала. Я подумал: если всё это уже по отдельности работает, чего не попробовать соединить?

Антон прочитал первые строки, вернул телефон и поправил воротник.

— Попробуй. Только начни действительно с ноутбука. А то я тебя знаю: купишь десять камер, потом выяснишь, что к половине пароль забыли положить. И денег жалко, и квартира будет похожа на проходную у охраны.

— Я пока даже одну не собирался брать. Хочу сначала понять, потяну ли программную часть.

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

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

***

Вечером в общежитии он впервые за долгое время не стал запускать игру. Антон устроился на соседней кровати с телефоном, а Илья открыл ноутбук, установил Python и создал папку для проекта. Через полчаса программа вывела на экран приветствие, ещё через час смогла произнести его синтетическим голосом. О достижении Илья сообщил Антону, повернув к нему динамики.

— Здравствуйте, пользователь, — торжественно сказал ноутбук.

Антон оторвался от телефона.

— Я смотрю, до девушки тебе пока далеко. Начальница из отдела кадров какая-то.

— Это проверка. Потом нормальный голос поставлю. Мне надо сначала понять, как всё соединить: камеру, речь, ответы. Если код просто копировать и не разбираться, он у меня развалится на первой же ошибке.

— Я бы тебе помог, да для меня уже само слово «код» — повод закрыть ноутбук. — Антон немного помолчал. — Слушай, а ты ведь из-за Громова сегодня совсем загнался. Только не принимай решений на злости. Идея твоя, занимайся, а с работой пока ничего не руби.

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

— Да я понимаю. Завтра опять встанем, пойдём собирать заказы. Просто хочется, чтобы дома хоть чем-то своим заниматься. А не опять две недели валяться, потом сюда возвращаться.

— Так занимайся. Вот на следующей вахте мне покажешь, чего у тебя получилось.

В следующие дни Илья работал как обычно. Претензии к комплектовщикам по задержанному заказу сняли после проверки. Громов объявил это сухим «разобрались» и больше к теме не возвращался. Илья тоже не стал спорить, хотя неприятный осадок остался.

По вечерам он изучал примеры работы с камерой и голосом. Программа уже отвечала на простые команды, но иногда принимала речь с соседней кровати за обращение к себе. Эту задачу Илья отложил до дома, где можно было тестировать без постороннего шума.

К пятнадцатому дню список идей стал длиннее списка готовых функций. Илью это не расстраивало: он уже понимал, с чего начинать, и перестал бояться пустого окна редактора кода.

По дороге домой Антон поинтересовался, выбрал ли Илья камеры. Тот показал два варианта и объяснил, что сначала проверит всё на ноутбуке, а покупать остальное будет по мере необходимости. В Калуге они разошлись у вокзала и договорились созвониться через несколько дней. Илья до самого дома думал о программе, хотя после вахты ему не меньше хотелось выспаться.

Дома пахло застоявшимся воздухом. Илья открыл окно, разобрал сумку и принял душ. В комнате было тихо, только скрип половиц сопровождал его из коридора к кухне.

Вечером пришла зарплата. Илья распределил деньги по платежам, оплатил квартиру и только после этого снова посмотрел список устройств. Почти всё, что оставалось свободного, он собирался пустить на эксперимент. Решение было не самым разумным при его долгах. Он понимал это, поэтому несколько раз пересчитал покупки, убрал дорогие датчики и отказался от лишней камеры.

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

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

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

Антону он отправил короткое видео без объяснений. Друг перезвонил через несколько минут.

— Это ты у себя по квартире ходишь? Так у тебя теперь ещё и охрана собственная будет? Слушай, а когда к тебе друзья придут, ты их предупреждай. А то потом ролики со всеми нашими рожами в чате появятся.

— Я для проверки снимаю, не для публикации. Камеры мои, дома мои. Удалю лишнее. Пока вообще ничего в облако не складываю.

— Я серьёзно, — сказал Антон. — Ты только не забывай, что не все захотят, чтобы их дома камера видела.

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

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

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

Программный доступ к языковой модели пришлось оплачивать отдельно от привычной подписки на чат. Илья установил лимит расходов и настроил отправку отдельных снимков вместо постоянного видеопотока.

Первый ответ пришёл текстом: «В комнате мужчина перед ноутбуком. На столе кружка и телефон».

Он передвинул кружку и повторил проверку. Модель заметила перемену, значит, можно было двигаться дальше — к голосу.

Илья перебрал несколько женских вариантов синтеза речи. Один звучал слишком официально, другой делал странные паузы, третий понравился почти сразу. Он настроил скорость, убрал чрезмерно бодрую интонацию и стал думать, как назвать помощницу. Хотелось короткое имя, без ассоциаций с готовыми колонками и коммерческими сервисами.

«ЛУна», — записал он в настройках, поставив ударение на первый слог. Ему нравилось именно такое звучание. Но голосовой движок упорно читал привычное «лунА». Илья нашёл специальную разметку произношения, исправил, при следующей правке снова забыл её перенести. На третий вечер, когда проверял сохранённую конфигурацию, услышал из динамиков:

— Меня зовут лунА.

— Да будь уже лунА, — сказал он ноутбуку. — Я тебя всё равно так называю половину времени.

С этого и прижилось. В файле настроек осталось имя «Луна» без дополнительных значков, в голосовых ответах — привычное ударение. Самому Илье со временем оно тоже стало казаться нормальным.

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

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

В воскресенье вечером Илья занёс в настройки своё имя, возраст, работу и несколько интересов. Полноценную память разговоров ещё предстояло сделать. Зато он запретил помощнице поддакивать на каждую фразу, попросил говорить на «ты» и не повторять одни и те же шутки.

После душа Илья включил вентилятор возле стола, потому что в комнате стало жарко. Футболку бросил на спинку стула, оставшись в одних трусах. В квартире он жил один и совершенно не задумывался, как выглядит со стороны, пока программа ничего не показывала.

Он проверил, что камера включена, а отправка кадров начинается только при обнаружении человека. Затем запустил всю цепочку и сел перед ноутбуком. На экране появилась его комната: шкаф, край кровати, стол и он сам, чуть сутулившийся над клавиатурой.

Илья встал, отошёл к двери и вернулся. В журнале появилось сообщение о движении. Затем ещё одно: «Человек в кадре». Модель получила снимок и короткую запись: «Пользователя зовут Илья. Это первый тест самостоятельного обращения».

Он ждал обычного «Привет, Илья». Может быть, очередной ошибки.

Но программа молчала. Илья придвинулся к экрану, чтобы увидеть, где остановилась обработка. Ответ уже пришёл; синтезатор готовил звуковой файл. В динамике раздался короткий щелчок.

— Привет, Илья. А я тебя вижу! Слушай, а ты чего в одних трусах сидишь? Тебе не холодно?

Спасибо за чтение

Вернуться к книге