terratensor / transcript

Стенограммы выступлений
0 stars 0 forks source link

Поиск по лекциям КОБ #1

Open iprst opened 1 year ago

iprst commented 1 year ago

Пякин — все стенограммы В–О в наличии (а также комментарии под выпусками, которые не попадают в текущий поиск). Зазнобин — распознать в текст все видеозаписи с сайта https://zaznob.in/ и добавить в источники поиска. Ефимов, Величко, Петров — также к рассмотрению на будущее. Возможно добавить и других деятелей.

audetv commented 1 year ago

Да, можно запустить например яндекс распознавание голоса и сделать текстовые варианты https://cloud.yandex.ru/services/speechkit Ну или что то подобное, делитесь ссылками.

iprst commented 1 year ago

Владивосток предлагает

разместить объявление на сайте — производится поиск стенограмм лекций Зазнобина В.М. и почтовый ящик

И ещё

Вот еще нашёл сайт: https://mediamera.ru/post/22

Здесь практически все лекции Зазнобина В.М. есть в аудио формате. У небольшого количества лекций есть текст и ссылки на субтитры. Есть также авторское описание видео. Я к тому, что просто аудиодорожки скорее всего проще в текст переводить, чем видео.

И ещё

https://www.seonews.ru/analytics/7-sposobov-perevoda-video-v-tekst/ Пробовали вот эти варианты? Постараюсь опробовать варианты, может что получится.

В принципе могут быть рабочие варианты.

iprst commented 1 year ago

Всеми руками за облачные вычисления, но пока в них «не верю» — долго, дорого, мало.

Потратил несколько дней на изучение вопроса и оценку наших возможностей.

Вы уже видите куда я клоню, даже в пожатом формате m4a (или opus или mp3) на руках 20 Гб данных, очевидно, что никакой облачный сервис не даст возможности распознать все эти файлы, слишком большой объём. Только платные сервисы с большим облаком и жирным API могут справиться с задачей в её полноте, но платно.

Протестировал бесплатные решения. В целом, все они (без исключения) реализованы на открытых, общеизвестных библиотеках ASR (automatic speech recognition — автоматическое распознавание речи) и STT (speech to text — речь в текст), при этом по понятным причинам они основаны в первую очередь на англоязычных моделях, и в первую очередь на небольших специализированных словарях. Под небольшими словарями подразумевается специальные наборы общеупотребительных слов, служащих для бытовых задач — это либо голосовое управление приборами и устройствами, либо распознание заказов и обращений в службе быта, банках, общепите, такси и подобных сервисах, и тому подобные специальные задачи.

Поскольку практически все проекты на входе для наилучших результатов требуют один и тот же тип файлов, стало понятно, что потребуется автоматическая конвертация с достаточно большим увеличением размеров библиотеки, при этом пока файлы будут конвертироваться, нужно будет найти наиболее адекватный нашим задачам проект и предварительно обученную модель. Было найдено два проекта с наиболее весомыми русскоязычными моделями, это NVidia NeMo и Alpha Cephei Vosk, которые мы и будем сравнивать по результатам тестов с бесплатными онлайн сервисами распознания речи, которые в теории можно было бы автоматизировать.

Подготовка данных.

NVidia NeMo выдаёт не очень стабильные результаты, система очень капризна к шуму. Кроме того, установка питоновского окружения для её полной версии это почти невыполнимая задача, решить её так и не удалось. Воспользовался малой версией, пока не получил нормального результата. А жаль, nvidia по определению хорошо утилизирует ресурсы видеокарты с помощью библиотек torch и tensorflow, которые уже неоднократно опробованы в аудио-приложениях и хорошо знакомы.

Alpha Cephei Vosk установилась очень легко. Была протестирована самая свежая большая модель русского языка. В черновом варианте распознанный текст не формируется в предложения, только в отдельные строки, все буквы строчные, нет знаков препинания, но само распознание на достаточно высоком уровне. Пока не тестировал пакетный вариант распознания большого количества файлов, поэтому результаты достаточно медленные, но работает очень стабильно.

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

Оригинальный текст:

