[PYTHON] Traduire les sous-titres au format WebVTT de Coursera avec l'API GCP Cloud Translation

Cet article est le 24e jour du Calendrier de l'Avent Shinagawa 2019.

Récemment, je suis un cours Coursera avec l'aide de l'entreprise. La plupart des cours sont en anglais, mais certains volontaires ont des sous-titres japonais. Cependant, certains cours peuvent ne pas avoir de sous-titres même si le cours dit "avec sous-titres japonais". Par exemple, Deep Learning Specialization n'a presque pas de sous-titres japonais dans les 2e, 3e et 5e semaines. J'ai donc créé des sous-titres japonais avec l'API GCP Cloud Translate.

introduction

J'ai mis l'ensemble dans gist. Ceci est un article de commentaire. Je n'ai rien fait pour le montrer aux gens, alors pardonnez-moi le nom du fichier.

Qu'est-ce que Coursera

Coursera est un service de cours en ligne. L'apprentissage comprend non seulement des vidéos, mais également des pratiques de programmation et des devoirs à l'aide de Jupyter Notebook. Vous pouvez discuter avec d'autres étudiants et assistants techniques dans le forum. Je laisserai la revue de chaque cours à d'autres articles, mais j'ai estimé que c'était une méthode d'apprentissage beaucoup plus efficace que de le faire moi-même.

Qu'est-ce que WebVTT?

WebVTT est un format de texte pour les vidéos de sous-titres dans l'élément `

WEBVTT

1
00:00:00.000 --> 00:00:01.755
Hello, I'm Carolyn.

2
00:00:01.755 --> 00:00:03.795
I'd like to welcome
you to our course

3
00:00:03.795 --> 00:00:06.505
on Machine Learning for
Business Professionals.

Comme vous pouvez le voir, il s'agit d'une paire du temps de lecture pour afficher les sous-titres et le contenu des sous-titres. Le format détaillé est décrit dans Document MDN WebVTT. Vous pouvez également utiliser des balises décoratives, mais dans le cas de Coursera, cela semble être au format texte simple comme décrit ci-dessus.

De nos jours, de nombreux lecteurs multimédias tels que VLC Media Player prennent également en charge les sous-titres WebVTT. Par exemple, VLC lira automatiquement un fichier .vtt avec le même nom de fichier qu'une vidéo s'il se trouve dans le même dossier. Il en va de même pour la version Android de l'application.

Qu'est-ce que l'API Cloud Translation?

Contrairement au service Web de traduction de Google, il y a des frais [^ 2]. La page d'introduction a deux types, AutoML Transration et Translation API, mais cette dernière est la dernière.

La facturation se fait par unités d'un caractère, et à titre indicatif, il semble que "20 000 caractères pour une vidéo de 30 minutes coûtent 0,8 USD". Une autre analogie est que si vous traduisez toutes les vidéos sans sous-titres japonais pendant 1 à 5 semaines de Spécialisation Deep Learning, ce sera environ 1 500 yens. [^ 3].

Flux de processus

Je vais vous expliquer le script de traduction WebVTT à partir d'ici. Le flux de traitement général est le suivant.

  1. Un sous-titre peut être coupé au milieu d'une phrase, alors lisez les sous-titres l'un après l'autre, et si vous trouvez un point / point d'exclamation, assemblez-y une phrase.
  2. Traduisez la phrase assemblée.
  3. Afin de séparer la phrase traduite comme le sous-titre original, mémorisez le nombre de caractères pour chaque sous-titre avant la traduction et divisez la phrase traduite par le rapport.
  4. Réassemblez au format WebVTT.

Exemple

Par exemple, si vous avez les sous-titres suivants [^ 1].

2
00:00:01.755 --> 00:00:03.795
I'd like to welcome
you to our course

3
00:00:03.795 --> 00:00:06.505
on Machine Learning for
Business Professionals.

Tout d'abord, rassemblez-les en une phrase jusqu'à la période. Souvenez-vous que le nombre de caractères pour l'ID «2» est «37» et le nombre de caractères pour l'ID «3» est «47». Puis traduisez la phrase.

Avant la traduction: I'd like to welcome you to our course on Machine Learning for Business Professionals.
Après la traduction:Bienvenue dans le cours d'apprentissage automatique pour les professionnels.

Maintenant, divisez la traduction en deux sous-titres originaux. Le rapport de caractères du sous-titre original est «37: 47», nous allons donc le séparer en fonction de ce rapport. Cependant, il est difficile de lire s'il est coupé au milieu d'un mot ou avant un mot auxiliaire tel que "non" ou "o", alors ne le coupez pas là. Le résultat est le suivant.

00:00:01.755 --> 00:00:03.795
À propos de l'apprentissage automatique pour les professionnels

00:00:03.795 --> 00:00:06.505
Bienvenue au cours.

Si vous traduisez normalement, c'est la longueur qui sera affichée avec un sous-titre, donc cela semble un peu étrange. Je pense qu'il y a encore beaucoup à faire.

Une autre phrase qui suit ce qui précède est:

4
00:00:06.505 --> 00:00:08.160
I lead a team of machine learning

5
00:00:08.160 --> 00:00:10.080
engineers who have successfully

6
00:00:10.080 --> 00:00:12.450
implemented many
machine learning projects

7
00:00:12.450 --> 00:00:14.475
across various industries.
00:00:06.505 --> 00:00:08.160
Je suis dans diverses industries

00:00:08.160 --> 00:00:10.080
De nombreux projets d'apprentissage automatique

00:00:10.080 --> 00:00:12.450
Une équipe d'ingénieurs en apprentissage automatique qui a mis en œuvre avec succès

00:00:12.450 --> 00:00:14.475
Je mène.

Mis à part les phrases traduites automatiquement, je pense que les sous-titres sont séparés par de bonnes prunes salées.

Autres bibliothèques, etc.

Problèmes connus

Résumé

Même si je ne suis pas doué pour écouter l'anglais, je pense qu'avec le support des sous-titres, même la traduction automatique peut être très utile pour la compréhension. Coursera propose de nombreux excellents cours. Je pense qu'il est beaucoup plus efficace d'acquérir des connaissances systématiques que de lire des articles et des livres, alors pourquoi ne pas essayer?

[^ 1]: Extrait de l'introduction de la première semaine de Machine Learning for Business Professional. Ce cours est gratuit si vous n'avez pas besoin de certificat. [^ 2]: Il existe également Essayez d'utiliser l'API de traduction Google gratuitement. Je n'ai pas essayé. [^ 3]: Depuis que je faisais un scénario, j'ai inclus le montant utilisé par essais et erreurs.

Recommended Posts

Traduire les sous-titres au format WebVTT de Coursera avec l'API GCP Cloud Translation
Extraction de texte avec l'API GCP Cloud Vision (Python3.6)
Comment utiliser l'API Google Cloud Translation
Créez un outil de traduction avec Translate Toolkit
Appelez l'API avec python3.
Jouez avec le cadre gratuit GCP ① ~ Cloud Run, Datastore et API de messagerie LINE ~
[Python] Accédez à l'API Google Translation
Accédez à l'API Etherpad-lite avec Python