Обновить
Козлов Василий Иосифович@saintbyteread⁠-⁠only

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

Отправить сообщение

Многоязычный синтез речи с клонированием

Время на прочтение5 мин
Охват и читатели48K

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


Например, пару месяцев назад появилась реализация синтеза речи с голосовым клонированием Real-Time-Voice-Cloning. Давайте попробуем разобраться из чего она состоит и реализуем свою многоязычную (русско-английскую) фонемную модель.


Строение



Наша модель будет состоять из четырёх нейронных сетей. Первая будет преобразовывать текст в фонемы (g2p), вторая — преобразовывать речь, которую мы хотим клонировать, в вектор признаков (чисел). Третья — будет на основе выходов первых двух синтезировать Mel спектрограммы. И, наконец, четвертая будет из спектрограмм получать звук.

«Чистый» код, ужасная производительность

Время на прочтение16 мин
Охват и читатели69K
Один из самых часто повторяемых советов программистам, особенно начинающим — это рекомендация писать «чистый» код. Она сопровождается длинным списком правил, сообщающих, что нужно делать, чтобы код был «чистым».

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

Если посмотреть на список правил «чистого» кода и вытащить из него правила, которые действительно влияют на структуру кода, то мы получим следующее:

  • Отдавайте предпочтение полиморфизму, а не «if/else» и «switch»
  • Код не должен знать о внутреннем устройстве объектов, с которыми он работает
  • Функции должны быть маленькими
  • Каждая функция должна выполнять одну задачу
  • Принцип «DRY» — Don’t Repeat Yourself («не повторяйся»)

Эти правила достаточно чётко формулируют то, как должен создаваться конкретный фрагмент кода, чтобы быть «чистым». Но я задам такой вопрос: если мы создадим фрагмент кода, соответствующий этим правилам, какова будет его производительность?
Читать дальше →

Локальные нейросети (генерация картинок, локальный chatGPT). Запуск Stable Diffusion на AMD видеокартах

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели123K

Многие слышали про Midjourney, но про то, что есть локальная Stable Diffusion, которая может даже больше, знает уже куда меньше людей, или они не знают, что она локальная. И если они пробовали её онлайн, то быстро приходили к выводу, что она сильно хуже чем Midjourney и не стоит обращать на неё более внимания. И да, SD появился раньше Midjourney. Для запуска хватит и cpu или 4гб видеопамяти.

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

Читать далее

Postgres: графовая база данных, о которой вы не подозревали

Время на прочтение4 мин
Охват и читатели24K

PostgreSQL (Postgres) — это мощная реляционная база данных, способная хранить широкий спектр типов и структур данных. Когда нам нужно хранить графовые структуры данных, мы часто обращаемся к базам данных, позиционируемым как подходящее для этого решение, например, к Neo4J или Dgraph. Но не торопитесь! Хотя при работе с графовыми структурами данных о Postgres обычно не вспоминают, она идеально справляется с эффективным хранением графовых данных и запросами к ним.
Читать дальше →

Взаимодействие с MinIO по относительному пути. Получится или нет?

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели22K

В интернете много информации о том, как развернуть MinIO на хосте по порту, но практически нет о том, что делать, если порт наружу открывать не хочется, а файлы загрузить надо? Потратив пару дней на разбирательство, получился вполне "рабочий велосипед". Я решил воспользоваться Законом Каннингема и разместить своё решение. Надеюсь, оно не ложное. ?

Поехали

Делаем гидрофон и записываем звук трескающегося льда

Время на прочтение29 мин
Охват и читатели16K

Мы сделаем чувствительный дисковый гидрофон, дополнив который предусилителем, мы сможем записывать гидроакустические сигналы в диапазоне частот примерно от 10 до 40 кГц: звуки рыб и морских млекопитающих, шумы двигателей судов и лодок и даже шум снежной метели и скрип шагов по льду, если вы захотите изучать звуки в водоемах, закованных в ледяную корку. А еще мы дадим несколько простых приемов работы со звуковым редактором, и научим видеть то, что не слышно. Все это под катом!