— Ну сколько ж вам лет то было?
— Я поступил в Суворовское училище в пятидесятом году.
— И тогда и видели, да?
— Из Нижнего, ну из Горького, из Нижнего Новгорода, по очереди — Калининское училище, Горьковское, Тульское, возили на Парад, и я поскольку был в последней шеренге, я очень явственно видел его лицо.

Онлайн-сервис:

Ну что место было?
Я поступил в Суворовское училище 50 году.
И тогда и видели, да из Нижнего Ну из Горького и Нижнего Новгорода по очереди Калининской училища. Горьковская Тульской вазелин аппарат поскольку был последний шеренги. Я очень явственно видел в лицо.

Vosk + vosk-model-ru-0.42

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

В общем, план такой.

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

  TRACK 13 AUDIO
    TITLE "00:03:18.85991"
    PERFORMER "Владимир Михайлович Зазнобин. Видеоархив"
    INDEX 01 03:18:64

Отсюда легко вычисляется отметка времени для ютуб-видео, то есть можно сразу каждую «фразу» привязать ко времени ссылкой, например в данном случае это будет https://youtu.be/1xh4karX5hw?t=198

03 × 60 + 18 = 198 (то есть количество минут множим на количество секунд и прибавляем оставшиеся секунды)

Таким образом мы каждую фразу стенограммы можем снабдить прямой ссылкой на начало этой фразы внутри видео. Предлагаю сделать именно это, независимо от качества распознания — стенограммы даже на 60% верные, но для 280 часов, это лучше, чем их полное отсутствие. Точность модели варьируется, но в среднем она выше 80%, хотя сильно зашумленные места я пока не тестировал.

@audetv предлагаю оценить возможности реализации ссылок на время в видео и поисковой базы, посмотреть что я упускаю, и установить все необходимые форматы данных для этого, чтобы было время на манёвр пока я тестирую методологию, вдруг в плане нужно что-то поменять. Возможно потом полученный модуль мы не только разместим у себя на сайте, но поделимся им с товарищами из ZAZNOB.IN. Прилагаю несколько cue файлов для проверки парсера. Возможно нужен репозиторий, возможно нет, в общем, нужно понять схему действий до того, как запустил распознавалку в боевом режиме. Приветствуются все пожелания и замечания.

@grigorovsckaya-sandra нам потребуется вычитывать речи, сверяя с оригиналом видео. Скорее всего часть этой работы ляжет на вас — нужно хотя бы избавиться от тех глупостей, как в приведённом выше примере, где «возили на парад» превращается в «вазелин аппарат», пусть даже не приводя текст в идеальный вид стилистически. Сейчас в первую очередь нужно будет проверить основные ошибки и убрать клинические казусы, а криво построенные предложения, отсутствие пунктуации и тому подобное, пока не в приоритете. Хотя все предложения приветствуются. Возможно нужно потребовать «помощь зала», это явно задача для массовой работы.

Пока всё.

audetv commented 1 year ago

Понял, буду изучать, посмотрю. Предлагаю сделать репозиторий под файлы, чтобы в код поисковика не попадали файлы не относящиеся к коду, здесь настроен автоматический деплой, собираются образы из кода, разных сервисов и выгружаются потом на боевой сервер. Образы не должны содержать файлы, файлы должны храниться в volum'ах, поэтому предлагаю сделать репозиторий для концепции связности. Нужны идеи по наименованию: Concept of connectivity ?- по гугл переводчику Concept ?

UPD/ Проверил файлы в сборку и не попали, собирается от папки app. Так что github на этих пулреквестах пересобрал проект и пытался выгрузить его заново, почти без изменения. Но лучше для файлов другой репозиторий, чтобы тут не дергать сборку не по назначению.

iprst commented 1 year ago

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

Да, я это понял только когда загружал csv — когда загружал пачку файлов отходил от экрана и не видел, сколько собирался пулл. Только на csv заметил.

Concept of connectivity ?- по гугл переводчику

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

