Open iprst opened 1 year ago
Да, можно запустить например яндекс распознавание голоса и сделать текстовые варианты https://cloud.yandex.ru/services/speechkit Ну или что то подобное, делитесь ссылками.
Владивосток предлагает
разместить объявление на сайте — производится поиск стенограмм лекций Зазнобина В.М. и почтовый ящик
И ещё
Вот еще нашёл сайт: https://mediamera.ru/post/22
Здесь практически все лекции Зазнобина В.М. есть в аудио формате. У небольшого количества лекций есть текст и ссылки на субтитры. Есть также авторское описание видео. Я к тому, что просто аудиодорожки скорее всего проще в текст переводить, чем видео.
И ещё
https://www.seonews.ru/analytics/7-sposobov-perevoda-video-v-tekst/ Пробовали вот эти варианты? Постараюсь опробовать варианты, может что получится.
В принципе могут быть рабочие варианты.
Всеми руками за облачные вычисления, но пока в них «не верю» — долго, дорого, мало.
Потратил несколько дней на изучение вопроса и оценку наших возможностей.
Вы уже видите куда я клоню, даже в пожатом формате 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 нам потребуется вычитывать речи, сверяя с оригиналом видео. Скорее всего часть этой работы ляжет на вас — нужно хотя бы избавиться от тех глупостей, как в приведённом выше примере, где «возили на парад» превращается в «вазелин аппарат», пусть даже не приводя текст в идеальный вид стилистически. Сейчас в первую очередь нужно будет проверить основные ошибки и убрать клинические казусы, а криво построенные предложения, отсутствие пунктуации и тому подобное, пока не в приоритете. Хотя все предложения приветствуются. Возможно нужно потребовать «помощь зала», это явно задача для массовой работы.
Пока всё.
Понял, буду изучать, посмотрю. Предлагаю сделать репозиторий под файлы, чтобы в код поисковика не попадали файлы не относящиеся к коду, здесь настроен автоматический деплой, собираются образы из кода, разных сервисов и выгружаются потом на боевой сервер. Образы не должны содержать файлы, файлы должны храниться в volum'ах, поэтому предлагаю сделать репозиторий для концепции связности. Нужны идеи по наименованию: Concept of connectivity ?- по гугл переводчику Concept ?
UPD/ Проверил файлы в сборку и не попали, собирается от папки app. Так что github на этих пулреквестах пересобрал проект и пытался выгрузить его заново, почти без изменения. Но лучше для файлов другой репозиторий, чтобы тут не дергать сборку не по назначению.
Предлагаю сделать репозиторий под файлы, чтобы в код поисковика не попадали файлы не относящиеся к коду, здесь настроен автоматический деплой, собираются образы из кода, разных сервисов и выгружаются потом на боевой сервер.
Да, я это понял только когда загружал csv — когда загружал пачку файлов отходил от экрана и не видел, сколько собирался пулл. Только на csv заметил.
Concept of connectivity ?- по гугл переводчику
Connectivity это нормальный термин из теории графов, там связность так и обозначается. Возможно нам больше подходит понятие cohesion, использующийся как в математике, так и в лингвистике, тоже означает связность:
Коге́зия (лат. cohaesus — «связанный», «сцеплённый») — в лингвистике грамматическая и лексическая связность текста или предложения, которая соединяет их в единое целое и придает им смысл; одна из определяющих характеристик текста/дискурса и одно из необходимых условий текстуальности (…) формирования не только структурной, но и смысловой (содержательной) целостности речевого произведения. В российской лингвистике, помимо термина «когезия», традиционно используется также термин «связность» (текста). Когезию называют также структурной связностью текста. Термин «когезия» применяется при анализе дискурса, при интерпретации глубинных смыслов текста и авторского замысла. Более широким понятием является когерентность текста — его целостность.
Сделал опрос, не могу выбрать на ровном месте) 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
Да, можно запустить например яндекс распознавание голоса и сделать текстовые варианты https://cloud.yandex.ru/services/speechkit
Вы не пробовали этот яндекс SpeechKit?
Асинхронное распознавание файлов, отложенный режим — самый дешёвый вариант, но неизвестно сколько ждать, поскольку файлы попадают в длинную очередь.
Да, можно запустить например яндекс распознавание голоса и сделать текстовые варианты 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
Так серьезно как вы описали, я не подходил к этому вопросу, так просто голосом наговорить в микрофон, но такой тест не показатель.
Так получилось, что практически единственная область, где я хоть сколько-то имею представление о коде и работе с ресурсами это медиа. Особенно аудио. А поскольку последние лет 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
Создан репозиторий под Концепцию связности — cohesion. Туда загружены технические файлы для работы с распознаванием речи в роликах Зазнобина. Как в комментариях правильно держать связь между плодящимися репозиториями? Нужно усвоить какую-то логику поведения.
Как в комментариях правильно держать связь между плодящимися репозиториями? Нужно усвоить какую-то логику поведения.
Не знаю, придется их помнить. Надо подумать. Возможно поможет 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 заняты)
Возможно поможет public Organization account
Да, это полезно. Однако бесплатный аккаунт достаточно ограничен, хотя пока не могу определить насколько это может мешать.
Но дискуссий и общение не вел в гитхабе, обычно это в мессенджерах или почте или в живую.
В целом в гитхабе хорошо реализовано комментирование и проставление автоматических ссылок. Наверное основную проблему, которую я имею в виду, можно сформулировать не столько про дискуссии, а вот так — видится, что концептуально это всё связано, но сейчас мы «раздаём» репозитории из двух персональных аккаунтов, и вроде бы можно продолжать делать так, но сама архитектура «связной глобальной системы» говорит, что репозиториев будет скорее всего много (например под каждый подпроект может быть 1-2 репозитория, но это подпроекты одного проекта!), а уже сейчас менеджерить кто что куда зачем становится слегка утомительно. Фактор пойман на ранних этапах, это не срочно, но логика есть: придёт (или уйдёт) ещё пара человек с репозиториями, и будет потешная перекрёстная возня с допусками и правами, между репозиториями, которые в целом подразумеваются под связную систему.
Но придется придумывать наименование, это всегда так сложно)
svodd очень хорошее название, но не для организации. Прикольно, что в английском языке словно нет подходящего слова для управления, в том смысле, в котором это слово используется в КОБ.
Ничего, название придумаем.
Да, это полезно. Однако бесплатный аккаунт достаточно ограничен, хотя пока не могу определить насколько это может мешать.
И далее остальные ограничения затрагивают корпоративную пирамиду, доступа доступы разных сервисов из других закрытых сервисов и т.д. Доступы по IP, SSO, LDAP и прочее нас это не касается.
Так что в плане ограничений, мне видится, что нас нечем ограничивать. Мы по другим правилам работаем.
В целом в гитхабе хорошо реализовано комментирование и проставление автоматических ссылок
Вот это да, очень удобно, удобнее чем в мессенджерах и почте, и не надо настраивать интеграцию с корпоративной системой проектов, задач и т.д. Общение открыто, не приватно, не секретное, но даже то, что есть в приватном режиме нас устраивает, нам пока не нужны интеграции с другими системами и корпоративный тариф. Открыто обсуждаем баги, проблемы и высказываем идеи, но так нельзя в корпорации.
Наверное основную проблему, которую я имею в виду, можно сформулировать не столько про дискуссии, а вот так — видится, что концептуально это всё связано, но сейчас мы «раздаём» репозитории из двух персональных аккаунтов, и вроде бы можно продолжать делать так, но сама архитектура «связной глобальной системы» говорит, что репозиториев будет скорее всего много (например под каждый подпроект может быть 1-2 репозитория, но это подпроекты одного проекта!)
Именно так и будем делать, репозитории надо разделять, их будет много, для каждого сервиса нормально делать отдельный репозиторий, да будет сложнее ориентироваться, но в такой системе много преимуществ, это лучше, чем монолитная система, которая со временем превращается в кашу, в которой никто не может разобраться, только особо ценные сотрудники, чисто сеньоры с цветовой дифференциацией штанов. Будем связывать и технически и на уровне общения, управления и будет структурировано и понятно. Репозитории можно передавать между аккаунтами организациями, удалять и переименовывать.
Фактор пойман на ранних этапах, это не срочно, но логика есть: придёт (или уйдёт) ещё пара человек с репозиториями, и будет потешная перекрёстная возня с допусками и правами, между репозиториями, которые в целом подразумеваются под связную систему.
Да так что можно будет попробовать на некоторых репозиториях, посмотреть, по мере поступления задач. Личные аккаунты останутся и никуда не денутся. Некоторые репозитории легко передать (без автоматического деплоя), для передачи фкт поиска надо будет подготовиться и потратить несколько часов, перенастроить доступы, токены, и проверить, но это все решаемо.
Придумаем название, можно сделать и пробовать.
Github Packages неограниченно для публичных репозиториев. Это хранилище, сборок кода.
Получается, лимиты по размерам хранилища касаются только сборок и только в приватных репозиториях. То есть просто что-то загрузить можно в «любом» объёме? Поясню: у меня сейчас csv под наши новые библиотечные базы составляют порядка 2,5 Гб например.
Именно так и будем делать, репозитории надо разделять, их будет много, для каждого сервиса нормально делать отдельный репозиторий, да будет сложнее ориентироваться, но в такой системе много преимуществ, это лучше, чем монолитная система, которая со временем превращается в кашу, в которой никто не может разобраться, только особо ценные сотрудники, чисто сеньоры с цветовой дифференциацией штанов.
То что репозитории нужно разделять и что их будет много это нормально, речь в целом о том, чтобы это продумать: путаницу с одной большой кашей не получится решить путаницей с тысячей дробных репозиториев из разных аккаунтов. По сути нужно иметь возможность всем участникам открывать репозитории при необходимости, так чтобы эти репозитории сразу были доступны остальным участникам. Если вопрос такого рода кучности системы решается организацией, то →
Придумаем название, можно сделать и пробовать.
Да.
нам потребуется вычитывать речи, сверяя с оригиналом видео.
я уже стесняюсь напоминать о своей компьютерной безграмотности ) куда заходить и где редактировать?...
Получается, лимиты по размерам хранилища касаются только сборок и только в приватных репозиториях. То есть просто что-то загрузить можно в «любом» объёме?
Я не знаю, мне кажется, что хранилище для сборок это не тоже хранилище, что для кода репозитория. Сборки хранятся в 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/
Поизучаю этот вопрос.
куда заходить и где редактировать?...
Пока никуда, пока ещё только тестирую метод локально. Просто поскольку там очень большой объём работы по всем этапам, решил заранее описать проблему и узнать мнения товарищей, как что делать.
Сейчас посмотрите примеры фраз Зазнобина, оригинала, ссылку на фрагмент видео, и двух методов распознания. Какой из методов проще обработать по тексту, привести его в нормальный вид?
Оригинальный текст:
— Ну сколько ж вам лет то было? — Я поступил в Суворовское училище в пятидесятом году. — И тогда и видели, да? — Из Нижнего, ну из Горького, из Нижнего Новгорода, по очереди — Калининское училище, Горьковское, Тульское, возили на Парад, и я поскольку был в последней шеренге, я очень явственно видел его лицо.
Онлайн-сервис:
Ну что место было? Я поступил в Суворовское училище 50 году. И тогда и видели, да из Нижнего Ну из Горького и Нижнего Новгорода по очереди Калининской училища. Горьковская Тульской вазелин аппарат поскольку был последний шеренги. Я очень явственно видел в лицо.
Vosk + vosk-model-ru-0.42
ну сколько вам лет то было я поступил в суворовское училище пятидесятого года и тогда и видели да из нижнего ну из горького из нижнего ряда по очереди калининская училища горьковская тульская возили на аппарат и я поскольку был в последней шеренге я очень явственно видел его лицо
Это у нас 12 секунд видео. Всего у нас будет порядка миллиона секунд, то есть около 85 тысяч таких отрывков. Сколько подобных коротких примеров нужно сделать сейчас, чтобы составить более-менее картину предполагаемой сложности дальнейшей обработки всего материала? Вопрос насущный, поскольку выбирается «дорогой» метод обработки, требующий больших ресурсов.
Думаю, придется хранить такие файлы csv в другом месте, но надо почитать про Git LFS Сведения о Хранилище больших файлов Git
Возможно проще сделать отдельный статический репозиторий для csv?
По сути нужно иметь возможность всем участникам открывать репозитории при необходимости, так чтобы эти репозитории сразу были доступны остальным участникам.
Визуально это страница со всеми репозиториями проекта - организации с поиском по ним https://github.com/orgs/yiisoft/repositories
По управлению, появляются вкладки people, teamб и добавляя члена организации можно ему галочками выдать права на нужные или сразу на все репозитории в организации. Т.е. на всю организацию.
Я так понимаю, что в некоторой мере это решает. Выдавать права проще.
По управлению, появляются вкладки people, teamб и добавляя члена организации можно ему галочками выдать права на нужные или сразу на все репозитории в организации. Т.е. на всю организацию.
Пока что это наиболее логичный вариант.
Сколько подобных коротких примеров нужно сделать сейчас, чтобы составить более-менее картину предполагаемой сложности дальнейшей обработки всего материала? Вопрос насущный, поскольку выбирается «дорогой» метод обработки, требующий больших ресурсов.
наверно, это сильно зависит от качества звука, в приведённом видео звук ужасный, подобные проблемы возникнут во всех видео 90-х и начала 2000-х, где "вопросы из зала" вообще почти не разобрать
наверно, это сильно зависит от качества звука, в приведённом видео звук ужасный
Совершенно верно. Все системы автоматического распознавания очень чувствительны к шуму. Но можно сразу предсказать, что по этому параметру абсолютно все выступления Зазнобина на видео — шумные. Отличия только в фактическом уровне.
В принципе весь звук можно обработать специальными методами, так, чтобы по-максимуму избавиться от шума, перед подачей в систему. Но это дополнительный шаг, а обработать нужно огромное количество данных. Но это реально. Тогда нужно сначала протестировать предполагаемое улучшение качества распознавания на нескольких случайных отрезках. Вопрос в том, сколько их нужно взять для теста.
Возможно проще сделать отдельный статический репозиторий для 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)
![2023-06-09_17-28-03](https://github.com/audetv/fct-search/assets/10896447/e14d85be-cc9e-4423-a000-61cf970ebfbb)
Хотя с S3 возможно слишком заморочно, чтобы просто обмениваться файлами, проще обычный диск подключить. Так то s3 для хранения и выдачи файлов для систем удобен, для обычного пользования как диском, кажется не удобным. Для бэкапов, для статических файлов, которые надо раздавать с сайта, публично. Для картинок, например, для видео на сайт. Такое хранение в разы дешевле дискового хранения на сервере.
Типа диск? Яндекс, гугл, дропбокс?
Нет, я имел в виду тут, прямо на гитхабе. Репозиторий-файлохранилище для остальных проектов, метод поделиться файлами. Сейчас для теста гружу в свой приватный репозиторий 2 гигабайта, и ничего, пока загружается без предупреждений, поругался сначала на количество файлов более 100. На текущий момент загружено 600 Мб, и ничего.
Можно хранить на хостинге по s3 протоколу
Это уже системы для объёмных нагруженных проектов, но я пока только о файлохранилище подумал. В будущем обязательно, возможно даже в не столь дальнем, просто сейчас речь о более простом вопросе, условно «доступные объёмы на гитхабе».
проще обычный диск подключить
Я сделал гуглопочту на terratensor, предлагаю вам сделать яндекс-почту с тем же логином, таким образом будет в совокупности кой-какое место для разведения кроликов. Здесь есть начальный логотип, более крутые версии позже.
сделал гуглопочту на terratensor, предлагаю вам сделать яндекс-почту с тем же логином, таким образом будет в совокупности кой-какое место для разведения кроликов. Здесь есть начальный логотип, более крутые версии позже.
Зарегистрировал почту и добавил в организацию. https://github.com/organizations/terratensor/settings/billing Внизу Email recipients
Нет, я имел в виду тут, прямо на гитхабе. Репозиторий-файлохранилище для остальных проектов, метод поделиться файлами. Сейчас для теста гружу в свой приватный репозиторий 2 гигабайта, и ничего, пока загружается без предупреждений, поругался сначала на количество файлов более 100. На текущий момент загружено 600 Мб, и ничего.
До 1Гб рекомендованный размер и не более 5. Так что пока ничего. Посмотрим, если будет превышение квот и начнут присылать письма, будем на дисках хранить.
Зарегистрировал почту и добавил в организацию.
Супер.
До 1Гб рекомендованный размер и не более 5. Так что пока ничего. Посмотрим, если будет превышение квот и начнут присылать письма, будем на дисках хранить.
В персональном аккаунте даже в приватный репозиторий спокойно добавились 109 rar-файлов в сумме 2,12 Гб. Никакие actions и workflow не установлены, поэтому ничего не проверяется, просто загружается. Через какое-то время удалю, посмотрим, пришлют ли биллинг за квоты через месяц.
Получил текст всех выступлений Владимира Михайловича Зазнобина (150 видеозаписей) Отпарсил текст всех стенограмм Валерия Викторовича Пякина (500 видеозаписей)
В ближайшее время буду выкладывать оба архива, остались некоторые проверки и форматирование.
Имеет смысл открыть технологический issue по этому релизу, если мы будем изобретать велосипед для ссылок на ютуб с таймкодом? Или быть может сразу открыть репозиторий?
Имеет смысл открыть технологический issue по этому релизу, если мы будем изобретать велосипед для ссылок на ютуб с таймкодом? Или быть может сразу открыть репозиторий?
Надо подумать. Т.е. привязка текста ко времени есть? В этой задаче мне велосипед со ссылками на ютуб и тайм кодом видится как наиболее интересный. Я хочу его поизобретать. Скорее всего под это дело надо будет репозиторий открывать, но пока не понятно, поэтому мы позже туда перенесем технологические issue, а сейчас можем открыть этот issue и позже определим и перенесем.
Надо подумать. Т.е. привязка текста ко времени есть? В этой задаче мне велосипед со ссылками на ютуб и тайм кодом видится как наиболее интересный. Я хочу его поизобретать. Скорее всего под это дело надо будет репозиторий открывать, но пока не понятно, поэтому мы позже туда перенесем технологические 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 стенограмм, думаю их распознать тоже, однако это будет вариант как с Зазнобиным, с таймкодами, но текст неформатированный.
Опубликованы транскрипции для всех лекций Владимира Михайловича Зазнобина. Два формата — srt и txt.
Замеченные ошибки можно править прямо по месту.
Добавлены опубликованные на официальном сайте стенограммы выступлений Зазнобина. Формат docx.
Я так понимаю, в идеале надо расставить знаки препинания. Как бы это автоматизировать…
Начал думаю как поиск организовать, как собирать параграфы, и как в БД организовать привязку ко времени ролика.
В итоге Alpha Cephei Vosk использовали для распознавания?
Я так понимаю, в идеале надо расставить знаки препинания. Как бы это автоматизировать…
Пока ни малейшего представления. Не изучал вопрос даже. Я думаю, что это вообще на текущем этапе не нужно, чтобы найти собственно модули в видео, не требуется идеальный текст, подойдёт и «токенизированный» как здесь. Часто с ошибками и тд, но 80% точности лучше, чем 0% возможности поиска. Можно отправить так, и посмотреть, что будет искаться. А потом уже облагораживать.
В итоге Alpha Cephei Vosk использовали для распознавания?
Нет, вообще нет. Проблема со всеми системами подобного типа в том, что для массовой работы они требуют слишком большой подготовки материала и последующей обработки типа склеивания тысяч строк в один файл и тд. Много возни. Пока я это всё тестировал, возникло новое решение — в ютубе всем пользователям добавили возможность создавать автоматические субтитры для распознания, нужно только правильно оформить видео при загрузке. Я почистил аудио, экспортировал новые файлы с новой аудиодорожкой, и загрузил их себе в аккаунт в скрытом виде, поскольку у меня есть возможность загружать 100 видео в сутки. Далее они обрабатывались, потом загрузил следующие 50 видео, плюс видео Пякина, у которых нет стенограммы. Снова обработка. Потом выцеживание и сохранение двух версий текстов — ютуб отдаёт два варианта. И затем подтягивание нескольких видео по качеству звука ещё, поскольку несколько роликов упорно не хотели распознаваться, но и они были побеждены.
Теперь думаю, как загружать 500 docx стенограмм Пякина. Архивом, видимо.
Пока ни малейшего представления. Не изучал вопрос даже. Я думаю, что это вообще на текущем этапе не нужно, чтобы найти собственно модули в видео, не требуется идеальный текст, подойдёт и «токенизированный» как здесь. Часто с ошибками и тд, но 80% точности лучше, чем 0% возможности поиска. Можно отправить так, и посмотреть, что будет искаться. А потом уже облагораживать.
Да, с этим полностью согласен, что возможность искать хоть как-то лучше чем 0. И как раз думал об этом, а нужно ли для поиска, мантикоре точно все равно на знаки препинания. Она их не токенезирует. Тогда надо подумать как результаты выдачи оформить, может прямо в таком виде и размещать с метками времени и ссылками на ролики.
Нет, вообще нет. Проблема со всеми системами подобного типа в том, что для массовой работы они требуют слишком большой подготовки материала и последующей обработки типа склеивания тысяч строк в один файл и тд. Много возни.
ага, знаю про автоматические субтитры на ютубе, помню сталкивался пару лет назад, и забыл, но часто пользуюсь, когда ролики технические смотрю, включаю, конечно не всегда адекватные субтитры, но лучше чем 0.
Интересно, появилась мысль посмотреть у гугла, есть ли возможность их голосовым ассистентом пользоваться в режиме разработчика. Я не пользовался гугл дев панелью, для разработчика, но по идее они должны отдавать в ютуб что-то из своих технологий, вряд ли там что-то совсем закрытое. Но это так мысль, факультативная.
а нужно ли для поиска, мантикоре точно все равно на знаки препинания. Она их не токенезирует. Тогда надо подумать как результаты выдачи оформить, может прямо в таком виде и размещать с метками времени и ссылками на ролики
Склоняюсь ровно к такому сценарию, как минимум пока что. Попользуемся, поймём в чём неудобство и что следует улучшить. Может это не нужно никому? Мы не знаем. Выдать и смотреть.
ага, знаю про автоматические субтитры на ютубе, помню сталкивался пару лет назад, и забыл, но часто пользуюсь, когда ролики технические смотрю, включаю, конечно не всегда адекватные субтитры, но лучше чем 0.
Там две основных проблемы — нужно во-первых чтобы владелец канала оформил видео, в настройках указал язык и таким образом запустил создание субтитров. То есть это нереально сделать зрителю для уже выгруженного видео, остаётся уповать на автора. Во-вторых, не для всех видео можно получить субтитры, и особенно это касается старых, длинных и с плохим качеством звука — все три критерия в полный рост для половины видео Владимира Михайловича. Ну и наконец, эта система постоянно улучшается, например я загружал два одинаковых ролика с разницей две недели, и у них разные субтитры. То есть то, что было генерировано годы назад, сегодня уже может быть неактуальным в сравнении.
Интересно, появилась мысль посмотреть у гугла, есть ли возможность их голосовым ассистентом пользоваться в режиме разработчика. Я не пользовался гугл дев панелью, для разработчика, но по идее они должны отдавать в ютуб что-то из своих технологий, вряд ли там что-то совсем закрытое. Но это так мысль, факультативная.
Тоже не изучал, но есть. У яндекса тоже есть что-то на эту тему субтитров-переводов роликов. Не изучал. Тут основной критерий был массовое пакетное оформление в нормальный формат. 150 видео это очень большой кусок времени, если брать методы, которые не позволяют батч-процессы в больших чанках. Ютуб в этом плане идеален, спокойно сожрал видео с 96 кб/сек аудиодорогой или длиной 6,5 часов.
Приветствую. Объясните что по Зазнобину облагораживать? Посмотрел файл тхт и там по отрывкам каждые 5 секунд. Надо это в нормальный текст переписать? И заодно сравнить с первоисточником?
Приветствую. Да, текст разбит на строки с временной отметкой — это нормально. Метки можно не трогать, они нам нужны. С помощью этих временных отметок мы сделаем ссылки на ролики в ютубе. Идея такова, что пользователь в поиске набирает нужную фразу и получает список результатов (строк) со ссылками на оригинал ролика. По этой ссылке можно перейти сразу к нужному фрагменту видео, например ищем: «Стругацкие»
Зазнобин В М Защита будущего 19 июня 2002 года.txt
43:53
Стругацкие увидели будущее
и переходим по ссылке
Как будет оформлены результаты выдачи и как и где будет ссылка я еще не знаю. не придумали, это в процессе.
Это что касается меток.
По поводу облагородить текст, смотрим далее по тому же файлу, и вот как распознал ИИ:
45:51
что же такого произошло но вы все знаете что Сталина многие дети
45:59
и наша вся Демократическая прессаном говорит что нет разницы вопрос
46:07
кто там более хитрый Ну просто
46:12
Но если почитать работы
46:20
вернуть Если Майнкрафт пожалуйста сейчас можно получить где угодно то работы
46:28
Сталина достать не так-то просто Но дело не только Сталин обвиняли в том
UPD: ссылка
Половина фраз из отрывка не распознана, ну и майнкрафт…
Получается, что надо знать тексты, хотя я эту лекцию Зазнобина не смотрел, с текстом не знаком, но за этот отрывок взгляд зацепился. Далее видимо надо идти в источник, сравнивать и править. Сколько таких фрагментов будет мы не знаем. Возможно имеет смыл посмотреть выборочно что-то с чем знакомы и оценить и осмыслить и предложить варианты. Исправлять тексты можно прямо в тут в гит репозитории. При необходимости инструкцию напишем.
Ну, и знаки препинания, могут напрягать некоторых. Но для механизма поиска эти знаки не имеют значения.
И конечно, мы можем разместить и проиндексировать тексты как есть, без исправлений, это все равно будет больше, чем 0.
Мысли?
Посмотрел файл тхт и там по отрывкам каждые 5 секунд. Надо это в нормальный текст переписать? И заодно сравнить с первоисточником?
Метки времени игнорируем, как будто их нет, оставляем размеченные по времени строки. Нужно проверить, что за «слова» распознала там машина — найти пропуски слов на слух и убрать явную чушь. Заполнить пропущенные слова и фразы. Убрать дичь типа конструкций «в на как если» (да, прямо четыре таких слова подряд могут быть из-за пропусков). Расставить запятые и точки в предложениях для удобства чтения человека.
Для теста можно сделать так — взять любое видео, для которого не существует вот такой «официальной» стенограммы, и сличить с автоматическим текстом. Открыть файл в блокноте, и смотреть видео, делая исправления в тексте прямо по ходу просмотра. Просто ощутить, что это за тип работы, и реально ли её выполнять в нормальном рабочем режиме без напряжения.
Половина фраз из отрывка не распознана, ну и майнкрафт…
Майнкрафт в тексте Зазнобина явный признак Раммштайна. Майн. Крафт.
Возможно имеет смыл посмотреть выборочно что-то с чем знакомы и оценить и осмыслить и предложить варианты.
Да, это лучше всего — оценить самому что получилось и придумать как это можно решить.
Ну, и знаки препинания, могут напрягать некоторых. Но для механизма поиска эти знаки не имеют значения.
Если например выводить текст без меток времени, убрав их в техническую часть ссылки, то будет обычный текст с ссылками, без разбиения на строки-фразы — его лучше воспринимать человеку.
Если например выводить текст без меток времени, убрав их в техническую часть ссылки, то будет обычный текст с ссылками, без разбиения на строки-фразы — его лучше воспринимать человеку.
Да, согласен. А вариант с меткой времени, вот в прямо в таком виде как сейчас, я могу читать, без знаков, но если убираю метки, то сразу некомфортно, без запятых и точек. вот такая отстройка мозга)
Майнкрафт в тексте Зазнобина явный признак Раммштайна. Майн. Крафт.
Ага. Ещё показалось интересным и обратил внимание, в авто субтитрах этого ролика на ютубе этот фрагмент более качественно распознан, но по факту все равно «дичь». Раммштайн. мальком. мой комп.
Под текстом видео ссылка: …ещё. Расшифровка видео. Кнопка «Показать текст видео».
45:52
такого произошло в 19 лет ну вы все знаете что сталина многие
45:58
сравнить гитлер и наши вся демократические пресса во главе с
46:03
суворовым резном говорит что нет разницы вопрос только то там более хитрый ну
46:09
просто стань оказался хитрее но если почитать работы сталин его речи
46:15
выступление и мальком то вы найдете ничего общего
46:20
1 если мой комп пожалуйста сейчас можно
Ещё показалось интересным и обратил внимание, в авто субтитрах этого ролика на ютубе этот фрагмент более качественно распознан, но по факту все равно «дичь». Раммштайн. мальком. мой комп.
Под текстом видео ссылка: …ещё. Расшифровка видео. Кнопка «Показать текст видео».
Это текстовые файлы txt, в них выложены такие распознания. Формат srt из настроек видео, а txt скопирован из распознания в самом видео. Два разных формата.
Добавлены 471 docx файл со стенограммами Валерия Викторовича. 29 файлов транскрипций в формате srt 29 файлов транскрипций в формате txt https://github.com/terratensor/transcript/tree/main/pyakin
Надо будет продумать схему добавления еженедельной стенограммы.
Пякин — все стенограммы В–О в наличии (а также комментарии под выпусками, которые не попадают в текущий поиск). Зазнобин — распознать в текст все видеозаписи с сайта https://zaznob.in/ и добавить в источники поиска. Ефимов, Величко, Петров — также к рассмотрению на будущее. Возможно добавить и других деятелей.