Начать погружение

Абсолютно бесплатный VPN с бесплатного VPS

Время на прочтение3 мин
Охват и читатели75K

Думаю про VPN слышали все, и многим приходилось им пользоваться. При этом использование готового VPN, которым руководит какой - то неизвестный человек, не является хорошей идей. Тем более в России на данный момент пытаются блокировать, как сами VPN провайдеры (Windscribe, Proton и другие известные сервисы), так и сами протоколы.

Читать далее

Передача «скрытого» радиосигнала

Время на прочтение4 мин
Охват и читатели40K
Речь пойдёт о способах сокрытия радиосигнала от постороннего «наблюдателя».

А точнее, о способах уменьшения вероятности обнаружения сигнала.

Никакой математики. Теория и практика на пальцах.
Читать дальше →

Как создать Minecraft на Python? Обзор библиотеки Ursina Engine

Время на прочтение11 мин
Охват и читатели70K

Среди любителей Minecraft много энтузиастов: пока одни просто играют, другие запускают целые серверы и пишут модификации. А кто-то идет дальше и разрабатывает собственные песочницы. Последнее достаточно просто сделать на Python.

Под катом делюсь основами работы с библиотекой Ursina Engine и показываю, как с помощью нее создать мир из кубов.
Читать дальше →

Спектрометр из смартфона, картона и осколка DVD-диска: смотрим на спектры лампочек, фонариков, солнца

Время на прочтение14 мин
Охват и читатели37K

Всем привет! Продолжаем придумывать, как можно использовать устаревший смартфон в новом качестве. Эта статья подготовлена по материалам второго сезона видеокурса “Galaxy Upcycling - новая жизнь старого смартфона”. В  уроках первого сезона мы уже сделали 3D-голограмму, проектор (и написали об этом статью на Хабр), микроскоп, часы, гирлянду, а сегодня делаем еще один исследовательский прибор.

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

Читать далее

Проектируем процессор постапокалипсиса с помощью openSource

Время на прочтение12 мин
Охват и читатели23K

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

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

Метод Рудольфа Калмана для сглаживания рядов

Время на прочтение2 мин
Охват и читатели6.5K

Метод Р. Калмана используется для сглаживания рядов, которые используются повсеместно, так как любую функцию можно представить в виде ряда.Поэтому он получил большое распространение в области обработки научной информации, в анализе информации получаемой с датчиков. В этой статье мы реализуем алгоритм Калмана на языке Python и наглядно увидим его работу.

Читать далее

150+ хакерских поисковых систем и инструментов

Время на прочтение11 мин
Охват и читатели150K

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

Пост состоит из 8 объемных разделов:

1. метапоисковики и поисковые комбайны;

2. инструменты для работы с дорками;

3. поиск по электронной почте и логинам;

4. поиск по номерам телефонов;

5. поиск в сети TOR;

6. поиск по интернету вещей, IP, доменам и поддоменам;

7. поиск данных об уязвимостях и индикаторов компрометации;

8. поиск по исходному коду.

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

Читать далее

Опыт неопытного тимлида

Время на прочтение4 мин
Охват и читатели13K

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

Читать далее

Заметка: Контроль звуковых выходов для программ

Время на прочтение2 мин
Охват и читатели4K

Иногда надо иметь отдельный виртуальный "выход" для звука из некоторых программ. Например, на стриме через OBS. Эта программа не поддерживает такое "нативно", но это возможно сделать с помощью PulseAudio.


Делается это с помощью null sinks и модуля loopback, про которые я немножко расскажу.


Понадоблятся утилиты pactl и pavucontrol, которые должны быть установлены.

Читать дальше →

Скрутки, клеммники и WAGO под лёгкой перегрузкой

Время на прочтение4 мин
Охват и читатели79K


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