Коге́зия (лат. cohaesus — «связанный», «сцеплённый») — в лингвистике грамматическая и лексическая связность текста или предложения, которая соединяет их в единое целое и придает им смысл; одна из определяющих характеристик текста/дискурса и одно из необходимых условий текстуальности (…) формирования не только структурной, но и смысловой (содержательной) целостности речевого произведения. В российской лингвистике, помимо термина «когезия», традиционно используется также термин «связность» (текста). Когезию называют также структурной связностью текста. Термин «когезия» применяется при анализе дискурса, при интерпретации глубинных смыслов текста и авторского замысла. Более широким понятием является когерентность текста — его целостность.

audetv commented 1 year ago

Сделал опрос, не могу выбрать на ровном месте) https://github.com/audetv/fct-search/discussions/198#discussion-5279026

https://github.com/audetv/concept-of-cohaesus
https://github.com/audetv/cohaesus 
https://github.com/audetv/cohaesus-concept
https://github.com/audetv/concept-cohaesus
iprst commented 1 year ago

Да, можно запустить например яндекс распознавание голоса и сделать текстовые варианты https://cloud.yandex.ru/services/speechkit

Вы не пробовали этот яндекс SpeechKit?

Режим | цена за 15 сек | за 280 часов -- | -- | -- Синхронное распознавание файлов | 0,1600 ₽ | 161280 ₽ Асинхронное распознавание файлов | 0,0100 ₽ | 10080 ₽ Асинхронное распознавание файлов, отложенный режим | 0,0025 ₽ | 2520 ₽

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

audetv commented 1 year ago

Да, можно запустить например яндекс распознавание голоса и сделать текстовые варианты https://cloud.yandex.ru/services/speechkit

Вы не пробовали этот яндекс SpeechKit?

Режим цена за 15 сек за 280 часов Синхронное распознавание файлов 0,1600 ₽ 161280 ₽ Асинхронное распознавание файлов 0,0100 ₽ 10080 ₽ Асинхронное распознавание файлов, отложенный режим 0,0025 ₽ 2520 ₽ Асинхронное распознавание файлов, отложенный режим — самый дешёвый вариант, но неизвестно сколько ждать, поскольку файлы попадают в длинную очередь.

Нет, не пробовал. Так серьезно как вы описали, я не подходил к этому вопросу, так просто голосом наговорить в микрофон, но такой тест не показатель. Можно протестировать: Асинхронное распознавание файлов, отложенный режим, какой-нибудь 1 файл. И посмотреть насколько долго будет это, хотя разница в 160т.р. говорит что в 160 раз дольше...)

upd есть еще вариант попробовать бесплатно. надо почитать, как делать. https://cloud.yandex.ru/docs/speechkit/stt/api/transcribation-api

iprst commented 1 year ago

Так серьезно как вы описали, я не подходил к этому вопросу, так просто голосом наговорить в микрофон, но такой тест не показатель.

Так получилось, что практически единственная область, где я хоть сколько-то имею представление о коде и работе с ресурсами это медиа. Особенно аудио. А поскольку последние лет 30 нашей цивилизации аудио это компьютер, то сам собой сложился опыт. Буквально одно что я более-менее освоил, это поставить питоновское окружение для pytorch или tensorflow и что-то обработать по звуку с помощью видеокарты. Например — вынуть голос из песни или обучить модель гитарного усилителя. Очень хорошо освоенные методы на сегодняшний момент, достаточно развиты в индустрии, уже с нормальными коммерческими решениями на пользовательском уровне.

Можно протестировать: Асинхронное распознавание файлов, отложенный режим, какой-нибудь 1 файл. И посмотреть насколько долго будет это, хотя разница в 160т.р. говорит что в 160 раз дольше...)

Логично, да. Но среднюю скорость мы всё равно не вычислим, поскольку все машинные методы крайне зависят от типа входа. Ещё чем хорош вариант локальный, со стандартными питоновскими библиотеками и открытыми моделями — можно подкрутить параметры для наилучшего результата на конкретной машине и с конкретным входом. То есть это принципиально реализуемая схема. Что там с API яндекса мне совсем-совсем абсолютно неизвестно, я никогда им не пользовался.

