Программа для автоматического создания субтитров с использованием речи в текст?

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

  1. установить правильный старт / стоп каждого отдельного субтитра
  2. создавать рудиментарные текстовые субтитры (используя своего рода речь в текст)

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

Youtube имеет вышеуказанные функции (создает элементарные текстовые субтитры в правильное время, используя речь в текст). Однако я бы не стал загружать видео на Youtube только для того, чтобы получить мои субтитры. Можно ли эффективно делать субтитры в Ubuntu?

Обновление: я планирую использовать только субтитры.srt, и мне не нужно жестко их кодировать на видео. Мое самое большое требование - чтобы программа автоматически находила старт / стоп для каждого предложения, чтобы я написал текст в нем.

Обновление № 2: Существует программное обеспечение для преобразования речи в текст в Linux с пакетом CMU Sphinx. Можно использовать CMU Sphinx с программой субтитров в соответствии с http://sourceforge.net/projects/cmusphinx/forums/forum/5471/topic/3949891 Кроме того, один инструмент субтитров знает об этой функции CMU Sphinx, http://groups.google.com/group/universal-subtitles-testing/browse_thread/thread/613361ffb921b43b (веб-инструмент), однако в последнем исходном коде нет ссылки на то, что они добавили CMU Sphinx. В квесте продолжается поиск программы, которая использует CMU Sphinx для рудиментарной речи в текст (которая также установит правильные временные параметры), как это уже делает Youtube.

8 ответов

Решение

Я использовал Aegisub на Windows несколько лет назад, и был очень доволен этим. По-видимому, это доступно для Linux. Это довольно понятно.

Aegisub создает только файл субтитров, например файл.srt. Чтобы объединить видео и субтитры для создания жестко запрограммированных субтитров, вам все равно нужно использовать вторую программу.
В Windows я использовал VirtualDub, но он недоступен для Linux. Вы можете найти подходящую программу в Википедии.

Есть и другие редакторы субтитров

Обновить:
Я не помню, чтобы у Aegisub была функция автоматического задания начала и конца произносимого предложения в файле субтитров. И я не вижу упоминания о такой функции на сайте. Однако с (сочетаниями клавиш) довольно легко установить это время вручную.

Есть ли какая-нибудь программа, которая имеет такую ​​функцию (в любой ОС)?

Для тех, кто соглашается временно загрузить видео на YouTube (обязательно для выбора языка видео), чтобы получить его субтитры (субтитры, текст): можно извлечь/загрузить его с помощью youtube-dl (или yt-dlp):

      youtube-dl --write-auto-sub \  # Write automatically generated subtitle file (YouTube only)
  --write-sub \                # Write subtitle file
  --sub-lang en,de,es \        # Languages of the subtitles to download (optional) separated by commas, use --list- subs for available language tags
  --convert-subs srt \         # Convert the subtitles to other format (currently supported: srt|ass|vtt|lrc)
  -o "~/%(uploader)s/%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s" \  # OUTPUT TEMPLATE
  --skip-download \            # Do not download the video
  --ignore-errors vidURLorID   # Continue on download errors, for example to skip unavailable videos in a playlist

В одну строку и упрощенно:

      youtube-dl --write-auto-sub --write-sub --sub-lang en --convert-subs srt --skip-download vidURLorID

Если преобразование не сработало, конвертируйте с помощью FFmpeg:

      ffmpeg -i myTitle.en.vtt output.srt

Чтобы преобразовать из srt в txt:

      sed -r -e 's/^\xef\xbb\xbf//' -e 's/\r//' -e 's/^[0-9]*$//' -e '/^[0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]{3} --> [0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]{3}$/d' -e 's/^\s*$//' -e '/^$/d;s/<[^>]*>//g' output.srt | uniq > output.txt

Связанный ответ .

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

Autosub - это утилита для автоматического распознавания речи и генерации субтитров. Он принимает видео или аудиофайл в качестве входных данных, выполняет обнаружение голосовой активности для поиска речевых областей, делает параллельные запросы к Google Web Speech API для генерации транскрипций для этих регионов, (необязательно) переводит их на другой язык и, наконец, сохраняет полученные результаты. субтитры к диску.

https://github.com/agermanidis/autosub/

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

Поэтому я использую альтернативу

  1. Загрузите видео на Youtube (например, в частном порядке) и используйте встроенную функцию для автоматического создания элементарных субтитров.

Затем,

  1. Добавьте видео на http://www.universalsubtitles.org/ и создайте вручную временные рамки для каждого предложения, если не работает автоматический способ в Youtube, или предложения пропадают.
  2. Используйте субтитры GNOME (находятся в Центре программного обеспечения), чтобы очистить субтитры и исправить время.

Мне лично нравятся субтитры Gnome, они доступны в репозиториях.

sudo apt-get install gnome-subtitles

Внутри видеоредактора Kdenlive, в верхней панели > проект > субтитры > «Распознавание речи». Сначала необходимо загрузить языковой пакет с https://alphacephei.com/vosk/models , в kdenlive перейдите в «Настройки» > «Настроить kdenlive» > «Речь в текст».

Для KDE хорошим редактором субтитров является subtitlecomposer. Установите его с помощью команды

sudo apt-get install subtitlecomposer

или используя ссылку subtitlecomposer Установить субтитркомпозитор

Хорошо, нашел какой-то инструмент, который выглядит красиво и похоже на мастерскую субтитров - редактор субтитров (apt-get install subtitleeditor).

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

Другие вопросы по тегам