Как превратить час видео с Youtube в полноценную статью за 0.30$
Зачем платить, если результат можно получить бесплатно?
Например, я в своей статье: «Роль данных при изучении иностранного языка» ( https://habr.com/ru/articles/930868/ ), беру два англо-французских ролика на два с половиной часа и полтора часа, распознаю французскую и английскую речь и делаю две пары видео с французско-русскими и англо-русскими субтитрами. Плюс данные для своей обучающей программы, поддерживающей интерактивный звук…
Упражнений нужно много. Некоторые слова очень тяжело запоминаются, необходимо повторять упражнение до тех пор пока слово не перейдет в режим "помню"
Несмотря на то, что со словами я тоже работаю, все же пришел к мнению, что лучше начинать работать с простыми предложениями. Набирать их руками, слушать произношение и громко повторять (хотя бы иногда). Фразы могут быть представлены однородными порциями, при этом реализуя определенный грамматический нюанс (время, род, число и т.п.). Основной метод здесь: «Запоминание руками + интерактивный звук + чтение по слогам». Пробую на себе, набирая каждый вечер по сто с лишним французских фраз. Пока, это лучший способ изучения языка, для меня. Набирать текст не скучно, а читать учебники, как правило, лень.
Сначала нужно выполнять простые упражнения, а затем переходить к сложным. Без какой-либо перемешки.
С этим согласен.
Перед началом упражнений нужно их повторять как в anki до тех пор пока не появится ощущение, что "слово знакомо". Это разумеется не тренировка, а подготовка к ней
По факту, моя программа написана взамен «Anki». Все, что там нужно для меня, там есть (шесть режимов работы, включая видео-режим). Если что-то потребуется дополнительно, то ничто не мешает реализовать это в других версиях.
После всех упражнений нужна проверка какие слова запомнились, а какие нет. В большинстве случаев, слова запоминаются, но бывают очень сложные, которые нужно изучить еще раз, прежде чем отправить на повторение.
Для этого у меня есть два режима «Экзамен» (оригинал –> перевод и наоборот).
В некоторых же случаях слова настолько простые, что не требуется проходить их все, нужно выбирать какие упражнения для этой тренировки подойдут
Если нет смысла либо желания делать набор фраз руками, то их можно пропустить, а можно вообще включить видео-режим, смотреть, слушать и ничего больше не делать.
Даже если мы добавили 50 слов в тренировку, изучать их все за раз - плохая идея. Нужно выбирать какое количество слов изучить сейчас. Это очень полезная возможность, которая позволит тренироваться несколько раз в день
Зато, набирать руками, самое то! Важно не только знать произношение слова, но и его написание. А то вы, зная язык устно, можете быть не в состоянии грамотно писать письменно и будете годами получать лещей, как Макрон, от своей жены – его бывшей учительницы французского языка, которая, совсем недавно влепила ему, полупублично, фингал, за плохое владение французской письменной речью…
По моему мнению первые на выход идут переводчики. Если конечно они с очень каким то редким языком не работают.
Ну, вот, допустим, мне нужны простые иностранные фразы, на общую тему, разбитые на блоки, с уклоном на грамматику, типа, порция однородных предложений в настоящем времени, тоже, в прошедшем, будущем и т.д. и т.п. Все это надо для целей изучения языка.
Хорошо, нейросеть выдала результат. Однако, как показывает опыт, нужно хорошо владеть темой, чтобы добиться от ИИ приемлемого качества. Но, если я язык не знаю либо знаю плохо, то, как проверить это качество? Может быть, LLM, вольно или невольно, сморозит такую чушь, что когда я скажу ее иностранцам, те покрутят пальцем у виска.
Другими словами, всегда нужен профессионал, чтобы контролировать результат, давать новые установки и формулировать свежие идеи для любого «эмулятора сознания». Тоже касается и литературного перевода. Поэтому, уверен, переводчики исчезнут не скоро, скорее их будет меньше, и они будут способны пользоваться современными интеллектуальными инструментами. И так, по любой специальности. Даже с роботизированными колл-центрами общаться так себе удовольствие, Ибо, как мне кажется, торопимся мы слегка с обобщающими выводами…
Жесть, столько лишней работы, когда можно было просто в VLLM кадры засунуть (даже Gemini Flash с французским справится вообще без проблем)
Ну, я ж написал, что «в данном случае, проще всего использовать «FineRider» (если его правильно настроить, то он очень хорошо распознает ключевые кадры видео)». Думаю, что это даже проще вашего «Gemini».
А творческие эксперименты дают гораздо больше удовольствия, чем готовые ответы от нейросетей…
Я тоже проверил, «4K Video Downloader» субтитры качает, но видео не хочет. В меню "О программе", выдает, что поддержка программы заканчивается 1 февраля 2025 года. А я с тех пор ничего не качал. Так что, да, нужно искать альтернативу...
«4K Video Downloader» под впном не работает. Потому что в нём нужно логиниться в ютуб.
Не нужно никуда «логиниться» (если, только, не требуется приватное видео). Я, на новых Российских территориях, вообще не могу войти в свой аккаунт на Ютубе, ни под вэпээном, ни без него. Просто, украинский префикс моего телефона изменился на русский, а для Ютуба это как «красная тряпка» для быка. А, вот, под вэпээном, «4K Video Downloader» качает без проблем, в том числе, субтитры всякие разные, хотя толку от них не много, все равно, глюкавые ибо основаны на кривом ютубовском распознавании речи.
Ну, если мы пользуемся вэпээнами, то, почему нельзя репаками? По крайней мере, меня, для поиска обучающих видео, Ютуб и «4K Video Downloader» – вполне устраивают.
Будет круто посмотреть на такой форк.
Идея ваша мне понравилась. Поэтому, как закончу свой текущий проект (подготовка статьи, здесь на Хабре: «Как из одного французско-английского обучающего видео сделать два: французско-русское и англо-русское, а также данные к моей обучающей программе: https://habr.com/ru/articles/848836/ ?»), то, вполне можно будет заняться форком вашего проекта. Если что-то получится, то дам знать, в виде комментария, здесь.
Обучение LLM, если примитивно, выглядит так: набросали как бог на душу положит миллиарды нейронов и связи между ними, даем сети на вход запрос, смотрим на ответ.
Не расточительно ли?
Я, вот, невольно, построил «LLM» вручную. Задача была такая: «Есть множество видео, со встроенными французско-английскими субтитрами. Нужно распознать их текст, для целей создания французско-русских и англо-русских аналогичных видео и данных для собственной обучающей программы.».
Существует несколько вариантов решения, например, с помощью сервисов распознавания речи, либо скармливанию «ФайнРидеру» кадров изображений этих видео. Оба эти метода хорошо работают и меня вполне устраивают.
Но, я решил пойти по пути собственного распознавания текста изображений, с помощью своего скрипта на Питоне. Ну, хотя бы, ради творческого любопытства.
Так вот, оказалось, что если расщепить текст на символы (чего я смог добиться с помощью своего алгоритма «сглаживания символов» и использования разделительных отрезков на базовой линии шрифта строки текста), то распознавать эти символы можно уже с помощью всего четырех параметров. Для этого надо построить «функцию выбора», ставящую в соответствие эти четыре метрики – самому символу.
Поначалу я строил условия выбора для ключевой функции вручную. Чтобы распознать французский текст из видео, на два с половиной часа, мне потребовалось всего около пятисот таких условий. Результат получил, ошибок было менее двадцати.
Потом, понял, что эти условия можно строить «вножную», то бишь, полуавтоматически, используя результат, полученный из другого источника, например, бесплатного распознавания речи на 15 минут.
Я это все рассказываю, чтобы показать, что допотопные методы, в наш компьютерный век, тоже работают. Не, ну, правда, зачем мне LLM, со всеми ее триллиардными запросами, когда нужную задачу вполне можно решить старым дедовским способом?
Естественно, в данном случае, проще всего использовать «FineRider» (если его правильно настроить, то он очень хорошо распознает ключевые кадры видео) либо лучшие ИИ-сервисы по распознаванию речи, лимиты которых можно обходить с помощью вэпээн.
Т.е., я хочу сказать, что бездумное использование современных дорогостоящих методов может быть не рационально, если они могут быть заменены более дешевыми альтернативами…
Как я написал современный GUI для yt-dlp на Python
Круто! Только, без вэпээна, похоже, не работает. Тогда, чем это лучше «4K Video Downloader»?
Насчет интерфейса. Поскольку я сторонник C++ / WTL, то писал бы интерфейс на нем. А обработчики Питона там вполне можно реализовать. Может быть, если появится время, попробую сделать «приплюснутый» форк вашего пет-проекта… :)
«У меня нет способности к изучению языков» или не ставь себе диагноз раньше времени Неправильно выбранный преподаватель.
А вот эти два момента – вполне связаны. Одна из причин отказа от изучения языка это боязнь показаться тупым перед преподавателем либо репетитором. Да и напрягаться нужно постоянно, а оно того стоит? Поэтому, для комплексующих, лучше изучать язык самостоятельно. Однако здесь встает резонный вопрос – как?
Кто-то пробует «Дуалинго», кто-то читает со словарем, а кто-то смотрит фильмы с субтитрами.
Как понял лично я, сейчас на первое место становятся не столько методы изучения языка, сколько данные. Нужны именно хорошие данные. Причем, это должны быть комплексные материалы: озвучка + текст + перевод. По принципу: от простого к сложному. А не так, как принято – грамматика отдельно, оригинальный текст отдельно, перевод отдельно, аудио отдельно (возьмите, скажем, современные самоучители с компакт-дисками).
Чтобы как-то все это объединить, я написал обучающую программу «L'école» ( https://habr.com/ru/articles/848836/ ), реализующей метод: «запоминание руками + интерактивный звук».
Теперь, вот, встал, во весь рост, вопрос о данных.
Как вариант получения таких данных, я взял видео ролик с французско-английскими фразами, на два с лишним часа, разделил звук на интервалы, распознал и перевел встроенный текст и создал два новых видео: с французско-русскими и англо-русскими субтитрами. С английскими частями я еще работаю, а предварительные материалы с французскими вариантами можно посмотреть здесь:
В данном случае, пересоздание видео с русскими субтитрами, это, как бы побочная задача. Главная – это создание компьютерных уроков для, упомянутой выше, обучающей программы. А, поскольку, программа поддерживает видео режим, то, почему бы не сделать видео захват и не опубликовать в виде отдельных роликов?
P.S. Работая с подобными видео, чувствую, что информация запоминается очень неплохо, тем более, что можно подавать материал в любом порядке и составе. Хотя, вопрос о подготовке полной системы данных (обучающего курса) остается открытым…
Научить – невозможно, но, научиться самому – можно.
Минимум 3 часа в день в течении года.
Как говорил Сева Новгородцев, ведущий радио BBC, музыкальные передачи которого, в свое время, любила слушать советская молодежь (за неимением других альтернатив): «Чтобы выучить нормально английский язык, по любой методе, нужно потрать на изучение не менее 5000 часов!». И с ним трудно не согласиться. Вопрос, в принципе, только в одном, как потратить эти часы с максимальной пользой и удовольствием?
Три часа в день – скучно, если учить язык пассивно. Но, если, активно, то вполне реально. Например, взять видео ролик с французско-английскими фразами, на два-три часа, разделить звук на интервалы, распознать и перевести фразы и создать два новых видео: с французско-русскими и англо-русскими субтитрами. Вот, сегодня, я сгенерировал французские части для двух таких видео:
Теперь готовлю английские части для этих же самых роликов.
Правда, там много неточностей и, по-хорошему, все это надо переделать.
В данном случае, пересоздание видео с русскими субтитрами, это, как бы побочная задача. Главная – это создание данных для моей обучающей программы «L'école» ( https://habr.com/ru/articles/848836/ ), поскольку, лучший метод, лично для меня, это: «запоминание руками + интерактивный звук». А, поскольку, программа поддерживает видео-режим, то, почему бы не сделать видео захват и не опубликовать в виде отдельных роликов?
Да, не «страшно», а просто скучно. Изучение языка – это рутина, а мозг не любит рутину.
Чтобы бороться с рутиной, нужна либо особая мотивация, то бишь, энергия либо перевод процесса обучения в более увлекательное русло. Только, не по пути игромании, что интересно не всем, а, скорее, по пути созидания и творчества.
Так, я захотел, уже в зрелом возрасте, выучить французский язык, чтобы понимать живую речь носителей.
Взял учебник, учил, усваивал, но быстро надоело. Потом, подумал, это потому, что нет творческой составляющей. Ладно, решил написать собственную обучающую программу ( https://habr.com/ru/articles/848836/ ). Потом, начал учить язык по своей программе. Уткнулся в недостаток данных. Хорошо, занялся подготовкой данных. Уже подготовил достаточно материалов для усвоения. Поработал с ними и, опять, то ли надоело, то ли устал.
Чтобы не терять времени, выбрал для себя следующую задачу: «Имеется видеоканал обучающих видео (на многие часы) с французско-английскими субтитрами. Требуется распознать субтитры, разделить соответствующий им звук на фрагменты, перевести все титры на русский язык и создать, как видео, с французско-русскими и англо-русскими, двуязычными субтитрами, так и данные, на их основе, для моей обучающей программы.». Здесь я продвинулся неплохо и даже распознал, таким образом, первое видео, с относительно небольшим количеством ошибок. Но, сейчас, работаю над вариантами оптимизации данного процесса.
Другими словами, я, как бы, ищу любой повод, чтобы быть «в процессе», но, реально, заниматься, не столько языком, сколько созданием обучающей системы. Ибо программирование «вставляет» больше, чем, собственно, освоение языка, как такового.
Короче, жду, когда Муза французского языка вновь посетит меня, и я продолжу осваивать свои обучающие уроки. Поскольку, этот путь мне очень нравится, если бы, только, французская Муза реже покидала меня… :)
главный вопрос о сознании — это не «что?», а «кто?»
Главный вопрос о сознании – это «надсознание».
Кстати, а как быть с подсознанием? Подсознание это «второе сознание» человека, но с гораздо меньшей осознанностью, и предназначено для поддержки жизнедеятельности и реализации намерений основного сознания, посредством своего физического тела. Другими словами, это «внутренний автопилот сознания», которым сознание не столько управляет, сколько использует.
Однако, наше сознание ограничено не только нашим физическим телом, которое управляется автопилотом сознания – подсознанием. Кроме внутреннего, материального тела, мы имеем его энергетическое продолжение – внешнее, сверхматериальное или тонко-энергетическое «тело». В ближнем радиусе, это аура. Но существует и более слабое «биологическое» поле, которое может простираться на огромные расстояние (как радиоволны).
Для управления внешним, тонкоэнергетическим телом человека, используется надсознание или «третье сознание» человека. Надсознание это тоже автопилот сознания, только не для внутреннего тела, а для внешнего. Надсознание, как и подсознание работают всегда в фоновом режиме, обеспечивая нормальную работу, собственно, сознания, в его интересах. И, обычно, малозаметны, т.е., почти не существуют, особенно это применимо к надсознанию.
Посредством этих высокочастотных биологических излучений мы имеем духовную и ментальную связь с нашими родными и близкими, даже на больших расстояниях. Если у любимого человека возникают проблемы, то мы можем это чувствовать. Теоретически, даже помочь ему, находясь вдали. Только для этого нужны особые практики, вроде («белой») «магии любви», неизвестные простым смертным
Непосредственно, обычный человек не может управлять ни своим подсознанием, ни своим надсознанием. Однако, специалисты по эзотерическим практикам могут это делать. Для управления подсознанием они используют медитацию, самогипноз и йогу. А для управления своим надсознанием, в народе известна только (черная) магия вуду, Кастанеды и Странника. И ее развитие – в движении «хакеров сновидений», которое было распространено в «лихие 90-тые». Связано это было с безнадёгой тех времен, народ искал способы выживания, в том числе, в эзотерике. Однако, следует сказать, что это практика предназначена не для всех. По этому пути пошли многие люди, большинство из которых кончили очень плохо.
Еще раз. Надсознание не только обеспечивает, во время сна, организм человека энергией извне, но и участвует в своих «тёрках» с внешним миром. Другими словами, человек, как бы, живет две жизни. Одна – обычная, осознанная. А вторая – сверхестественная, которую ведет его надсознание. При этом мы можем лишь изредка видеть осколки этой жизни во сне, не понимая, толком, что к чему.
Однако, это еще не всё. Мы также наслышаны про понятия: «Дух» и «Душа». Какова их связь с тремя сознаниями человека? Я, вот, предлагаю, следующую:
Дух – это энергетика Души. Душа – это контейнер трех сознаний: «Я-сознание», «Я-подсознание» и «Я-надсознание».
В этом смысле, ИИ и нейросети – это грубая эмуляция сознания (по крайней мере, пока), типа, как трактор, который эмулирует физическую силу человека, только, в части, вскапывателя своего огорода…
Дело в том, что мой подход, основанный на использовании ключевых метрик шрифта – вполне хорош, но требует ручного «обучения» функции выбора, в моем скритпе распознавания встроенных субтитров видео.
Ваша идея предполагает воспользоваться ttf-шрифтами из операционной системы. Проблема была в том, что нужно было выяснить какой шрифт используется в интересующих видео и скачать его. Для распознавания шрифта есть сервис https://www.myfonts.com/pages/whatthefont . Он выдал, по изображению шрифта его название 'Cooper Black Regular.ttf'.
Короче, фонт определен, найден и загружен. Проверил соответствие в Ворде – один в один, если использовать размер шрифта – 45 и режим – bold.
Далее, чтобы сгенерировать эталонные символы – использовал ваш скрипт, немного переделав его. Потом, собираюсь сравнивать матрицы символов из видео с полученными образцами.
Здесь ваш код (модифицированный)
#====================================================================================================
# exec(open('DatasetGenerator.py', encoding='utf-8').read())
# DatasetGenerator.py - Генератор бинарных матриц символов для заданного шрифта
#====================================================================================================
#====================================================================================================
# Используемые библиотеки Питона
#====================================================================================================
from PIL import Image, ImageDraw, ImageFont, ImageFilter
import os
import csv
from glob import glob
import numpy as np
#====================================================================================================
# Глобальные константы
#====================================================================================================
_OutFolder = 'Data'
_FontName = 'Cooper Black Regular.ttf' # 'Cooper Black Italic.otf' # Наименование шрифта (может быть 'Cooper Black Regular_0.ttf')
_FontSize = 72 # 45 # Размер шрифта
_ImageSize = (88, 88) # Размер выходного изображения
_BGColor = 'white' # (255, 255, 255) # Белый фон
_TextColor = 'black' # (0, 0, 0) # Черный цвет текста
# Список символов шрифта
_FontChars = list("ABCDEFGHIJKLMNOPQRSTUVWXYZÉÀÈÙÂÊÎÔÛÄËÏÖÜŸÇÆŒabcdefghijklmnopqrstuvwxyzéàèùâêîôûäëïöüÿçæœ.,:;!?'«»()"+'"')
#====================================================================================================
# CreateCharImage() - Создает эталонное изображение символа
#====================================================================================================
def CreateCharImage(BaseFont, Char, slant=1.0):
# Создаем основное изображение
image = Image.new('RGB', _ImageSize, _BGColor)
draw = ImageDraw.Draw(image)
# Рисуем текст с наклоном
x = 0 # (image.width - text_width) / 2
y = 0 # (image.height - text_height) / 2
draw.text((x,y), Char, font=BaseFont, fill=_TextColor) #, stroke_width=2, stroke_fill='red')
return image
# CreateCharImage()
#====================================================================================================
# Processing() - Обработка данных
#====================================================================================================
def Processing() :
# Загружаем шрифт
try:
BaseFont = ImageFont.truetype(_FontName, _FontSize)
except OSError as e:
print(f'Ошибка загрузки шрифта: {_FontName}')
print(e)
return
# try
# Если каталог для данных не существует, то пытаемся создать его
if(not Path(_OutFolder).exists()) :
# Пытаемся создать каталог для данных
os.makedirs(_OutFolder, exist_ok=True)
# Проверяем, созадан ли каталог?
if(not Path(_OutFolder).exists()) :
print(f'Каталог: "{_OutFolder}" не созадан!')
return
# if(not Path(_OutFolder).exists())
# if(not Path(_OutFolder).exists())
#for Char in _FontChars :
for i in range(len(_FontChars)) :
Char = _FontChars[i]
#print(i, ord(Char))
# Создаем эталонное изображение символа
Img = CreateCharImage(BaseFont, Char)
# Умная бинаризация с сохранением особенностей букв, с добавление случайных вариаций
#Img = SmartBinarize(Img)
# Сохраняем изображение
FileName = f'{_OutFolder}\\Char_{i:03d}.png'
print(FileName)
#file_path = os.path.join(_OutFolder, FileName)
Img.save(FileName)
# for i in ramge(len(_FontChars))
# for Char in _FontChars
# Завершение работы
return
# Processing()
#====================================================================================================
# Main() - Главная функция
#====================================================================================================
def Main() :
# Обработка данных
Processing()
# Завершение работы
return
# Main()
if __name__ == '__main__' : Main()
#====================================================================================================
#====================================================================================================
Купите себе какую нибудь 3080 карту и сами транскрибируйте сколько влезет. Одной строчкой: whisper audio_file.wav --model medium --output_format srt
Какое качество распознавания вы гарантируете? Даже лучшие ИИ-сервисы в Интернете не дают соответствия более 99%. Вот, только что проверил, на сто фраз, минимум, три -пять ошибок. Не говоря уже о том, что восклицательные знаки и кавычки рапознавалки речи понимают плохо.
И потом, я же упомянул оффлайн модели Vosk. Поэтому, подобную технологию уже реализовывал. Это и извлечение звука из видео, преобразование его в wav-файл, и выбор модели языка и меру ее «тяжести», и получение нужных данных, в требуемом виде. Т.е., одной командой здесь не обойдешься, нужно использовать полноценные Питон-скритпы, хотя это и не проблема.
При этом, никаких дорогостоящих прибамбасов не нужно и платить лишние деньги нет нужды. Ибо, в любом случае, любой результат нужно проверять. Для этого у меня есть собственная, неопубликованная, программа «МедиаТекст» (см. скриншот: http://scholium.webservis.ru/Pics/MediaText.png ), причем, имеются и другие варианты. Поэтому, какая особо, разница, если все равно делать проверку встроенных субтитров (что меня интересует в первую очередь) – их распознанному тексту, сколько там будет ошибок? Одна на сотню или десять-двадцать. Ибо исправить это не трудно и не слишком напряжно.
Тем более, что мой скрипт, на Питоне, по распознаванию субтитров, уже работает неплохо. В 1300-х французских фразах (их английский перевод я, пока, игнорировал), было обнаружено не более двадцати ошибок, что легко корректируется правкой условий по метрикам используемого шрифта, в моей функции выбора, соответственно, в следующий раз эти ошибки уже не появятся.
Ну, и какая мне польза от вашего совета?
P.S. Если языка не знаешь, то распознавание речи, для целей обучения, там под вопросом. А вот, распознавать текст встроенных субтитров – больше смысла. И точнее и дешевле и полезнее для изучения иностранного языка…
P.S. Да, я принял желаемое за действительное. Сервис занимается распознаванием речи. Проверить качество, пока, трудно, поскольку обработка файлов идет слишком долго. Зато, теоретически, принимает 4 гигабайта. Хорошие распознавалки речи, бесплатно, дают только десять минут.
Зачем платить, если результат можно получить бесплатно?
Например, я в своей статье: «Роль данных при изучении иностранного языка» ( https://habr.com/ru/articles/930868/ ), беру два англо-французских ролика на два с половиной часа и полтора часа, распознаю французскую и английскую речь и делаю две пары видео с французско-русскими и англо-русскими субтитрами. Плюс данные для своей обучающей программы, поддерживающей интерактивный звук…
Я тоже написал обучающую программу для запоминания иностранных слов и фраз ( https://habr.com/ru/articles/930868/ и https://habr.com/ru/articles/848836/ ). Только это десктопное приложение, которое можно скачать непосредственно.
Интересно, сравним с моими представлениями.
Несмотря на то, что со словами я тоже работаю, все же пришел к мнению, что лучше начинать работать с простыми предложениями. Набирать их руками, слушать произношение и громко повторять (хотя бы иногда). Фразы могут быть представлены однородными порциями, при этом реализуя определенный грамматический нюанс (время, род, число и т.п.). Основной метод здесь: «Запоминание руками + интерактивный звук + чтение по слогам». Пробую на себе, набирая каждый вечер по сто с лишним французских фраз. Пока, это лучший способ изучения языка, для меня. Набирать текст не скучно, а читать учебники, как правило, лень.
С этим согласен.
По факту, моя программа написана взамен «Anki». Все, что там нужно для меня, там есть (шесть режимов работы, включая видео-режим). Если что-то потребуется дополнительно, то ничто не мешает реализовать это в других версиях.
Для этого у меня есть два режима «Экзамен» (оригинал –> перевод и наоборот).
Если нет смысла либо желания делать набор фраз руками, то их можно пропустить, а можно вообще включить видео-режим, смотреть, слушать и ничего больше не делать.
Зато, набирать руками, самое то! Важно не только знать произношение слова, но и его написание. А то вы, зная язык устно, можете быть не в состоянии грамотно писать письменно и будете годами получать лещей, как Макрон, от своей жены – его бывшей учительницы французского языка, которая, совсем недавно влепила ему, полупублично, фингал, за плохое владение французской письменной речью…
Ну, вот, допустим, мне нужны простые иностранные фразы, на общую тему, разбитые на блоки, с уклоном на грамматику, типа, порция однородных предложений в настоящем времени, тоже, в прошедшем, будущем и т.д. и т.п. Все это надо для целей изучения языка.
Хорошо, нейросеть выдала результат. Однако, как показывает опыт, нужно хорошо владеть темой, чтобы добиться от ИИ приемлемого качества. Но, если я язык не знаю либо знаю плохо, то, как проверить это качество? Может быть, LLM, вольно или невольно, сморозит такую чушь, что когда я скажу ее иностранцам, те покрутят пальцем у виска.
Другими словами, всегда нужен профессионал, чтобы контролировать результат, давать новые установки и формулировать свежие идеи для любого «эмулятора сознания». Тоже касается и литературного перевода. Поэтому, уверен, переводчики исчезнут не скоро, скорее их будет меньше, и они будут способны пользоваться современными интеллектуальными инструментами. И так, по любой специальности. Даже с роботизированными колл-центрами общаться так себе удовольствие, Ибо, как мне кажется, торопимся мы слегка с обобщающими выводами…
Ну, я ж написал, что «в данном случае, проще всего использовать «FineRider» (если его правильно настроить, то он очень хорошо распознает ключевые кадры видео)». Думаю, что это даже проще вашего «Gemini».
А творческие эксперименты дают гораздо больше удовольствия, чем готовые ответы от нейросетей…
Я тоже проверил, «4K Video Downloader» субтитры качает, но видео не хочет. В меню "О программе", выдает, что поддержка программы заканчивается 1 февраля 2025 года. А я с тех пор ничего не качал. Так что, да, нужно искать альтернативу...
Не нужно никуда «логиниться» (если, только, не требуется приватное видео). Я, на новых Российских территориях, вообще не могу войти в свой аккаунт на Ютубе, ни под вэпээном, ни без него. Просто, украинский префикс моего телефона изменился на русский, а для Ютуба это как «красная тряпка» для быка. А, вот, под вэпээном, «4K Video Downloader» качает без проблем, в том числе, субтитры всякие разные, хотя толку от них не много, все равно, глюкавые ибо основаны на кривом ютубовском распознавании речи.
Ну, если мы пользуемся вэпээнами, то, почему нельзя репаками? По крайней мере, меня, для поиска обучающих видео, Ютуб и «4K Video Downloader» – вполне устраивают.
Идея ваша мне понравилась. Поэтому, как закончу свой текущий проект (подготовка статьи, здесь на Хабре: «Как из одного французско-английского обучающего видео сделать два: французско-русское и англо-русское, а также данные к моей обучающей программе: https://habr.com/ru/articles/848836/ ?»), то, вполне можно будет заняться форком вашего проекта. Если что-то получится, то дам знать, в виде комментария, здесь.
Не расточительно ли?
Я, вот, невольно, построил «LLM» вручную. Задача была такая: «Есть множество видео, со встроенными французско-английскими субтитрами. Нужно распознать их текст, для целей создания французско-русских и англо-русских аналогичных видео и данных для собственной обучающей программы.».
Существует несколько вариантов решения, например, с помощью сервисов распознавания речи, либо скармливанию «ФайнРидеру» кадров изображений этих видео. Оба эти метода хорошо работают и меня вполне устраивают.
Но, я решил пойти по пути собственного распознавания текста изображений, с помощью своего скрипта на Питоне. Ну, хотя бы, ради творческого любопытства.
Так вот, оказалось, что если расщепить текст на символы (чего я смог добиться с помощью своего алгоритма «сглаживания символов» и использования разделительных отрезков на базовой линии шрифта строки текста), то распознавать эти символы можно уже с помощью всего четырех параметров. Для этого надо построить «функцию выбора», ставящую в соответствие эти четыре метрики – самому символу.
Поначалу я строил условия выбора для ключевой функции вручную. Чтобы распознать французский текст из видео, на два с половиной часа, мне потребовалось всего около пятисот таких условий. Результат получил, ошибок было менее двадцати.
Потом, понял, что эти условия можно строить «вножную», то бишь, полуавтоматически, используя результат, полученный из другого источника, например, бесплатного распознавания речи на 15 минут.
Я это все рассказываю, чтобы показать, что допотопные методы, в наш компьютерный век, тоже работают. Не, ну, правда, зачем мне LLM, со всеми ее триллиардными запросами, когда нужную задачу вполне можно решить старым дедовским способом?
Естественно, в данном случае, проще всего использовать «FineRider» (если его правильно настроить, то он очень хорошо распознает ключевые кадры видео) либо лучшие ИИ-сервисы по распознаванию речи, лимиты которых можно обходить с помощью вэпээн.
Т.е., я хочу сказать, что бездумное использование современных дорогостоящих методов может быть не рационально, если они могут быть заменены более дешевыми альтернативами…
Круто! Только, без вэпээна, похоже, не работает. Тогда, чем это лучше «4K Video Downloader»?
Насчет интерфейса. Поскольку я сторонник C++ / WTL, то писал бы интерфейс на нем. А обработчики Питона там вполне можно реализовать. Может быть, если появится время, попробую сделать «приплюснутый» форк вашего пет-проекта… :)
А вот эти два момента – вполне связаны. Одна из причин отказа от изучения языка это боязнь показаться тупым перед преподавателем либо репетитором. Да и напрягаться нужно постоянно, а оно того стоит? Поэтому, для комплексующих, лучше изучать язык самостоятельно. Однако здесь встает резонный вопрос – как?
Кто-то пробует «Дуалинго», кто-то читает со словарем, а кто-то смотрит фильмы с субтитрами.
Как понял лично я, сейчас на первое место становятся не столько методы изучения языка, сколько данные. Нужны именно хорошие данные. Причем, это должны быть комплексные материалы: озвучка + текст + перевод. По принципу: от простого к сложному. А не так, как принято – грамматика отдельно, оригинальный текст отдельно, перевод отдельно, аудио отдельно (возьмите, скажем, современные самоучители с компакт-дисками).
Чтобы как-то все это объединить, я написал обучающую программу «L'école» ( https://habr.com/ru/articles/848836/ ), реализующей метод: «запоминание руками + интерактивный звук».
Теперь, вот, встал, во весь рост, вопрос о данных.
Как вариант получения таких данных, я взял видео ролик с французско-английскими фразами, на два с лишним часа, разделил звук на интервалы, распознал и перевел встроенный текст и создал два новых видео: с французско-русскими и англо-русскими субтитрами. С английскими частями я еще работаю, а предварительные материалы с французскими вариантами можно посмотреть здесь:
FrWords&Phrases0796.mp4 : https://disk.yandex.ru/i/6vCN210w8LErjw
FrWords&Phrases1081.mp4 : https://disk.yandex.ru/i/gFYR65zhTEflhQ
Только я еще не успел звуковую заставку добавить, как в своем видео:
001-ФранцузскийАлфавит.mp4 : https://disk.yandex.com/i/G4pJZ__AKhtHsw
Правда, там много неточностей, хотя, одно видео я уже частично переделал ( https://my.mail.ru/mail/emmerald/video/_myvideo/18.html ), однако работы еще много.
В данном случае, пересоздание видео с русскими субтитрами, это, как бы побочная задача. Главная – это создание компьютерных уроков для, упомянутой выше, обучающей программы. А, поскольку, программа поддерживает видео режим, то, почему бы не сделать видео захват и не опубликовать в виде отдельных роликов?
P.S. Работая с подобными видео, чувствую, что информация запоминается очень неплохо, тем более, что можно подавать материал в любом порядке и составе. Хотя, вопрос о подготовке полной системы данных (обучающего курса) остается открытым…
Научить – невозможно, но, научиться самому – можно.
Как говорил Сева Новгородцев, ведущий радио BBC, музыкальные передачи которого, в свое время, любила слушать советская молодежь (за неимением других альтернатив): «Чтобы выучить нормально английский язык, по любой методе, нужно потрать на изучение не менее 5000 часов!». И с ним трудно не согласиться. Вопрос, в принципе, только в одном, как потратить эти часы с максимальной пользой и удовольствием?
Три часа в день – скучно, если учить язык пассивно. Но, если, активно, то вполне реально. Например, взять видео ролик с французско-английскими фразами, на два-три часа, разделить звук на интервалы, распознать и перевести фразы и создать два новых видео: с французско-русскими и англо-русскими субтитрами. Вот, сегодня, я сгенерировал французские части для двух таких видео:
FrWords&Phrases0796.mp4 : https://disk.yandex.ru/i/6vCN210w8LErjw
FrWords&Phrases1081.mp4 : https://disk.yandex.ru/i/gFYR65zhTEflhQ
Там я еще не успел звуковую заставку добавить, как в своем видео:
001-ФранцузскийАлфавит.mp4 : https://disk.yandex.com/i/G4pJZ__AKhtHsw
Теперь готовлю английские части для этих же самых роликов.
Правда, там много неточностей и, по-хорошему, все это надо переделать.
В данном случае, пересоздание видео с русскими субтитрами, это, как бы побочная задача. Главная – это создание данных для моей обучающей программы «L'école» ( https://habr.com/ru/articles/848836/ ), поскольку, лучший метод, лично для меня, это: «запоминание руками + интерактивный звук». А, поскольку, программа поддерживает видео-режим, то, почему бы не сделать видео захват и не опубликовать в виде отдельных роликов?
https://mistral.ai – один из моих любимых (среди бесплатных) ИИ-сервисов. Уже не раз выручал…
вряд ли
Да, не «страшно», а просто скучно. Изучение языка – это рутина, а мозг не любит рутину.
Чтобы бороться с рутиной, нужна либо особая мотивация, то бишь, энергия либо перевод процесса обучения в более увлекательное русло. Только, не по пути игромании, что интересно не всем, а, скорее, по пути созидания и творчества.
Так, я захотел, уже в зрелом возрасте, выучить французский язык, чтобы понимать живую речь носителей.
Взял учебник, учил, усваивал, но быстро надоело. Потом, подумал, это потому, что нет творческой составляющей. Ладно, решил написать собственную обучающую программу ( https://habr.com/ru/articles/848836/ ). Потом, начал учить язык по своей программе. Уткнулся в недостаток данных. Хорошо, занялся подготовкой данных. Уже подготовил достаточно материалов для усвоения. Поработал с ними и, опять, то ли надоело, то ли устал.
Чтобы не терять времени, выбрал для себя следующую задачу: «Имеется видеоканал обучающих видео (на многие часы) с французско-английскими субтитрами. Требуется распознать субтитры, разделить соответствующий им звук на фрагменты, перевести все титры на русский язык и создать, как видео, с французско-русскими и англо-русскими, двуязычными субтитрами, так и данные, на их основе, для моей обучающей программы.». Здесь я продвинулся неплохо и даже распознал, таким образом, первое видео, с относительно небольшим количеством ошибок. Но, сейчас, работаю над вариантами оптимизации данного процесса.
Другими словами, я, как бы, ищу любой повод, чтобы быть «в процессе», но, реально, заниматься, не столько языком, сколько созданием обучающей системы. Ибо программирование «вставляет» больше, чем, собственно, освоение языка, как такового.
Короче, жду, когда Муза французского языка вновь посетит меня, и я продолжу осваивать свои обучающие уроки. Поскольку, этот путь мне очень нравится, если бы, только, французская Муза реже покидала меня… :)
Главный вопрос о сознании – это «надсознание».
Кстати, а как быть с подсознанием? Подсознание это «второе сознание» человека, но с гораздо меньшей осознанностью, и предназначено для поддержки жизнедеятельности и реализации намерений основного сознания, посредством своего физического тела. Другими словами, это «внутренний автопилот сознания», которым сознание не столько управляет, сколько использует.
Однако, наше сознание ограничено не только нашим физическим телом, которое управляется автопилотом сознания – подсознанием. Кроме внутреннего, материального тела, мы имеем его энергетическое продолжение – внешнее, сверхматериальное или тонко-энергетическое «тело». В ближнем радиусе, это аура. Но существует и более слабое «биологическое» поле, которое может простираться на огромные расстояние (как радиоволны).
Для управления внешним, тонкоэнергетическим телом человека, используется надсознание или «третье сознание» человека. Надсознание это тоже автопилот сознания, только не для внутреннего тела, а для внешнего. Надсознание, как и подсознание работают всегда в фоновом режиме, обеспечивая нормальную работу, собственно, сознания, в его интересах. И, обычно, малозаметны, т.е., почти не существуют, особенно это применимо к надсознанию.
Посредством этих высокочастотных биологических излучений мы имеем духовную и ментальную связь с нашими родными и близкими, даже на больших расстояниях. Если у любимого человека возникают проблемы, то мы можем это чувствовать. Теоретически, даже помочь ему, находясь вдали. Только для этого нужны особые практики, вроде («белой») «магии любви», неизвестные простым смертным
Непосредственно, обычный человек не может управлять ни своим подсознанием, ни своим надсознанием. Однако, специалисты по эзотерическим практикам могут это делать. Для управления подсознанием они используют медитацию, самогипноз и йогу. А для управления своим надсознанием, в народе известна только (черная) магия вуду, Кастанеды и Странника. И ее развитие – в движении «хакеров сновидений», которое было распространено в «лихие 90-тые». Связано это было с безнадёгой тех времен, народ искал способы выживания, в том числе, в эзотерике. Однако, следует сказать, что это практика предназначена не для всех. По этому пути пошли многие люди, большинство из которых кончили очень плохо.
Еще раз. Надсознание не только обеспечивает, во время сна, организм человека энергией извне, но и участвует в своих «тёрках» с внешним миром. Другими словами, человек, как бы, живет две жизни. Одна – обычная, осознанная. А вторая – сверхестественная, которую ведет его надсознание. При этом мы можем лишь изредка видеть осколки этой жизни во сне, не понимая, толком, что к чему.
Однако, это еще не всё. Мы также наслышаны про понятия: «Дух» и «Душа». Какова их связь с тремя сознаниями человека? Я, вот, предлагаю, следующую:
Дух – это энергетика Души.
Душа – это контейнер трех сознаний: «Я-сознание», «Я-подсознание» и «Я-надсознание».
В этом смысле, ИИ и нейросети – это грубая эмуляция сознания (по крайней мере, пока), типа, как трактор, который эмулирует физическую силу человека, только, в части, вскапывателя своего огорода…
Вот и пришлось воспользоваться вашим кодом!
Дело в том, что мой подход, основанный на использовании ключевых метрик шрифта – вполне хорош, но требует ручного «обучения» функции выбора, в моем скритпе распознавания встроенных субтитров видео.
Ваша идея предполагает воспользоваться ttf-шрифтами из операционной системы. Проблема была в том, что нужно было выяснить какой шрифт используется в интересующих видео и скачать его. Для распознавания шрифта есть сервис https://www.myfonts.com/pages/whatthefont . Он выдал, по изображению шрифта его название 'Cooper Black Regular.ttf'.
Короче, фонт определен, найден и загружен. Проверил соответствие в Ворде – один в один, если использовать размер шрифта – 45 и режим – bold.
Далее, чтобы сгенерировать эталонные символы – использовал ваш скрипт, немного переделав его. Потом, собираюсь сравнивать матрицы символов из видео с полученными образцами.
Здесь ваш код (модифицированный)
А разве к этому не относится – избегать сомнительных советов тем, кого плохо знаешь?
Какое качество распознавания вы гарантируете? Даже лучшие ИИ-сервисы в Интернете не дают соответствия более 99%. Вот, только что проверил, на сто фраз, минимум, три -пять ошибок. Не говоря уже о том, что восклицательные знаки и кавычки рапознавалки речи понимают плохо.
И потом, я же упомянул оффлайн модели Vosk. Поэтому, подобную технологию уже реализовывал. Это и извлечение звука из видео, преобразование его в wav-файл, и выбор модели языка и меру ее «тяжести», и получение нужных данных, в требуемом виде. Т.е., одной командой здесь не обойдешься, нужно использовать полноценные Питон-скритпы, хотя это и не проблема.
При этом, никаких дорогостоящих прибамбасов не нужно и платить лишние деньги нет нужды. Ибо, в любом случае, любой результат нужно проверять. Для этого у меня есть собственная, неопубликованная, программа «МедиаТекст» (см. скриншот: http://scholium.webservis.ru/Pics/MediaText.png ), причем, имеются и другие варианты. Поэтому, какая особо, разница, если все равно делать проверку встроенных субтитров (что меня интересует в первую очередь) – их распознанному тексту, сколько там будет ошибок? Одна на сотню или десять-двадцать. Ибо исправить это не трудно и не слишком напряжно.
Тем более, что мой скрипт, на Питоне, по распознаванию субтитров, уже работает неплохо. В 1300-х французских фразах (их английский перевод я, пока, игнорировал), было обнаружено не более двадцати ошибок, что легко корректируется правкой условий по метрикам используемого шрифта, в моей функции выбора, соответственно, в следующий раз эти ошибки уже не появятся.
Ну, и какая мне польза от вашего совета?
P.S. Если языка не знаешь, то распознавание речи, для целей обучения, там под вопросом. А вот, распознавать текст встроенных субтитров – больше смысла. И точнее и дешевле и полезнее для изучения иностранного языка…
P.S. По-видимому, я поторопился с критикой своей будущей статьи по распознаванию встроенных субтитров видео ибо ваш сервис распознает только речь.
P.S. Да, я принял желаемое за действительное. Сервис занимается распознаванием речи. Проверить качество, пока, трудно, поскольку обработка файлов идет слишком долго. Зато, теоретически, принимает 4 гигабайта. Хорошие распознавалки речи, бесплатно, дают только десять минут.