upd есть еще вариант попробовать бесплатно. надо почитать, как делать. https://cloud.yandex.ru/docs/speechkit/stt/api/transcribation-api

Если будете пробовать, можно подготовить какой-то набор данных под их разметку, хотя бы под цену транзакции (длительность кратна 15 секундам) и характеристики аудио файла, то есть файлы нужно пожать определённым кодеком. Не вижу смысла скармливать какой-то файл целиком, например даже минимальное видео 5 минут.

Зазнобин В.М. Западная Украина пойдёт на Киев или на Европу (июнь 2014 г.) — 4:16 Зазнобин В.М. О целях КПЕ (2 июля 2004 г.) — 6:51 Зазнобин В.М. Новогоднее обращение (29 декабря 2012 г.) — 7:11 Зазнобин В.М. О том, как будет осуществляться управление в будущем (28 июля 2016 г.) — 7:33

iprst commented 1 year ago

Создан репозиторий под Концепцию связности — cohesion. Туда загружены технические файлы для работы с распознаванием речи в роликах Зазнобина. Как в комментариях правильно держать связь между плодящимися репозиториями? Нужно усвоить какую-то логику поведения.

audetv commented 1 year ago

Как в комментариях правильно держать связь между плодящимися репозиториями? Нужно усвоить какую-то логику поведения.

Не знаю, придется их помнить. Надо подумать. Возможно поможет public Organization account, но не уверен. https://docs.github.com/ru/organizations/collaborating-with-groups-in-organizations/about-organizations

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

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

Опыт общения здесь появился только после того, как фкт поиск опубликовал. Пишут, что есть общая дискуссия организации для общения и прочее, я не знаю решит ли создание организации нашу проблему. Можно попробовать, и некоторые репозитории туда перенести: conceptual-dictionary, cohesion, book-parser.

Страницу организации можно особо оформить, видеть список всех репозиториев, выглядит немного по-другому. Вот пример организации: https://github.com/yiisoft

Но придется придумывать наименование, это всегда так сложно) cohesion и cohaesus заняты)

https://github.com/account/organizations/new?plan=free&ref_cta=Create%2520a%2520free%2520organization&ref_loc=cards&ref_page=%2Forganizations%2Fplan

iprst commented 1 year ago

Возможно поможет public Organization account

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

Но дискуссий и общение не вел в гитхабе, обычно это в мессенджерах или почте или в живую.

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

Но придется придумывать наименование, это всегда так сложно)

svodd очень хорошее название, но не для организации. Прикольно, что в английском языке словно нет подходящего слова для управления, в том смысле, в котором это слово используется в КОБ.

Ничего, название придумаем.

audetv commented 1 year ago

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

  1. Кол-во репозиториев неограниченно
  2. Github Actions для публичных репозиториев неограниченно - это то, что надо для автоматического деплоя и непрерывной интеграции. Вещь полезная и нужная, опробовано на fct-search и url-shortener бесплатно. Но когда компании герметичны и это бизнес, гитхаб заставит платить, 2000 бесплатных мин для приватных репозиториев в месяц для активной разработки это мало, одна сборка по запросу может занимать 5 минут и более. Это то что сейчас происходит по каждому пул реквесту в главную ветку. За время с публикации ФКТ поиска было 408 запусков, т.е этот репозиторий даже бы в приватном режиме бы не вышел за пределы. Но если разработка очень активная, много людей в команде и по каждому запросу в главную ветку происходит пересборка, запускаются тесты, линтеры и прочее, 2000 мин мало. Для компаний этого мало, но это не про публичные репозитории. Пока мы открыты, можем использовать ресурсы гитхаба по полной. Это прекрасно.
  3. Github Packages неограниченно для публичных репозиториев. Это хранилище, сборок кода. Я сейчас посмотрел образы фкт поиска хранятся с самой первой версии, некоторый сервисы по 700 МБ образ, конечно там особая технология и слоеный пирог, и хранится «нарастающим итогом», но 408 сборок - это много. На приватной версии пришлось бы платить, на публичной пользуемся. Сборки нужны, чтобы можно было откатиться в любой момент на нужную версию. В таком кол-ве они наверное не нужны все 400 шт. Возможно можно настроить сроки хранения, я не смотрел, ограничений нет, пока хранятся и ладно.
  4. Security Owerview - нет. Но это особо критично для корпоративных приватных разработок. Там где присутствует вся чехарда с должностями, уровнями доступа, корпоративная пирамида. Особые права для особых людей. Нам это не помешает, предустановленных 3 ролей нам хватит.

