MediaChef Видео в SRT
Сделать субтитры SRT из видео
Перетащите видео в MediaChef, выберите «Субтитры к видео (SRT)», оставьте модель small и язык «авто» и запустите. Рядом с видео появится файл .srt — уже с таймингами. Всё считается на вашей машине: речь не уходит с диска, а после того как модель скачана, рецепт работает с выключенной сетью. На ноутбуке с M5 две минуты сорок три секунды речи заняли 6,2 секунды на модели по умолчанию — примерно в 26 раз быстрее реального времени — и дали 73 реплики в среднем по 39 знаков, то есть короткие настолько, что их успеваешь прочитать.
- Что нужно
- MediaChef 0.8.5 плюс разовая загрузка модели
- Модель по умолчанию
- small — 488 МБ, качается один раз и остаётся
- Скорость
- ≈26× реального времени на модели по умолчанию (замер, M5)
- Работает офлайн
- Да, после того как модель легла на диск
- Форматы
- SRT, VTT, обычный TXT и JSON — под каждый свой рецепт
- Что получится
- clip.subs.srt рядом с видео, само видео не тронуто
Бесплатно и с открытым кодом — код на GitHub Все файлы и заметки о релизе
Как сделать субтитры к видео
-
Скачайте MediaChef
Один файл под macOS, Windows или Linux. И FFmpeg, и запускалка Whisper едут внутри загрузки — отдельно ставить нечего и в PATH прописывать нечего.
-
Один раз скачайте модель
Первая расшифровка попросит речевую модель. По умолчанию это small на 488 МБ, на ней и сделаны все замеры ниже; tiny весит 78 МБ, base — 148 МБ, large-v3-turbo — 1,62 ГБ. Качается один раз, остаётся на диске, и дальше рецепт к сети не обращается.
-
Бросьте видео и выберите рецепт
«Субтитры к видео (SRT)» берёт видео напрямую — вытаскивать звук заранее не нужно. MediaChef сам декодирует дорожку в моно 16 кГц, которое требует Whisper, во временной папке, которую вы никогда не увидите.
-
Запустите и откройте .srt
Файл ляжет рядом с видео под именем clip.subs.srt — с нумерованными репликами и таймкодами. Плееры, монтажки и видеоплощадки читают его напрямую, а так как это обычный текст, имя или термин можно поправить в любом редакторе.
Какую модель брать
Четыре модели, одна и та же речь длиной 2 минуты 43 секунды, одна и та же машина — ноутбук на M5 с 16 ГБ. Каждую модель сначала прогревали, в зачёт шёл лучший из двух прогонов.
| Модель | Загрузка | Время | К реальному времени | Слов мимо |
|---|---|---|---|---|
| tiny | 78 МБ | 2,1 с | ×78 | 5 из 540 |
| base | 148 МБ | 2,6 с | ×63 | 3 из 540 |
| small — по умолчанию | 488 МБ | 6,2 с | ×26 | 0 из 540 |
| large-v3-turbo | 1,62 ГБ | 11,5 с | ×14 | 1 из 540 |
Последний столбец читайте с поправкой: тестовое аудио — синтезированный голос, читающий заранее написанный текст, без акцента, без фонового шума и без перебивок. Поэтому здесь почти безупречна даже самая маленькая модель, и на запись реальной планёрки это не похоже — на трудном звуке разрыв между моделями заметно больше. А вот столбец со временем переносится на вашу задачу напрямую. И ещё одно, что скрывает голое сравнение: почти все расхождения — это числа, записанные цифрами вместо слов; large-v3-turbo писал «70», «10», «50», «30» там, где в тексте они были прописью. Это оформление, а не ослышка.
Какой длины выходят реплики
Формально верный субтитр всё равно бесполезен, если выкидывает на экран двадцать слов разом. Одну и ту же речь модели режут очень по-разному — замер с того же прогона.
| Модель | Реплик | Средняя длительность | Знаков в среднем | Самая длинная |
|---|---|---|---|---|
| tiny | 35 | 4,7 с | 83 | 97 знаков |
| base | 35 | 4,7 с | 83 | 100 знаков |
| small — по умолчанию | 73 | 2,2 с | 39 | 58 знаков |
| large-v3-turbo | 30 | 5,4 с | 97 | 112 знаков |
Общепринятая вещательная норма — примерно 42 знака в строке на две строки, то есть около 84 знаков на экране одновременно. По этой мерке из четырёх спокойно укладывается только small: 39 знаков в среднем и 58 в самой длинной реплике, тогда как large-v3-turbo выходит за предел уже на типовой. То есть модель по умолчанию — не только сбалансированный выбор по точности, она ещё и режет речь на самые читаемые куски.
SRT, VTT, обычный текст или JSON
Одна и та же расшифровка, записанная четырьмя способами. Размеры — с той же речи в 2 минуты 43 секунды, так что сравнивать их можно напрямую.
| Формат | Размер | Что внутри | Когда брать |
|---|---|---|---|
| SRT | 5,5 КБ | Нумерованные реплики, тайминги через запятую: 00:00:00,000 | Почти всегда. Его понимают плееры, монтажки и площадки |
| VTT | 5,3 КБ | Заголовок WEBVTT, тайминги через точку: 00:00:00.000 | Субтитры для веб-плеера, дорожка в браузере |
| TXT | 3,0 КБ | Сплошной текст, таймингов нет вовсе | Нужны слова, а не субтитры |
| JSON | 15,2 КБ | Все реплики плюс модель и параметры прогона | Читать это будет программа, а не человек |
SRT и VTT различаются в основном знаком между секундами и миллисекундами, так что если плеер отказался от одного, второй — это смена рецепта, а не новая расшифровка. JSON примерно втрое тяжелее SRT, потому что несёт рядом с текстом ещё и служебные данные прогона.
Какой рецепт под какую задачу
Субтитры — это не один рецепт, а несколько, и выбор правильного экономит шаг. Все они лежат в каталоге из 17 рецептов.
| Что есть | Что нужно | Рецепт |
|---|---|---|
| Видео | Субтитры рядом с ним | Субтитры к видео (SRT) |
| Аудиофайл | Субтитры | Аудио в субтитры SRT |
| Речь на другом языке | Английские субтитры за один проход | Перевод речи в английские субтитры |
| Что угодно с речью | Только текст | Аудио в текст |
| Что угодно с речью | Дорожка для веб-плеера | Аудио в субтитры WebVTT |
Рецепт перевода идёт от иностранной речи сразу к английским субтитрам с таймингами, за один проход, — расшифровывать, а потом переводить не нужно. Но целевой язык только английский: это ограничение модели, а не приложения.
Зачем делать субтитры у себя на машине
Речь не уходит с диска. Записи планёрок, интервью и звонков — самое чувствительное, с чем большинство вообще имеет дело, а онлайновая расшифровка по определению означает копию этого разговора на чужом сервере. Здесь про загрузку думать не надо: её нет.
Никакой оплаты за минуту. Сервисы расшифровки считают деньги по минутам аудио, и длинный архив превращается в настоящий счёт. Модель качается один раз, и дальше двухчасовая запись стоит столько же, сколько двухминутная: нисколько.
Работает с выключенной сетью. Как только файл модели лёг на диск, рецепт к интернету не обращается вообще. Он работает в самолёте, на закрытой машине и в комнате, где вайфай — самая ненадёжная из присутствующих вещей.
Нет предела по длине. Бесплатные веб-расшифровщики обычно режут по нескольким минутам на файл — ровно тогда, когда запись стоит расшифровывать именно потому, что она длинная. Здесь предела нет.
Хоть целая папка сразу. Бросьте каталог записей: очередь пройдёт по ним по одной и скажет, куда лёг каждый файл субтитров.
Когда это не тот инструмент
Рецепт пишет файл субтитров. Это уже, чем «наложить субтитры на видео», и разница важна вот в каких случаях.
-
Нужно вжечь субтитры в картинку.
Здесь получается отдельный .srt, который плеер подгружает рядом с видео. Впечатать текст прямо в кадры — другая операция: она перекодирует видео, и после неё слова уже не выключить и не поправить.
-
Нужна вещательная точность.
Даже на чистом звуке из замеров выше модели спотыкались на нескольких словах, а живые записи труднее. Всё, что публикуется под требования доступности, перед выпуском вычитывает человек — чем бы ни был сделан черновик.
-
Звук действительно плохой.
Плотные перебивки, запись комнаты на телефон или музыка громче голоса положат все четыре модели. Починить сначала звук — хотя бы вытащить дорожку почище — даст больше, чем переход на модель побольше.
-
Нужен перевод не на английский.
Whisper переводит на английский и только на него. Для любого другого языка сначала расшифруйте в оригинале, а получившийся текст переведите инструментом, который для этого сделан.
Вопросы
Это бесплатно?
Да, целиком. MediaChef открыт под GPL-3.0: платной версии нет, поминутной оплаты нет, ограничения на длину файла нет. Модели тоже качаются бесплатно. Текущая версия — 0.8.5.
Моё видео куда-нибудь загружается?
Нет. Речь обрабатывает файл модели, лежащий на вашем же диске. Через сеть проходит только разовая загрузка самой модели, а дальше рецепт работает и с выключенным интернетом.
Сколько это занимает времени?
Примерно в 26 раз быстрее реального времени на модели по умолчанию: мы намеряли 6,2 секунды на 2 минуты 43 секунды речи, ноутбук на M5. По этому отношению часовая запись укладывается в пару минут. На том же аудио tiny дала ×78, а large-v3-turbo — ×14.
Какую модель выбрать?
Начните с small, она стоит по умолчанию. В наших замерах она не ошиблась в тестовом аудио ни в одном слове и дала самые читаемые реплики — 39 знаков в среднем против 97 у large-v3-turbo. Поднимайтесь выше, только если звук трудный; спускайтесь до tiny или base, если нужен черновик за пару секунд.
Сколько весит модель?
78 МБ у tiny, 148 МБ у base, 488 МБ у small, 1,62 ГБ у large-v3-turbo. Загрузка разовая. Дальше файл лежит на диске, и каждый следующий прогон берёт его молча.
Нужно ли указывать язык речи?
Нет. Язык по умолчанию стоит на «авто», и модель определяет его сама по звуку. Указать явно всё-таки можно, и это стоит делать, когда запись открывается парой фраз на другом языке.
Может ли она перевести субтитры на английский?
Да, рецептом «Перевод речи в английские субтитры»: на входе иностранная речь, на выходе английский SRT с таймингами, за один проход, а не «сначала расшифровать, потом перевести». Английский — единственный язык перевода, который поддерживает модель.
Чем SRT отличается от VTT?
В основном знаками в таймкодах: SRT пишет 00:00:00,000 через запятую и нумерует реплики, VTT пишет 00:00:00.000 через точку и начинается строкой WEBVTT. SRT ждут плееры и монтажки, VTT нужен веб-плееру для его собственной дорожки субтитров. Это разные рецепты, так что смена формата — повторный прогон, а не переписывание файла.
Субтитры можно потом править?
Да, .srt — обычный текст. Откройте в любом редакторе и поправьте имя, термин или тайминг. Это и есть нормальный порядок работы: девяносто с чем-то процентов делает модель, остальное вы дописываете руками.
Почему у меня слишком длинные реплики?
Потому что модель сама решает, где резать, и чем крупнее модель, тем реже она это делает. Мы намеряли 39 знаков на реплику у small против 97 у large-v3-turbo на одном и том же аудио. Если реплики расползаются, переход обратно на small обычно это чинит — и на чистой речи ничего не стоит в точности.
Различает ли она говорящих?
Нет. Whisper пишет, что было сказано, а не кем. Если нужны пометки «Говорящий 1 / Говорящий 2», их придётся расставить руками или взять инструмент, сделанный именно для этого.
Что будет, если речи в файле нет?
Прогон остановится и скажет, что ничего разборчивого не услышал, а не запишет молча пустой файл. Тишина субтитров не даёт — так задумано.
Работает ли на Windows и Linux?
На всех трёх платформах. Речь везде считается на процессоре, а на Apple Silicon дополнительно задействуется видеоядро — отсюда и быстрые цифры выше. Тот же рецепт на скромном ноутбуке с Windows будет медленнее, но всё равно быстрее, чем слушать запись целиком.
Можно расшифровать несколько файлов разом?
Да. Бросьте целую папку, добавьте рецепт — очередь пройдёт по ним один за другим. Каждый файл субтитров пишется рядом со своим исходником.
Само видео меняется?
Нет. Рядом пишется отдельный .srt — clip.subs.srt, — а видео не изменяется, не переименовывается и не перекодируется. Картинки этот рецепт не касается вообще.
Сделайте субтитры к этому видео
MediaChef 0.8.5 — бесплатно, открытый код, macOS · Windows · Linux.
Бесплатно и с открытым кодом — код на GitHub Все файлы и заметки о релизе
MediaChef — молодой проект: сборки пока без подписи Apple и Microsoft, поэтому первый запуск попросит подтверждение — простая инструкция лежит внутри каждого архива.
Что-то не работает или чего-то не хватает? Напишите: hello@mediachef.app