Как стать автором
Обновить

Создание двуязычных субтитров к видео, распознавание и перевод речи

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров2.1K
Всего голосов 4: ↑4 и ↓0+6
Комментарии10

Комментарии 10

сложно для 2024 года.

Я тут накидывал себе скриптик для баша, который делает следующее:
Берёт ссылку на видео.

Оправляет на бекенд, где нейройнка берёт звуковую дорожку и делает переозвучку.

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

Через ffmpeg я приклеиваю новую дорожку.

Как итог, за пару часов обработалось под полтерабайта видосов в автоматическом режие.

Бекенд умеет делать не только звуковую дорожку, но и самы по ней. Значит мне надо отправить видео, получить два файла сабов и приклеить их через ffmpeg, параллельно разукрасив и спозиционировав на экране.

Собственно тот же скрипт с этим спраится, добавится 1 строчка. А дальше режь как хочешь готовое видео

на бекенд, где нейройнка берёт звуковую дорожку и делает переозвучку

Где-то можно ознакомится со стеком и/или с особенностями реализации?

сложно для 2024 года.

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

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

https://www.assemblyai.com/

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

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

Я ввел свою почту. Попросили пароль. Набрал случайный код (или им нужен пароль от почты?). Написали, что не могут создать аккаунт, мол, какая-то ошибка. Я так понял, что они не позволяют создать новую учетную запись, только использовать существующую.

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

Разделение на голоса – совершенно не актуально, главное получить распознанный текст, а уже при использовании созданных субтитрах будет видно, кто каким голосом говорит.

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

Вот здесь https://boosty.to/neurogen/posts/4b82d8dc-5581-4fe0-92c6-93c3a4c506d8

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

Вот субтитры (без правки) для вашего видео сделанные данной сборкой нейронка Large-v3.

Скрытый текст

00:00.000 --> 00:03.000
Nous devons suivre le vent, les amis !

00:03.000 --> 00:03.940
Il est le pirate !

00:03.940 --> 00:06.020
Amigos, il est là !

00:06.020 --> 00:07.680
D'aller, d'aller, d'aller !

00:07.680 --> 00:09.900
On le dépira, on le protecteur !

00:09.900 --> 00:11.100
Allez, allez, allez !

00:11.100 --> 00:13.680
Amigos, il est là !

00:13.680 --> 00:15.898
D'aller, d'aller, d'aller !

00:15.898 --> 00:20.798
Poisson moqueur ! Pourquoi Santiago ne me laisse pas gagner ?

00:20.798 --> 00:23.918
Je crois que c'est l'heure de la plus grande fraude de tous les temps

00:23.918 --> 00:29.058
Le méga tourbiobule !

00:29.058 --> 00:32.558
Fonce ma sourisette !

00:32.558 --> 00:36.358
Pas plus vite ! Plus vite !

00:36.368 --> 00:40.348
Nom d'un petit bonhomme ! On est aspirés par le tourbillon !

00:40.348 --> 00:43.528
Thomas, tourne la grand voie à la tribord toute !

00:43.528 --> 00:46.168
Lorelai, dirige le foc à bas bord !

00:46.168 --> 00:48.448
Kiko, aide-moi à tourner la barque !

00:48.448 --> 00:58.128
Ça fonctionne ! On y est presque !

00:58.128 --> 01:01.628
Je n'arrive pas à croire que vous soyez sortis de mon tourbillon !

01:01.628 --> 01:03.528
Vous êtes tellement fatigants !

01:05.680 --> 01:07.980
Oh non, venez, venez !

01:14.010 --> 01:16.150
Oh oh !

01:16.150 --> 01:18.010
Oled !

01:18.010 --> 01:20.150
Wow !

01:20.150 --> 01:22.170
Nous devons sauver Enrique.

01:22.630 --> 01:27.030
Mais Santiago, si on retourne dans le tourbillon, on pourrait se retrouver
piégé.

01:27.070 --> 01:29.510
Un bon pirate fait toujours ce qui est juste.

01:31.190 --> 01:33.010
Oled !

01:35.010 --> 01:39.970
On est là.

01:39.994 --> 01:42.414
On est aspirés par le tourbillon !

01:42.416 --> 01:46.416
Tu peux utiliser la magie maintenant, s'il te plaît, Santiago !

01:47.756 --> 01:51.736
Oui, je crois qu'on n'a pas le choix. Disons que c'est un temps mort.

01:53.816 --> 01:57.056
On peut le sortir de là. El Bravo doit juste tirer plus fort.

01:57.396 --> 02:00.836
Que tout le monde dise El Bravo tire plus fort !