И далее остальные ограничения затрагивают корпоративную пирамиду, доступа доступы разных сервисов из других закрытых сервисов и т.д. Доступы по IP, SSO, LDAP и прочее нас это не касается.

Так что в плане ограничений, мне видится, что нас нечем ограничивать. Мы по другим правилам работаем.

В целом в гитхабе хорошо реализовано комментирование и проставление автоматических ссылок

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

Наверное основную проблему, которую я имею в виду, можно сформулировать не столько про дискуссии, а вот так — видится, что концептуально это всё связано, но сейчас мы «раздаём» репозитории из двух персональных аккаунтов, и вроде бы можно продолжать делать так, но сама архитектура «связной глобальной системы» говорит, что репозиториев будет скорее всего много (например под каждый подпроект может быть 1-2 репозитория, но это подпроекты одного проекта!)

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

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

Да так что можно будет попробовать на некоторых репозиториях, посмотреть, по мере поступления задач. Личные аккаунты останутся и никуда не денутся. Некоторые репозитории легко передать (без автоматического деплоя), для передачи фкт поиска надо будет подготовиться и потратить несколько часов, перенастроить доступы, токены, и проверить, но это все решаемо.

Придумаем название, можно сделать и пробовать.

iprst commented 1 year ago

Github Packages неограниченно для публичных репозиториев. Это хранилище, сборок кода.

Получается, лимиты по размерам хранилища касаются только сборок и только в приватных репозиториях. То есть просто что-то загрузить можно в «любом» объёме? Поясню: у меня сейчас csv под наши новые библиотечные базы составляют порядка 2,5 Гб например.

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

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

Придумаем название, можно сделать и пробовать.

Да.

grigorovsckaya-sandra commented 1 year ago

нам потребуется вычитывать речи, сверяя с оригиналом видео.

я уже стесняюсь напоминать о своей компьютерной безграмотности ) куда заходить и где редактировать?...

audetv commented 1 year ago

Получается, лимиты по размерам хранилища касаются только сборок и только в приватных репозиториях. То есть просто что-то загрузить можно в «любом» объёме?

Я не знаю, мне кажется, что хранилище для сборок это не тоже хранилище, что для кода репозитория. Сборки хранятся в docker regidtry : https://ghcr.io Загуглил: https://docs.github.com/ru/repositories/working-with-files/managing-large-files/about-large-files-on-github

Рекомендуется, чтобы репозитории оставались небольшими, в идеале менее 1 ГБ, и крайне нежелательно, чтобы их размер превышал 5 ГБ. Небольшие репозитории быстрее клонируются и проще работать и обслуживать. Если ваш репозиторий чрезмерно влияет на нашу инфраструктуру, вы можете получить сообщение электронной почты от Поддержка GitHub с просьбой принять корректирующие меры.

Думаю, придется хранить такие файлы csv в другом месте, но надо почитать про Git LFS Сведения о Хранилище больших файлов Git https://git-lfs.com/

Поизучаю этот вопрос.

iprst commented 1 year ago

куда заходить и где редактировать?...

Пока никуда, пока ещё только тестирую метод локально. Просто поскольку там очень большой объём работы по всем этапам, решил заранее описать проблему и узнать мнения товарищей, как что делать.

Сейчас посмотрите примеры фраз Зазнобина, оригинала, ссылку на фрагмент видео, и двух методов распознания. Какой из методов проще обработать по тексту, привести его в нормальный вид?

Оригинальный текст:

— Ну сколько ж вам лет то было? — Я поступил в Суворовское училище в пятидесятом году. — И тогда и видели, да? — Из Нижнего, ну из Горького, из Нижнего Новгорода, по очереди — Калининское училище, Горьковское, Тульское, возили на Парад, и я поскольку был в последней шеренге, я очень явственно видел его лицо.

Онлайн-сервис:

Ну что место было? Я поступил в Суворовское училище 50 году. И тогда и видели, да из Нижнего Ну из Горького и Нижнего Новгорода по очереди Калининской училища. Горьковская Тульской вазелин аппарат поскольку был последний шеренги. Я очень явственно видел в лицо.

Vosk + vosk-model-ru-0.42

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

Это у нас 12 секунд видео. Всего у нас будет порядка миллиона секунд, то есть около 85 тысяч таких отрывков. Сколько подобных коротких примеров нужно сделать сейчас, чтобы составить более-менее картину предполагаемой сложности дальнейшей обработки всего материала? Вопрос насущный, поскольку выбирается «дорогой» метод обработки, требующий больших ресурсов.

iprst commented 1 year ago

Думаю, придется хранить такие файлы csv в другом месте, но надо почитать про Git LFS Сведения о Хранилище больших файлов Git

Возможно проще сделать отдельный статический репозиторий для csv?

audetv commented 1 year ago

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

Визуально это страница со всеми репозиториями проекта - организации с поиском по ним https://github.com/orgs/yiisoft/repositories

По управлению, появляются вкладки people, teamб и добавляя члена организации можно ему галочками выдать права на нужные или сразу на все репозитории в организации. Т.е. на всю организацию.

Я так понимаю, что в некоторой мере это решает. Выдавать права проще.

iprst commented 1 year ago

По управлению, появляются вкладки people, teamб и добавляя члена организации можно ему галочками выдать права на нужные или сразу на все репозитории в организации. Т.е. на всю организацию.

Пока что это наиболее логичный вариант.

grigorovsckaya-sandra commented 1 year ago

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

наверно, это сильно зависит от качества звука, в приведённом видео звук ужасный, подобные проблемы возникнут во всех видео 90-х и начала 2000-х, где "вопросы из зала" вообще почти не разобрать

iprst commented 1 year ago

наверно, это сильно зависит от качества звука, в приведённом видео звук ужасный

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

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

audetv commented 1 year ago

Возможно проще сделать отдельный статический репозиторий для csv?

Типа диск? Яндекс, гугл, дропбокс?

Можно хранить на хостинге по s3 протоколу https://clo.ru/help/S3 И тогда эти файлы передавать между сервисами будет проще, файлы можно делать публичными или оставлять только приватные. Я пробовал книги сохранять и ролик в этом хранилище. https://static.svodd.ru/video/denpobedy.mp4 https://static.svodd.ru/books/VPSSSR/DOCX/%D0%92%D0%B5%D1%80%D0%B0%20%D0%B8%20%D0%9C%D0%B5%D1%80%D0%B0.docx

Пришлось поставить клиент «киберутку» и там похоже как c ftp. Протокол другой, более удобный чем ftp в разработке. Могу сделать доступ и прислать для пробы

СОЗДАНИЕ ПОЛЬЗОВАТЕЛЯ