Здесь рассматриваются наиболее доступные способы соединить наиболее типичный для квартирной проводки медный однопроволочный провод сечением 2,5 кв.мм.
Читать дальше →

VR: Старые игры на новый лад

Время на прочтение3 мин
Охват и читатели34K


В этой короткой статье я изложу небольшую идею в области использования шлема виртуальной реальности.

Для меня такой подход стал своеобразным «открытием», хотя принцип прост и логичен, так что вероятно давно известен (дайте знать если так, я скрою публикацию).

Предыстория


Итак. Купив шлем (oculus rift cv1), я ожидаемо столкнулся с некоторым дефицитом качественного контента для него. Хотя в магазине присутствует множество игр и видео — но, как всегда есть «но»:

  1. Все приложения платные, и не сказать чтобы дешевые. Ставить все подряд и изучать — жалко времени и денег.
  2. Абсолютно все на английском.
  3. Я не геймер, и покупал шлем в большей степени для разработки, и экспериментов. За всю жизнь, игры которые мне действительно понравились можно пересчитать по пальцам одной руки. Встретить в магазине что-то такого уровня шансов мало.
  4. Большинство разработчиков стремятся запихнуть игрока в «полное 3D» (от первого лица), тогда как, куда интереснее, на мой взгляд, что-то вроде стратегий — не нужно куда-то бегать, и хорошо согласуется с перспективой. Игровые персонажи как-бы бегают по плоскости стола.

Размышляя о перечисленном вспомнил о часах проведенных за Warcraft 3. А вот если попробовать запустить в шлеме эту замечательную игру?.. О результате — под катом.
Читать дальше →

Practical uses of WebRTC Canvas streaming

Время на прочтение7 мин
Охват и читатели4.4K

In this article we will once again return to the tired topic of webinars and webinar hosting tools. And no, we're not about to code a whole new system for webinar hosting – there are already plenty of those. Instead, we will talk about connecting drawing software to the webinar, so that you could manually draw and broadcast the process.

Read More

DIY-микрофон i2s для Raspberry Pi

Время на прочтение6 мин
Охват и читатели9.6K

DIY микрофон i2s для Raspberry Pi с компрессором, лимитером, фильтрами НЧ и ВЧ и даже «голосом Буратино» на Teensy 3.6.

В детстве я часами зависал у витрины музыкального магазина на Нижней Масловке: меня гипнотизировали чехословацкие и болгарские гитары, синтезаторы Поливокс, электроорганы, акустические колонки, наушники, микрофоны и катушечные магнитофоны. В музыкальном магазине была особая аура, пусть с запахом скрипичной канифоли и рояльного лака. Разумеется, меня зачаровывали электрогитары (и не только из-за сверкающих звукоснимателей и тяжелой колковой механики, целлулоидных вставок), многочисленные гитарные педали — тогда еще наука музыки не знала слова «гитарный процессор». Были педали-ящички фэйзеры, фланжеры, «исказители» и только-только появившиеся цифровые ревербераторы Лель. Цифровые устройства стоили баснословных денег, но обещали заманчивые дальние дали!

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

Прошли годы, я уже не посещаю музыкальные магазины, но… Когда на авито я увидел микроконтроллер Teensy, меня накрыла мощная волна ностальгии!

А так как мой домашний компьютер это Raspberry Pi 4, как известно, без микрофонного входа, то музыкальные эльфы и феи подсказали мне идею сделать цифровой микрофон на микроконтроллере… с древними эффектами.

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

Читать далее

Как устроен современный веб-синтезатор

Время на прочтение13 мин
Охват и читатели5.7K

За годы развития браузеры обзавелись множеством API и функциональных возможностей, благодаря которым превратились в невероятно мощные платформы приложений. Яркий пример — это современный веб-синтезатор, подробностями об устройстве которого делимся к старту курса по Fullstack-разработке на Python.

Читать далее

Информация

В рейтинге
Не участвует
Откуда
Екатеринбург, Свердловская обл., Россия
Дата рождения
Зарегистрирован
Активность