02:00.836 --> 02:05.416
El Bravo tire plus fort !

02:05.416 --> 02:06.976
Encore une fois !

02:06.976 --> 02:09.416
El Bravo tire plus fort !

02:09.416 --> 02:11.416
Et voilà !

02:12.416 --> 02:15.616
Sous-titres par El Bravo

02:15.648 --> 02:19.168
Beau travail, compagnon ! Enrique, tout va bien ?

02:19.168 --> 02:22.068
Oh, oui ! Tout va très bien !

02:22.068 --> 02:23.788
Ah ! Un monstre !

02:23.788 --> 02:25.208
Où ça ?

02:25.208 --> 02:28.908
Je vous ai eu ! Merci de m'avoir sauvé, les marins d'eau douce !

02:28.908 --> 02:31.128
Est-ce qu'un jour, il suivra le règlement ?

02:31.128 --> 02:34.348
Je sais que c'est pas juste qu'Enrique continue de tricher, les amis.

02:34.528 --> 02:37.608
Ne t'inquiète pas, Santiago. Nous, on ne trichera pas.

02:37.848 --> 02:41.388
Mais, on peut encore essayer de gagner, pas vrai ?

02:41.388 --> 02:42.668
Oui, tu as raison, Thomas.

02:44.268 --> 02:45.388
Finissons cette course !

02:45.968 --> 02:49.388
Rocher du pirate, nous voilà !

02:49.388 --> 02:51.388
Je vais gagner !

02:51.968 --> 02:54.388
Et ça ne m'étonne pas, je suis le meilleur !

02:56.888 --> 02:58.388
Juste une dernière tricherie !

03:00.576 --> 03:08.756
Mille sabords ! L'avant du bateau d'Henriquet s'allonge pour passer la ligne
d'arrivée en premier !

03:08.756 --> 03:10.076
C'est la triche !

03:10.076 --> 03:12.756
Non, on ne triche pas ! On gagnera grâce à la force du vent !

03:30.576 --> 03:47.556
Sous-titrage ST' 501

03:47.578 --> 03:52.278
Désolé, Enrique. Tu devrais apprendre que lorsqu'on triche, on ne gagne jamais.

03:52.838 --> 03:57.638
Ce n'est pas juste. Je suis le plus grand tricheur du monde. J'aurais dû gagner.

04:00.978 --> 04:03.158
Monsieur Wesset, aidez-moi.

04:06.554 --> 04:11.674
Félicitations à Santiago et à l'équipage d'El Bravo pour avoir gagné la course

04:11.674 --> 04:13.154
Muchas gracias, maman

04:13.154 --> 04:19.314
Et merci à Lorelai, Thomas, Kiko, El Bravo et à toi

04:19.314 --> 04:20.954
Tu sais quoi, cousin ?

04:20.954 --> 04:23.974
Gagner de façon juste et en suivant les règles me donne envie de dire

04:23.974 --> 04:26.274
Vive les Pirates !

Спасибо за содержательный ответ!

К сожалению, сайт https://boosty.to/ у меня не доступен, возможно, там ограничение на определенные страны.

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

Интересно было сравнить с моим результатом.

По факту, ошибки, как водится, есть везде. Если говорить более конкретно, то вот проблемные места, на мой взгляд. Верхняя строка здесь ваша (с переводом), внизу моя:

Il est le pirate ! Это пират!
Vive les pirates ! Да здравствуют пираты!

Amigos, il est là ! Амигос, он здесь!
Amigos, il est l'heure ! Амигос, время пришло!

On le dépira, on le protecteur ! Мы поймаем его, мы защитим его!
On est des pirates en protecteur ! Мы пираты - защитники!

Poisson moqueur ! Насмешливая рыба!
Poisson, mon cœur ! Рыба, мое сердце!

Le méga tourbiobule ! Мега-турбобуль!
Le méga tourbillon bulle ! Мега вихрь-пузырь!

Kiko, aide-moi à tourner la barque ! Кико, помоги мне развернуть лодку!
Kiko, aide-moi à tourner la barre ! Кико, помоги мне повернуть румпель!

Oled ! Олед!
Allez ! Действуйте!

Sous-titres par El Bravo Субтитры от El Bravo
У меня этой строки нет!

Mille sabords ! Тысяча портов!
Oui, il s'aborde ! Это обман!

Non, on ne triche pas ! Нет, мы не обманываем!
Te ne voulez triche pas ! Ты же не хочешь обманывать!

Sous-titrage ST' 501 Субтитры ST' 501
У меня этой строки нет!

