Всем привет! Это 7ое видео курса о том, как ставить компьютеру условия.
К сожалению делать быстро не получается. Человек, ответственный за видео очень загружен по основной работе. Поэтому уж как есть. 8ой и 9ый ролики уже озвучены и отданы, но загадывать когда будут не берусь. Со своей стороны до конца года сделаю Степик курс по уже сделанным роликам. Там будут задачи и более детальные объяснения всего, но это только для тех кто захочет дальше заниматься программированием.
Некоторые считают, что телеграм-боты – это второсортные цифровые продукты, которые не имеют ничего общего с громким словом СТАРТАП. Разбираемся, так ли это на самом деле в новом выпуске «Стартап-секретов»
🎧 Подкаст «Стартап-секреты»: Сезон 2, выпуск 43
С ботами ничего не нужно дополнительно устанавливать, потому что вы работаете, внутри Telegram, а мобильное приложение потребует время на установку и займет память телефона.
В гостях у меня Ахмад Боков, основатель компании BotCreators, которая автоматизирует бизнес-процессы своих клиентов при помощи чат-ботов для мессенджеров и соцсетей.
Мы с Ахмадом сравнили функционал ботов и мобильных приложений, обдумали как в случае чего защитить бота от возможных блокировок иностранных мессенджеров, определили слабые места конструкторов чат-ботов.
Тайм-коды на YouTube со ссылками:
0:00 Интро и знакомство с Ахмадом, который топит за телегам-ботов и делает сложные штуки на них
7:00 Как менялся спрос на чат-ботов с 2018 года до наших дней
12:58 Телеграм-боты против Мобильных приложений. Примеры стартапов
На сайте подкаста «Стартап-секреты» вы найдете все выпуски с возможностью фильтровать по интересующей вас теме, например, «Запуск стартапа», «B2B-проекты», «Инвестиции» или «Глобальные рынки».
Пару недель назад я захотел сделать кавер с одним определённым голосом на какую-нибудь популярную песню. tl;dr всё получилось и ниже вы узнаете, как повторить такой результат:
Быстрое гугление выдаёт несколько онлайновых сервисов, в которых либо можно выбрать из списка уже обученных моделей, либо это дорого, долго и вне моего контроля над генерацией.
платно
Если допустить немного пердолинга, то есть инструмент для локальной установки с простым веб-интерфейсом и кнопкой "Generate".
Но для полноценной работы ему требуются обученные голосовые модели в формате RVC (об этом ниже), функционала обучения в нём нет.
Ещё немного поисков выдают вариации такого колаба.
Для обучения нужно оплатить подписку Colab Pro, иначе процесс будет прибит сервером с ошибкой "недопустимая инструкция для бесплатного аккаунта".
Этого уже достаточно для создания каверов со своими голосовыми моделями. Первые каверы я делал именно так. Если хотите улучшить качество генерации или оптимизировать сам процесс, то переходите к следующему пункту.
Как это работает
Realistic Voice Cloning (реалистичное копирование голоса) или RVC работает по вполне понимаемому алгоритму.
При обучении:
дорожка с голосом, который нужно скопировать, нарезается на короткие отрезки
эти отрезки сортируются по высоте тона, тембру и эмоциям или настроению (используется нейросетевой инструмент оценки эмоциональности)
результат собирается в базу данных и индексируется
При копировании голоса:
заменяемая звуковая дорожка тоже нарезается на короткие отрезки
эти куски анализируются и подбирается наиболее подходящий аналог из базы данных (модели) обученного голоса
подобранному кусочку меняется высота тона, скорость воспроизведения и, если точного аналога не найдено, накладывается "акцент" для создания похожего звука
результат сшивается в цельную звуковую дорожку
Конечно "под капотом" всё устроено значительно сложнее, но принцип понятен.
Если умеете пользоваться гитом и командной строкой, то можете сразу перейти к пункту про обучение модели. Ниже будет подробная инструкция по установке.
Требования к железу:
компьютер с Windows или Linux
дискретная видеокарта с 8 ГБ памяти или больше (поддерживаются NVIDIA, AMD и Intel)
И распаковываем в любую папку. В моём случае C:\ffmpeg и файл ffmpeg.exe находится по адресу C:\ffmpeg\bin\ffmpeg.exe
Почти готово, нужно только добавить путь к ffmpeg в переменную path.
Нажимаем Win и начинаем вводить "изменение переменных среды":
выбираем этот пункт
В системных переменных выбираем Path и нажимаем "Изменить..."
Создаём новую переменную с путём до файла ffmpeg.exe
Опять открываем командную строку и проверяем правильность установки:
ffmpeg
Непосредственно установка
Создайте на диске папку, где будет размещаться софт для обучения модели. У меня это C:\AIcovers (обойдитесь без пробелов в именах папок, это упростит работу в будущем).
Откройте командную строку и перейдите в только что созданную папку.
cd C:\AIcovers
Клонируем этот репозиторий в папку train командой:
Осталось скачать предобученные модели для обработки звука. В основном репозитории нет скрипта для автоматического скачивания этих файлов, поэтому я набросал нечто корявое, но рабочее и отправил PR в основной репозиторий. После мержа курсивный текст будет неактуален.
Скачайте и сохраните у себя файл download_models.py в папке train/tools, куда мы клонировали репозиторий. Затем выполните команду:
И у нас автоматически должно открыться окно браузера с интерфейсом
Если видите это — поздравляю, вы всё сделали правильно. Читайте дальше, чтобы понять, как этим пользоваться.
Обучаем голосовую модель
В интерфейсе переходим на вкладку "Обучение модели":
Нужно подготовить данные для обучения модели.
Задайте название для модели голоса в соответствующем поле.
Создайте на диске папку и положите в неё один или несколько файлов с записью голоса. Это должны быть аудиофайлы почти в любом формате. Точно поддерживаются wav, mp3 и m4a.
Голос должен быть максимально очищен от шумов и фоновой музыки. Не должно быть посторонних звуков, которые человек не может издавать ртом.
Для редактирования звука можно воспользоваться бесплатным редактором Audacity.
Введите адрес к папке с аудиозаписями в это поле:
Если в пути к этой папке есть пробелы, то добавьте кавычки.
Нажмите кнопку "Обработать данные" и дождитесь сообщения "end preprocess" в поле справа от кнопки.
Следующая операция выполняется немного дольше. Сперва выберите алгоритм обработки данных (извлечения черт):
Лучшее качество дают rmvpe и rmvpe_gpu. Они по-разному нагружают видеокарту и центральный процессор. Я так и не понял, какой лучше, поэтому выбираю второй.
Нажмите кнопку "Извлечь черты" и дождитесь сообщения "all-feature-done" в поле справа от кнопки.
• 20-30 для исходника низкого качества с высоким уровнем шума, большее число не улучшит качества обучения
• ~200 для датасета высокого качества, с низким уровнем фонового шума и достаточной продолжительностью (10 минут и более)
Этот параметр влияет на использование видеопамяти:
Рекомендаций по оптимальному значению не дам, подбирайте экспериментально для каждого датасета, чтобы расход видеопамяти не вылезал за общий её объём, иначе будет использована системная ОЗУ (та самая DDR на материнской плате) и вместо ускорения обучения вы получите замедление.
использовано 3.9 ГБ более медленной системной памяти
Нажимайте кнопку "Обучить модель" и ждите окончания процесса. Как и в предыдущих этапах в правом поле будет отображаться результат. В консоли можете следить за ходом процесса.
Дожидаемся окончания обучения и нажимаем кнопку "Обучить индекс черт" и ждём ещё немного.
Заходим в папку с нажим скриптом и по пути assets\weights находим файл *имя-модели*.pth (в моём случае my-voice.pth) и копируем его в отдельную папку.
Теперь по пути logs\*имя-модели* (в моём случае logs\my-voice) находим файл с именем формата added_IVFxxx_Flat_nprobe_1_*имя-модели*_v2.index (у меня это added_IVF2050_Flat_nprobe_1_my-voice_v2.index) и копируем его в папку к файлу .pth из предыдущего пункта.
Запакуйте оба файла в архив zip с любым именем. Можно использовать встроенный инструмент Windows из контекстного меню Отправить > Сжатая zip-папка.
Поздравляю, этот архив и есть нужная голосовая модель в формате RVC.
В этом места закончился лимит на картинки. Все иллюстрации можете посмотреть в статье на телеграфе.
Замена голоса в треках
Предыдущий инструмент, который мы использовали для тренировки модели, вполне подходит для генерации новых треков, но удобство использования у него на очень низком уровне. Обещаю внести свой вклад в исправление этого недостатка. А пока установим намного более дружелюбный инструмент.
В консоли после запуска будет ссылка, по которой открывается веб-интерфейс.
Для задания другого сетевого порта добавьте параметр --listen-port *номер порта*, а для доступности интерфейса с других компьютеров в локальной сети добавьте параметр --listen.
Для доступности из интернета можно добавить параметр --share.
Использование
Откроем интерфейс и перейдём на вкладку "Upload model", чтобы добавить обученную на предыдущем этапе модель голоса.
Выберите файл для загрузки, задайте имя модели в поле "Model name" и нажмите кнопку "Upload model".
Если всё правильно, то в поле "Output message" вы увидите сообщение "model successfully uploaded!".
Теперь переходите на вкладку "Generate" и нажимайте кнопку "Refresh models". В списке "Voice models" появится загруженная вами модель. Выберите её.
В поле "Song input" можно либо вставить ссылку на ролик на YouTube, либо загрузить файл, выбрать вариант "Upload file instead". Рекомендую начать эксперименты с песни Джонни Кэша, у неё хорошо отделяется вокал и достаточно разборчивый голос для замены.
Нажимайте кнопку "Generate" и ждите результата. Подбирайте параметры, пока не получится что-то хорошее. Делитесь получившимися шедеврами.
Если будут вопросы, то можете задать их мне в телеграме.
Подписывайтесь на канал, ставьте лайки, жмите на колокольчик и всё такое. Всех люблю и обнимаю.
Три года я изучал книги по Питону и искал среди них ту, которая лучше всего подойдет начинающему разработчику. В итоге из34-хкниг осталось только 8, которые не стыдно порекомендовать.
Итак, список книг по Питону с кратким описанием для тех кто не хочет смотреть видео:
1. Начинаем программировать на Python, 5-издание (Тони Гэддис)
1/5
Одна из лучших книг по Python с хорошими объяснениями, понятными схемами и интересными заданиями.
В книге рассматривается не только Python, но и программирование в целом, включая вводную информацию об устройстве компьютера для программиста.
Последние две главы посвящены созданию программ с графическим интерфейсом на Tkinter и работе с базами данных и SQL.
Все примеры и исходные коды, которые поставляются с книгой, хорошо документированы и переведены на русский язык, включая данные внутри баз данных.
Из минусов: в книге плохой переплет (у некоторых читателей начали выпадать страницы).
2. Изучаем программирование с примерами на Python (Эрик Фримен)
1/7
Нестандартная и веселая книга по программированию. Как и в предыдущей, тут хорошие примеры и объяснения, а также много схем, которые в подробностях раскрывают сложные концепции программирования.
В процессе чтения вам будет предложено написать несколько небольших проектов, включая программу для отслеживания координат МКС и игру "Жизнь".
3. Знакомство с Python (Дэн Бейдер)
Лаконичное руководство по Python от автора книги "Чистый Python" и проекта RealPython. Хорошее и плавное погружение в Питон с разбором полезных библиотек: включая обработку CSV файлов, установку пакетов с помощью pip, работу с PDF, знакомство с базами данных, парсинг сайтов, научные вычисления в NumPy и создание приложений с графическим интерфейсом.
Книга не сильно глубокая, но как старт в программирование на Python вполне хороша.
4. Python – это просто (Нилаб Нисчал)
1/5
Книга для тех, кто хочет вкатиться в аналитику на Python. Все примеры приводятся на базе Jupyter Notebook. Сам Python освещается не сильно глубоко, но зато в книге много про Pandas, Numpy, Matplotlib и другие средства аналитики.
Книга написана практикующим аналитиком и маркетологом.
5. Изучаем Python (Эрик Мэтиз)
Еще одна книга для начинающих программистов. Первая часть посвящена питону, включая ООП, исключения и тестирование, а вторая содержит три проекта:
Создание игры.
Визуализация данных на базе matplotlib.
Разработка сайта на Django.
С одной стороны, в книге хорошие примеры и понятное объяснение, а с другой, достаточно много опечаток и есть проблемы с переводом. Также несколько устаревшая информация по Django, однако процесс разработки игры лично мне доставил удовольствие:
Скрин игры "Инопланетное вторжение"
6. Python без проблем (Даниэль Зингаро)
Книга с забавными и нестандартными заданиями на развитие алгоритмического мышления. Сам Python в ней не сильно глубокий, но подход к обучению заслуживает внимания.
Будет полезна ученикам старших классов и студентам, которым важно научиться думать как программист, а не только овладеть синтаксисом или выучить приёмчики программирования.
7. Автоматизация рутинных задач с помощью Python (Эл Свейгарт)
1/2
Книга для тех, кто хочет с помощью Python решать повседневные прикладные задачи. Питон тут раскрывается не сильно глубоко, но если вам нужно автоматизировать обработку CSV-файлов и изображений, вытащить данные из Excel файлов, отправить информацию в Google таблицы, сделать email-рассылку и тд. то книга поможет.
Подойдет читателям с техническим складом ума, которые хотят добавить в свою работу немного полезного программирования.
8. Программирование на Python в примерах и задачах (Васильев А. Н.)
Одна из самых сложных книг в данном списке. В ней достаточно глубокое погружение в Python и много полезных примеров кода, включая работу с ООП. Но само повествование довольно академическое и потребует от читателя хорошей сноровки и подготовки.
Подойдет студентам технических ВУЗов, которые хотят быстро включиться в Python.
9. Другие книги
В этот список попали только хорошие книги для начинающих. Также мне попадались хорошие книги для продолжающих, книги для тех кто уже умеет программировать на других языках, ну и разумеется откровенная халтура. Полный список рассмотренных книг есть по ссылке.
В наших самых ранних работах мы опубликовали статью на тему “LATTICE ATTACK” как полноценное решение HNP [Hidden Number Problem], но с недавним появлением новой атаки “POLYNONCE ATTACK”, мы решили дополнить статью с использованием 79 signatures ECDSA.
Исходя из прошлой статьи, где за полиному мы брали 128 bits и с фактическим увеличение количество подписей мы приблизим значение полиномы до 249 bits.
Все что нам нужно это решить проблему скрытых чисел.
В этой статье мы разберем пять независимых примеров криптоанализа блокчейна Биткоин. Все примеры будут загружены в репозитории GitHub.
"ATTACKSAFE SOFTWARE" включает в себя все популярные атаки на Биткоин.
Запустим список всех атак:
!./attacksafe -list
Выберем -tool: lattice_attack
Чтобы получить определенные HEX значение R,S,Z к подписи ECDSA, мы ранее добавили данные RawTX через утилиту echo в текстовый документ и сохранили как файл RawTX.txt
Запустим -tool lattice_attack используя программное обеспечение “ATTACKSAFE SOFTWARE”
Мы получили 79 одинаковых первоначальных bits от 249
Благодаря значение на кривой secp256k1 от Hal FinneyLAMBDA и BETA раскрыл нам одинаковые первоначальные биты. Значение POLYNONCE в формате HEX нам позволяет полноценно решить проблему скрытых чисел получить приватный ключ и восстановить Биткоин Кошелек.
Сегодня возобновил стримы, последний цикл(всего один) по словарям в Python, он завершающий в цикле «стримы по спискам в Python». Вот он — и если что-то непонятно и хочется более подробного разбора, то пишите: