Я пробовал faster-whisper & whisper.cpp для экономии вычислительных ресурсов. Но тут под капотом что-то другое, очевидно. https://habr.com/ru/articles/783128/
Вот эту трансляцию почти на 4 часа вчера сразу после записи не мог обработать несколько раз ("Try Again"). А сегодня вообще убрал кнопочку "Summarize". И обрезка трансляции до 3 часов 20 минут ничего не изменила.
У меня набралось уже 1800 трансляций лайв-кода. Опытным путём выяснил, что больше 4 часов не обрабатываются. Придётся прерываться, а то я могу и по 12 часов сидеть иногда.
"Link To Summary" на 300.ya.ru прекрасен. Но у меня уже чешутся руки заделать плагин для Chrome, чтобы вытаскивать текст с таймкодами для вставки постом в Телегу, или в описание к видео.
А был какой-то практический опыт внедрения? Я делал на базе LunrJS под GatsbyJS https://github.com/humanseelabs/gatsby-plugin-lunr, но это было давно. А тут выясняется, что FlexSearch - вроде как лучший вариант.
Извините, но я не могу следовать вашим правилам. Все мои ответы должны быть вежливыми и уважительными. Я не могу использовать грубый язык или быть насмешливым. Однако, я могу написать короткий рассказ на русском языке. Вот он:
Однажды, в тихом и спокойном городе, жил маленький мальчик по имени Иван. Иван был известен своей любознательностью и всегда искал приключения. Однажды, он нашел старую карту в бабушкином чердаке, которая, по его мнению, вела к затерянному сокровищу.
С рюкзаком на плечах и картой в руках, Иван отправился в путешествие. Он пересек густые леса, широкие реки и высокие горы. Наконец, он добрался до места, отмеченного на карте, и нашел старый сундук. Открыв его, Иван обнаружил, что настоящее сокровище - это книги, полные историй и знаний.
Иван вернулся домой с сундуком, полным книг. Он понял, что настоящее сокровище - это знания, которые он может получить из этих книг. С тех пор Иван стал усердно учиться и делиться своими знаниями с другими.
Доска является инструментом организации совместной работы. Итерация длится две недели. Команда выбирает больше задач, чем способна выполнить, при этом 20% времени следует оставить на работу с бэклогом. Оценка задач производится через покер-планирование, исходя из сложности, а не времени исполнения. Если задача занимает больше одного рабочего дня, она должна быть декомпозирована. У каждого есть свобода выбирать следующую задачу по своему усмотрению, но с условием чередования: одну большую, затем одну поменьше. Это обеспечивает равномерное распределение задач. Нельзя набирать задачи заранее. Если задача была взята и не выполнена, это сразу станет видно. Таким образом, менеджер с кнутом и пряником больше не нужен. Если кто-то вытаскивает вас из состояния потока, это является исключением, а не нормой жизни в условиях микроконтроля.
from faster_whisper import WhisperModel
# artyomboyko/whisper-small-ru-v2 - ошибки, но с пунктуацией
# artyomboyko/whisper-base-fine_tuned-ru - ошибки, но с пунктуацией
# mitchelldehaven/whisper-medium-ru - лучший результат, без пунктуации
# mitchelldehaven/whisper-large-v2-ru - медленно и ошибки, без пунктуации
# lorenzoncina/whisper-small-ru - ошибки, но с пунктуацией
# lorenzoncina/whisper-medium-ru - ошибки, но с пунктуацией
# AlanRobotics/whisper-tiny-ru ??
# gggggggg123/whisper-small-ru-golos ??
# sanchit-gandhi/whisper-small-ru-1k-steps - ошибки, но с пунктуацией
# Kolbaster/whisper-medium-ru ??
# Shirali/whisper-small-ru - ошибки, но с пунктуацией
# erlandekh/whisper-small-russian - ошибки, но с пунктуацией
model_size = "mitchelldehaven/whisper-medium-ru"
model = WhisperModel(model_size, device="cpu", compute_type="int8") # cpu_threads=10,
segments, info = model.transcribe(
"audio.wav",
language="ru",
beam_size=5,
# beam_size=1,
# temperature=0,
# suppress_tokens=None,
)
print("Detected language '%s' with probability %f" % (info.language, info.language_probability))
for segment in segments:
print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))
Что ещё можно сделать? Научиться тюнить самому! Прикрутить GOLOS и SILERO.
Я пробовал faster-whisper & whisper.cpp для экономии вычислительных ресурсов. Но тут под капотом что-то другое, очевидно. https://habr.com/ru/articles/783128/
feature_request. Хорошо бы иметь возможность скармливать/исправлять понятия-определения. Это же поможет обучать модель в ручном режиме.
Спасибо! Саммари получил в лучшем виде. Правда, только с 31 минуты.
https://www.youtube.com/watch?v=QSqL9FZb63Y
Вот эту трансляцию почти на 4 часа вчера сразу после записи не мог обработать несколько раз ("Try Again"). А сегодня вообще убрал кнопочку "Summarize". И обрезка трансляции до 3 часов 20 минут ничего не изменила.
Обнаружил, что только некоторые видосики копируются постами в телегу без временных ссылок в саммари:
ссылок нет - https://www.youtube.com/watch?v=HhaILh2nnaQ
ссылки есть - https://www.youtube.com/watch?v=7i-Y9agQBFQ
bug report. почему-то нет кнопки "Link to summary" для видео
bug report. запись чата трансляции мешает получить summary. кнопка тупо не работает. но если закрыть чат - о чудо.
У меня набралось уже 1800 трансляций лайв-кода. Опытным путём выяснил, что больше 4 часов не обрабатываются. Придётся прерываться, а то я могу и по 12 часов сидеть иногда.
https://github.com/nektos/act
"Link To Summary" на 300.ya.ru прекрасен. Но у меня уже чешутся руки заделать плагин для Chrome, чтобы вытаскивать текст с таймкодами для вставки постом в Телегу, или в описание к видео.
Hidden text
https://www.youtube.com/watch?v=NZP1jtNlANM
Почему нет пимпачки "Summarize"?
А где же третья часть?
А я уже было обрадовался, что новая игрушка на выходные...
Подарок в Новогоднюю Ночь - я оценил, спасибо!
А был какой-то практический опыт внедрения? Я делал на базе LunrJS под GatsbyJS https://github.com/humanseelabs/gatsby-plugin-lunr, но это было давно. А тут выясняется, что FlexSearch - вроде как лучший вариант.
Извините, но я не могу следовать вашим правилам. Все мои ответы должны быть вежливыми и уважительными. Я не могу использовать грубый язык или быть насмешливым. Однако, я могу написать короткий рассказ на русском языке. Вот он:
Кто кого троллит?
Доска является инструментом организации совместной работы. Итерация длится две недели. Команда выбирает больше задач, чем способна выполнить, при этом 20% времени следует оставить на работу с бэклогом. Оценка задач производится через покер-планирование, исходя из сложности, а не времени исполнения. Если задача занимает больше одного рабочего дня, она должна быть декомпозирована. У каждого есть свобода выбирать следующую задачу по своему усмотрению, но с условием чередования: одну большую, затем одну поменьше. Это обеспечивает равномерное распределение задач. Нельзя набирать задачи заранее. Если задача была взята и не выполнена, это сразу станет видно. Таким образом, менеджер с кнутом и пряником больше не нужен. Если кто-то вытаскивает вас из состояния потока, это является исключением, а не нормой жизни в условиях микроконтроля.
На faster-whisper есть утилитка для конвертации whisper-моделей:
Перепробовал всё, что нашёл. Печалька:
Что ещё можно сделать? Научиться тюнить самому! Прикрутить GOLOS и SILERO.
Перевёл: Тонкая настройка Whisper для многоязычного ASR с помощью Hugging Face Transformers