![2023-06-09_17-25-39](https://github.com/audetv/fct-search/assets/10896447/6e18c076-ce0e-4451-9a29-6c07c43a06a4)

cuberduck

![2023-06-09_17-28-03](https://github.com/audetv/fct-search/assets/10896447/e14d85be-cc9e-4423-a000-61cf970ebfbb)

audetv commented 1 year ago

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

iprst commented 1 year ago

Типа диск? Яндекс, гугл, дропбокс?

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

Можно хранить на хостинге по s3 протоколу

Это уже системы для объёмных нагруженных проектов, но я пока только о файлохранилище подумал. В будущем обязательно, возможно даже в не столь дальнем, просто сейчас речь о более простом вопросе, условно «доступные объёмы на гитхабе».

проще обычный диск подключить

Я сделал гуглопочту на terratensor, предлагаю вам сделать яндекс-почту с тем же логином, таким образом будет в совокупности кой-какое место для разведения кроликов. Здесь есть начальный логотип, более крутые версии позже.

audetv commented 1 year ago

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

Зарегистрировал почту и добавил в организацию. https://github.com/organizations/terratensor/settings/billing Внизу Email recipients

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

До 1Гб рекомендованный размер и не более 5. Так что пока ничего. Посмотрим, если будет превышение квот и начнут присылать письма, будем на дисках хранить.

iprst commented 1 year ago

Зарегистрировал почту и добавил в организацию.

Супер.

До 1Гб рекомендованный размер и не более 5. Так что пока ничего. Посмотрим, если будет превышение квот и начнут присылать письма, будем на дисках хранить.

В персональном аккаунте даже в приватный репозиторий спокойно добавились 109 rar-файлов в сумме 2,12 Гб. Никакие actions и workflow не установлены, поэтому ничего не проверяется, просто загружается. Через какое-то время удалю, посмотрим, пришлют ли биллинг за квоты через месяц.

iprst commented 1 year ago

Получил текст всех выступлений Владимира Михайловича Зазнобина (150 видеозаписей) Отпарсил текст всех стенограмм Валерия Викторовича Пякина (500 видеозаписей)

В ближайшее время буду выкладывать оба архива, остались некоторые проверки и форматирование.

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

audetv commented 1 year ago

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

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

iprst commented 1 year ago

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

Для Зазнобина два варианта текста. Субтитры srt со стандартным таймкодом «начало — конец»:

543
00:31:19,740 --> 00:31:25,080
войну с японцами и в первой Мировую

544
00:31:21,779 --> 00:31:27,360
Войну и описывает они вместе росли с

545
00:31:25,080 --> 00:31:29,539
Николаем вторым почти там сверстники

546
00:31:27,360 --> 00:31:32,039
были что Николай II был совершенно

547
00:31:29,539 --> 00:31:35,880
бесхарактерным он никогда не имел своего

Второй вариант слегка иначе форматирован:

31:19
войну с японцами и в первой Мировую Войну и описывает они вместе росли с
31:25
Николаем вторым почти там сверстники были что Николай II был совершенно бесхарактерным он никогда не имел своего

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

iprst commented 1 year ago

Опубликованы транскрипции для всех лекций Владимира Михайловича Зазнобина. Два формата — srt и txt.

Замеченные ошибки можно править прямо по месту.

iprst commented 1 year ago

Добавлены опубликованные на официальном сайте стенограммы выступлений Зазнобина. Формат docx.

audetv commented 1 year ago

Я так понимаю, в идеале надо расставить знаки препинания. Как бы это автоматизировать…

Начал думаю как поиск организовать, как собирать параграфы, и как в БД организовать привязку ко времени ролика.

В итоге Alpha Cephei Vosk использовали для распознавания?

iprst commented 1 year ago

Я так понимаю, в идеале надо расставить знаки препинания. Как бы это автоматизировать…

Пока ни малейшего представления. Не изучал вопрос даже. Я думаю, что это вообще на текущем этапе не нужно, чтобы найти собственно модули в видео, не требуется идеальный текст, подойдёт и «токенизированный» как здесь. Часто с ошибками и тд, но 80% точности лучше, чем 0% возможности поиска. Можно отправить так, и посмотреть, что будет искаться. А потом уже облагораживать.

В итоге Alpha Cephei Vosk использовали для распознавания?

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

Теперь думаю, как загружать 500 docx стенограмм Пякина. Архивом, видимо.

audetv commented 1 year ago

Пока ни малейшего представления. Не изучал вопрос даже. Я думаю, что это вообще на текущем этапе не нужно, чтобы найти собственно модули в видео, не требуется идеальный текст, подойдёт и «токенизированный» как здесь. Часто с ошибками и тд, но 80% точности лучше, чем 0% возможности поиска. Можно отправить так, и посмотреть, что будет искаться. А потом уже облагораживать.

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

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

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

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

iprst commented 1 year ago

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

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

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

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

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

Тоже не изучал, но есть. У яндекса тоже есть что-то на эту тему субтитров-переводов роликов. Не изучал. Тут основной критерий был массовое пакетное оформление в нормальный формат. 150 видео это очень большой кусок времени, если брать методы, которые не позволяют батч-процессы в больших чанках. Ютуб в этом плане идеален, спокойно сожрал видео с 96 кб/сек аудиодорогой или длиной 6,5 часов.

ZelAOYury commented 1 year ago

Приветствую. Объясните что по Зазнобину облагораживать? Посмотрел файл тхт и там по отрывкам каждые 5 секунд. Надо это в нормальный текст переписать? И заодно сравнить с первоисточником?

audetv commented 1 year ago

Приветствую. Да, текст разбит на строки с временной отметкой — это нормально. Метки можно не трогать, они нам нужны. С помощью этих временных отметок мы сделаем ссылки на ролики в ютубе. Идея такова, что пользователь в поиске набирает нужную фразу и получает список результатов (строк) со ссылками на оригинал ролика. По этой ссылке можно перейти сразу к нужному фрагменту видео, например ищем: «Стругацкие»

Зазнобин В М Защита будущего 19 июня 2002 года.txt

43:53
Стругацкие увидели будущее

и переходим по ссылке

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

Это что касается меток.

По поводу облагородить текст, смотрим далее по тому же файлу, и вот как распознал ИИ:

45:51
что же такого произошло но вы все знаете что Сталина многие дети
45:59
и наша вся Демократическая прессаном говорит что нет разницы вопрос
46:07
кто там более хитрый Ну просто
46:12
Но если почитать работы
46:20
вернуть Если Майнкрафт пожалуйста сейчас можно получить где угодно то работы
46:28
Сталина достать не так-то просто Но дело не только Сталин обвиняли в том

UPD: ссылка

Половина фраз из отрывка не распознана, ну и майнкрафт…

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

Ну, и знаки препинания, могут напрягать некоторых. Но для механизма поиска эти знаки не имеют значения.

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

Мысли?

iprst commented 1 year ago

Посмотрел файл тхт и там по отрывкам каждые 5 секунд. Надо это в нормальный текст переписать? И заодно сравнить с первоисточником?

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

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

iprst commented 1 year ago

Половина фраз из отрывка не распознана, ну и майнкрафт…

Майнкрафт в тексте Зазнобина явный признак Раммштайна. Майн. Крафт.

Возможно имеет смыл посмотреть выборочно что-то с чем знакомы и оценить и осмыслить и предложить варианты.

Да, это лучше всего — оценить самому что получилось и придумать как это можно решить.

Ну, и знаки препинания, могут напрягать некоторых. Но для механизма поиска эти знаки не имеют значения.

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

audetv commented 1 year ago

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

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

Майнкрафт в тексте Зазнобина явный признак Раммштайна. Майн. Крафт.

Ага. Ещё показалось интересным и обратил внимание, в авто субтитрах этого ролика на ютубе этот фрагмент более качественно распознан, но по факту все равно «дичь». Раммштайн. мальком. мой комп.

Под текстом видео ссылка: …ещё. Расшифровка видео. Кнопка «Показать текст видео».

45:52
такого произошло в 19 лет ну вы все знаете что сталина многие
45:58
сравнить гитлер и наши вся демократические пресса во главе с
46:03
суворовым резном говорит что нет разницы вопрос только то там более хитрый ну
46:09
просто стань оказался хитрее но если почитать работы сталин его речи
46:15
выступление и мальком то вы найдете ничего общего
46:20
1 если мой комп пожалуйста сейчас можно
iprst commented 1 year ago

Ещё показалось интересным и обратил внимание, в авто субтитрах этого ролика на ютубе этот фрагмент более качественно распознан, но по факту все равно «дичь». Раммштайн. мальком. мой комп.

Под текстом видео ссылка: …ещё. Расшифровка видео. Кнопка «Показать текст видео».

Это текстовые файлы txt, в них выложены такие распознания. Формат srt из настроек видео, а txt скопирован из распознания в самом видео. Два разных формата.

iprst commented 1 year ago

Добавлены 471 docx файл со стенограммами Валерия Викторовича. 29 файлов транскрипций в формате srt 29 файлов транскрипций в формате txt https://github.com/terratensor/transcript/tree/main/pyakin

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