Demande de sous-titres automatiques

Cette rubrique explique comment demander la génération de sous-titres à partir des pistes audio de votre vidéo à l'aide de l'API d'acquisition dynamique.

Introduction

Le sous-titrage automatique de Brightcove est un service au niveau de la plate-forme qui vous permet de générer automatiquement des sous-titres pour des vidéos nouvelles ou existantes dans 31 langues différentes (à condition que vous disposiez d'une piste audio pour la langue spécifiée). Comme tous les services de synthèse vocale, le sous-titrage automatique n'est pas précis à 100 %, mais il constitue un moyen rapide et facile de générer des sous-titres directement dans Video Cloud.

Video Cloud utilise le processus suivant pour déterminer la source qui sera utilisée pour générer les sous-titres.

  • Si la vidéo possède une piste audio par défaut, celle-ci sera utilisée comme fichier source des sous-titres (pris en charge par défaut dans le module médias)
  • Si la vidéo n'a pas de piste audio par défaut mais qu'il existe un fichier master/mezzanine, celui-ci sera utilisé comme fichier source (pris en charge par défaut dans le module médias)
  • Si la vidéo n'a pas de piste audio par défaut ou de fichiers master/mezzanine, mais que des pistes audio sont spécifiées dans l'appel Dynamic Ingest, la piste audio spécifiée sera utilisée (pas encore pris en charge dans le module médias)
  • Si la vidéo n'a pas de piste audio par défaut, pas de fichiers master/mezzanine et qu'aucune piste audio n'est spécifiée, les sous-titres ne peuvent pas être générés

Configuration

La configuration des Dynamic Ingest demandes est la même, que vous ingériez une vidéo, des images, des pistes audio, des WebVTT fichiers, que vous demandiez des sous-titres automatiques ou tout cela :

URL de demande
https://ingest.api.brightcove.com/v1/accounts/{account_id}/videos/{video_id}/ingest-requests
Authentification
L'authentification nécessite un jeton d'accès transmis en tant que Bearer jeton dans un Authorization entête:
      Authorization: Bearer {access_token}

Pour obtenir des jetons d'accès, vous aurez besoin informations d'identification du client (voir ci-dessous). Pour le processus d'obtention d'un jeton d'accès, voir Obtenir des jetons d'accès.

Remarque sur S3

Si vos fichiers source sont retirés d'un compartiment S3 protégé, vous devrez définir une stratégie de compartiment pour permettre l'accès Video Cloud aux fichiers. Pour plus de détails, reportez-vous à Utilisation Dynamic Ingest avec S3 .

Obtention d'informations

Pour obtenir un client_id et client_secret, vous devez accéder à l'interface utilisateur OAuth et enregistrer cette application :

Voici les autorisations dont vous aurez besoin :

Intégration dynamique Autorisations
Dynamic Ingest Autorisations

Vous pouvez également obtenir vos informations d'identification via CURL Postman, ou notre application en ligne, voir :

Si vous obtenez des informations d'identification directement à partir de l'API, voici les autorisations dont vous avez besoin :

[
  "video-cloud/video/all",
  "video-cloud/ingest-profiles/profile/read",
  "video-cloud/ingest-profiles/account/read",
  "video-cloud/upload-urls/read"
]

Cas d'utilisation

Voici quelques cas d'utilisation typiques

Créer des sous-titres automatiques pour les nouvelles entrées ou le retranscodage

Corps de la demande
{
  "master": {
    "use_archived_master": true
  },
  "profile": "multi-platform-standard-static-with-mp4",
  "transcriptions": [
    {
      "srclang": "EN-us",
      "kind": "captions",
      "label": "English",
      "status" : "published",
      "default": true
    }
  ],
  "priority": "normal"
}

Créer des sous-titres automatiques lors de l'acquisition d'une piste audio

Corps de la demande
{
  "audio_tracks": {
    "merge_with_existing": true,
    "masters": [
        {
            "language": "fr-FR",
            "variant": "alternate",
            "url": "https://support.brightcove.com/test-assets//audio/celtic_lullaby.m4a"
        }
    ]
  },
  "transcriptions": [
      {
          "srclang": "fr-FR",
          "kind": "captions",
          "label": "french-FR",
          "status" : "published",
          "default": false,
          "input_audio_track": {
              "language": "fr-FR",
              "variant": "alternate"
          }
      }
  ]
}

Créer des sous-titres automatiques pour une vidéo existante à l'aide du master numérique

Corps de la demande
{
  "transcriptions": [
      {
          "srclang": "fr-FR",
          "kind": "captions",
          "label": "french-FR",
          "default": false
      }
  ]
}

Créer des sous-titres automatiques pour une vidéo existante en définissant les pistes audio

Corps de la demande
{
  "transcriptions": [
      {
          "srclang": "en-US",
          "kind": "captions",
          "label": "english-EN",
          "default": false,
          "input_audio_track": {
              "language": "en-US",
              "variant": "main"
          }
      },
      {
          "srclang": "fr-FR",
          "kind": "captions",
          "label": "french-FR",
          "default": false,
          "input_audio_track": {
              "language": "fr-FR",
              "variant": "alternate"
          }
      }
  ]
}

Demande de champs du corps pour les légendes automatiques

Le tableau ci-dessous présente les champs du corps de la requête pour les sous-titres automatiques.

Champs pour les sous-titres automatiques et les transcriptions
Champ Type Obligatoire Description
autodetect booléen non true pour détecter automatiquement la langue à partir de la source audio. false à utiliser pour srclang spécifier la langue audio.
default booléen non Si true, elle srclang sera ignorée et que la piste audio principale sera utilisée, la langue sera détectée automatiquement.
input_audio_track objet non Pour les pistes audio multiples, définit l'audio à partir duquel les sous-titres doivent être extraits. Il est composé d'une langue et d'une variante (toutes deux obligatoires).
kind chaîne non Le type de sortie à générer. Valeurs autorisées :
  • légendes
  • transcriptions
Remarques :
  1. Si le type est transcrit et que l' url du fichier de transcription est incluse, un fichier de transcription sera ingéré et aucun sous-titrage automatique ne sera généré. Pour plus d'informations, voir la section " Ingérer des transcriptions" .
  2. S'il s' agit de transcriptions et que l' URL du fichier de transcriptions n'est pas incluse, un fichier de transcription et des sous-titres seront générés,
  3. Si le type est légendes, un fichier de légendes sera généré, mais pas un fichier de transcription.
label chaîne non Étiquette lisible par l'homme. La valeur par défaut est le code de langue du style BCP-47.
srclang chaîne non Code de langue du style BCP-47 pour les pistes de texte (en-US, fr-FR, es-ES, etc.) ; voir les langues prises en charge
status chaîne non Indique la situation réelle de la légende, si c'est le published cas draft.
url chaîne non L'URL où se trouve le fichier de transcription. Doit être inclus dans le type de transcription. Ne doit pas être inclus s'il s' agit de sous-titres.

input_audio_track champs

champs input_audio_track
Champ Type Obligatoire Description
language chaîne Oui Code de langue du style BCP-47 pour les pistes de texte (en-US, fr-FR, es-ES, etc.) ; voir les langues prises en charge
variant chaîne Oui Spécifie la variante à utiliser :
  • main
  • alternate
  • dub
  • commentary
  • descriptive

Langues prises en charge

Actuellement, les sous-titres automatiques sont limités aux langues suivantes

  • Anglais australien (en-AU)
  • Afrikaans (af-ZA)
  • Portugais brésilien (pt-BR)
  • Anglais britannique (en-GB)
  • Français canadien (fr-CA)
  • Danois (da-DK)
  • Néerlandais (nl-NL)
  • Farsi Persan (fa-IR)
  • Français (fr-FR)
  • Allemand (de-DE)
  • Arabe du Golfe (ar-AE)
  • Hébreu (he-IL)
  • Anglais indien (en-IN)
  • Hindi indien (hi-IN)
  • Indonésien (id-ID)
  • Anglais irlandais (en-IE)
  • Italien (it-IT)
  • Japonais (ja-JP)
  • Coréen (ko-KR)
  • Malais (ms-MY)
  • Chinois mandarin - continent (zh-CN)
  • Chinois mandarin (Taiwan) (zh-TW)
  • Arabe moderne standard (ar-SA)
  • Anglais de Nouvelle-Zélande (en-NZ)
  • Portugais (pt-PT)
  • Russe (ru-RU)
  • Anglais écossais (en-AB)
  • Anglais d'Afrique du Sud (en-ZA)
  • Espagnol (es-ES)
  • Suisse allemand (de-CH)
  • Tamoul (ta-IN)
  • Telugu (te-IN)
  • Thaï (th-TH)
  • Turc (tr-TR)
  • Anglais américain (en-US)
  • Espagnol américain (es-US)
  • Anglais gallois (en-WL)