J'aurais dû gagner. Я должен был выиграть.
J'aurais pu gagner ! Я мог бы выиграть!

У вас этой строки нет!
Oups, ça l'a. Упс, вот и все.

Monsieur Wesset, Мистер Уэссет
Ma sourisette ! Моя мышка!

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

Как по мне, ваш вариант ничем не лучше представленных сервисов по распознаванию речи, которые, кстати, тоже все основаны на «нейронке». Единственное отличие – у вас есть тайминг, который можно взять за основу для создания первичных меток. Это неплохо, но не принципиально.

Тем не менее, еще раз спасибо за заинтересованный ответ!

Очень сложно - есть проще, настолько проще что даже на статью не тянет...

https://speech2text.ru/ позволяет получать субтитры с аудио-видео файла. 15 минут бесплатно.

https://translate-subtitles.com/ делает перевод и позволяет оставлять исходные и переведенные субтитры

https://speech2text.ru/ позволяет получать субтитры с аудио-видео файла. 15 минут бесплатно.
https://translate-subtitles.com/ делает перевод и позволяет оставлять исходные и переведенные субтитры

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

Правда, имеются нюансы. Как по распознаванию, так и по переводу. Ниже показаны проблемные места, на мой взгляд. Верхняя строка – для «ваших» сервисов, нижняя – для «моих»:

Vive les pirates ! Живите пиратами!
Vive les pirates ! Да здравствуют пираты!

Dale, dale, dale ! Дэйл, дэйл, дэйл!
D'aller, d'aller, d'aller ! Вперед, вперед, вперед!

On le défiera un protector ! Мы бросим ему вызов защитником!
On est des pirates en protecteur ! Мы пираты - защитники!

Allez, allez, allez ! Иди!
Allez, allez, allez ! Вперед, вперед, вперед!

Je crois que c'est l'heure de la plus grande frotte de tous les temps ! Я думаю, пришло время из самой большой неприятности всех времен!
Je crois que c'est l'heure de la plus grande frotte de tous les temps. Я думаю, что пришло время для самой большой битвы всех времен.

Nom d'un petit bonhomme ! Имя маленького парня!
Nom d'un petit bonhomme ! Боже правый!

Thomas, tourne la grand voile à tribord toute ! Томас, поверни грот до упора на правый борт!
Thomas, tourne la grand voile à tribord toute ! Томас, поверни большой парус на правый борт!

Loreley, dirige le phoque à bas bord ! Лорелей, выведи тюленя на берег!
Loreley, dirige le foc à bas bord ! Лорелея, опускай передний парус!

Kiko, aide-moi à tourner la barque ! Кико, помоги мне перевернуть лодку!
Kiko, aide-moi à tourner la barre ! Кико, помоги мне повернуть румпель!

Ça fonctionne ! Оно работает!
Ça fonctionne ! Это работает!

Vous êtes tellement fatigants. Ты такой утомительный.
Vous êtes tellement fatigants ! Вы такие надоедливые!

Hein? Хайн?
Hein ? Верно?

У вас нет этих строк
Allez ! Действуйте! / Ну давай же!

У вас нет этой строки
Wow ! Ух ты!

S'il te plaît, Santiago Пожалуйста, Джеймс
S'il te plaît, Santiago ! Пожалуйста, Сантьяго!

El Bravo tire plus fort ! Эль Браво тянет сильнее!
El Bravo, tire plus fort ! Эль Браво, тяни сильнее!

Et voilà ! И вот оно!
Et voilà ! Вот и все!

Beau travail, compagnons ! Хорошая работа, товарищи!
Beau travail, compagnon ! Хорошая работа, компаньон!

Je vous ai eu ! Понял тебя!
Je vous ai eu ! Попался!

Rocher du pirate, nous voilà ! Пиратская скала, вот и мы!
Vrocher du pirate, nous voilà ! Пиратский мошенник, мы идем!

Mille sabords ! Тысяча портов!
Oui, il s'aborde ! Да, он первый!

Bonne victoire ! Счастливой победы!
У меня нет этой строки

J'aurais dû gagner ! Я должен был выиграть!
J'aurais pu gagner ! Я мог бы выиграть!

У вас нет этой строки
Oups, ça l'a. Упс, вот и все.

Messieurs ouissettes, aidez-moi ! Господа, помогите мне!
Ma sourisette ! Aidez-moi ! Моя мышка! Помоги мне!

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

Очень сложно - есть проще, настолько проще что даже на статью не тянет...

Качество требует жертв! Не хочу сказать, что у меня все идеально по распознаванию и переводу, но ваш вариант вряд ли можно рекомендовать как окончательный…

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

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории