Compartir vía


Procedimiento para usar la traducción de vídeo

Nota:

Esta característica actualmente está en su versión preliminar pública. Esta versión preliminar se ofrece sin acuerdo de nivel de servicio y no se recomienda para las cargas de trabajo de producción. Es posible que algunas características no sean compatibles o que tengan sus funcionalidades limitadas. Para más información, consulte Términos de uso complementarios de las Versiones Preliminares de Microsoft Azure.

En este artículo, aprenderá a usar la traducción de vídeo de Voz de Azure AI en el estudio.

Todo lo que se necesita para empezar es un vídeo original. Consulte si la traducción de vídeo es compatible con su idioma y región.

Crear un proyecto de traducción de vídeo

Para crear un proyecto de traducción de vídeo, siga estos pasos:

  1. Inicie sesión en Speech Studio.

  2. Seleccione la suscripción y el recurso de voz con los que quiere trabajar.

  3. Seleccione Traducción de vídeo.

  4. En la páginaCrear y administrar proyectos, seleccione Crear un proyecto.

  5. En la página Nuevo proyecto, seleccione Tipo de voz.

    Recorte de pantalla de la selección del tipo de voz en la página del nuevo proyecto.

    Puede seleccionar Voz neuronal predefinida o Voz personal para Tipo de voz. Para la voz neuronal predefinida, el sistema selecciona automáticamente la voz predefinida más adecuada mediante la coincidencia de la voz del hablante en el vídeo con voces predefinidas. Para la voz personal, el sistema ofrece un modelo que genera la replicación de voz de alta calidad en unos segundos.

    Nota:

    Para usar la voz personal, debe aplicar acceso.

  6. Cargue el archivo de vídeo arrastrando y colocando el archivo de vídeo o seleccionando el archivo manualmente.

    Recorte de pantalla de la carga del archivo de vídeo en la página del nuevo proyecto.

    Asegúrese de que el vídeo está en formato .mp4, ocupa menos de 500 MB y dura menos de 60 minutos.

  7. Proporcione Nombre del proyecto, y seleccione Número de hablantes, Idioma del vídeo, Traducir al idioma.

    Recorte de pantalla de proporcionar información de vídeo en la página del nuevo proyecto.

    Si desea usar sus propios archivos de subtítulos, seleccione Agregar archivo de subtítulos. Puede optar por cargar el archivo de subtítulos de origen o el archivo de subtítulos de destino. El archivo de subtítulos puede estar en formato WebVTT o JSON. Puede descargar un archivo VTT de ejemplo para su referencia seleccionando Descargar archivo VTT de ejemplo.

    Recorte de pantalla de la adición de un archivo de subtítulos en la página del nuevo proyecto.

  8. Después de revisar la información de precios y el código de conducta, continúe con la creación del proyecto.

    Una vez completada la carga, puede comprobar el estado de procesamiento en la pestaña del proyecto.

    Una vez creado el proyecto, puede seleccionar el proyecto para revisar la configuración detallada y realizar ajustes según sus preferencias.

Comprobar y ajustar la configuración de voz

En la página de detalles del proyecto, el proyecto presenta dos pestañas Traducido y Original bajo Vídeo, que le permiten compararlos uno al lado del otro.

En el lado derecho del vídeo, puede ver el script original y el script traducido. Al pasar el ratón por encima de cada parte del guion original, el vídeo salta automáticamente al segmento correspondiente del vídeo original, mientras que al pasar el ratón por encima de cada parte del guion traducido, el vídeo salta al segmento traducido correspondiente.

También puede agregar o quitar segmentos según sea necesario. Cuando quiera añadir un segmento, asegúrese de que la marca de tiempo del nuevo segmento no se solapa con la del segmento anterior ni con la del siguiente, y el tiempo de finalización del segmento debe ser mayor que el de inicio. El formato correcto de la marca de tiempo debe ser hh:mm:ss.ms. De lo contrario, no se pueden aplicar los cambios.

Puede ajustar el período de tiempo de los scripts directamente mediante la forma de onda de audio debajo del vídeo. Después de seleccionar Aplicar cambios, se aplicarán los ajustes.

Si encuentra segmentos con un nombre de voz "no identificado", puede deberse a que el sistema no ha podido detectar la voz con precisión, especialmente en situaciones en las que las voces de los hablantes se superponen. En estos casos, es aconsejable cambiar manualmente el nombre de la voz.

Captura de pantalla de un segmento con un nombre de voz no identificado.

Si quiere ajustar la voz, seleccione Ajustes de voz para realizar algunos cambios. En la página Configuración de voz, puede ajustar el tipo de voz, el género y la voz. Seleccione la muestra de voz a la derecha de Voz para determinar su selección de voz. Si encuentra que falta alguna voz, puede añadir el nombre de la nueva voz seleccionando Añadir hablante. Después de cambiar la configuración, seleccione Actualizar.

Captura de pantalla del ajuste de la configuración de voz en la página configuración de voz.

Si realiza cambios varias veces, pero no ha terminado, solo tiene que guardar los cambios realizados seleccionando Guardar. Después de realizar todos los cambios, seleccione Aplicar cambios para aplicarlos al vídeo. Solo se le cobrará después de seleccionar Aplicar cambios.

Captura de pantalla de la selección del botón Aplicar cambios después de realizar todos los cambios.

Puede traducir el vídeo original a un nuevo idioma seleccionando Nuevo idioma. En la página Traducir, puede elegir un nuevo idioma traducido y un tipo de voz. Una vez traducido el archivo de vídeo, se crea automáticamente un nuevo proyecto.

La API REST de traducción de vídeo facilita la integración de la traducción de vídeo directamente en las aplicaciones. Admite la carga, administración y ajuste de traducciones de vídeo, con varias iteraciones para mejorar continuamente. En este artículo, aprenderá a usar la traducción de vídeo a través de la API REST.

El diagrama a continuación proporciona una introducción general del flujo de trabajo.

Diagrama del flujo de trabajo de la API de traducción de vídeo.

Puede usar las siguientes operaciones de API REST para la traducción de vídeo:

Operación Método Llamada a API REST
Crear una traducción PUT /translations/{translationId}
Enumerar las traducciones GET /translations
Obtener una traducción por id. de traducción GET /translations/{translationId}
Crear una iteración PUT /translations/{translationId}/iterations/{iterationId}
Enumerar las iteraciones GET /translations/{translationId}/iterations
Obtener una iteración por id. de iteración GET /translations/{translationId}/iterations/{iterationId}
Obtener una operación por id. de operación GET /operations/{operationId}
Eliminar una traducción por id. de traducción DELETE /translations/{translationId}

Para obtener ejemplos de código, consulte GitHub.

En este artículo se describen los pasos principales del proceso de API, incluida la creación de una traducción, la creación de una iteración, la comprobación del estado de cada operación, la obtención de una iteración por id. de iteración y la eliminación de una traducción por id. de traducción. Para obtener detalles completos, consulte los vínculos proporcionados para cada API de la tabla.

Crear una traducción

Para enviar una solicitud de traducción de vídeo, debe construir una ruta de acceso de solicitud HTTP PUT y un cuerpo según las instrucciones siguientes:

  • Especifique Operation-Id: el Operation-Id debe ser único para cada operación. Garantiza que de cada operación se realiza un seguimiento por separado. Reemplace [operationId] por un id. de operación.

  • Especifique translationId: el translationId debe ser único. Reemplace [translationId] por un id. de traducción.

  • Establezca la entrada necesaria: incluya detalles como sourceLocale, targetLocale, voiceKind y videoFileUrl. Asegúrese de que tiene la dirección URL de vídeo de Azure Blob Storage. Para conocer los idiomas admitidos para la traducción de vídeo, consulte idiomas de origen y destino admitidos. Puede establecer el parámetro voiceKind en PlatformVoice o PersonalVoice. Para PlatformVoice, el sistema selecciona automáticamente la voz predefinida más adecuada mediante la coincidencia de la voz del hablante en el vídeo con voces predefinidas. Para PersonalVoice, el sistema ofrece un modelo que genera la replicación de voz de alta calidad en unos segundos.

    Nota:

    Para usar la voz personal, debe aplicar acceso.

  • Reemplace [YourResourceKey] por la clave del recurso de Voz y [YourSpeechRegion] por la región del recurso de Voz.

La creación de una traducción no inicia el proceso de traducción. Para empezar a traducir el vídeo, cree una iteración. El ejemplo siguiente es para un shell de Windows. Asegúrese de escapar & con ^& si la dirección URL contiene &. En el código de ejemplo siguiente usaremos una dirección URL de vídeo pública, que puede usar para sus propias pruebas.

curl -v -X PUT -H "Ocp-Apim-Subscription-Key: [YourResourceKey]" -H "Operation-Id: [operationId]" -H "Content-Type: application/json" -d "{\"displayName\": \"[YourDisplayName]\",\"description\": \"[OptionalYourDescription]\",\"input\": {\"sourceLocale\": \"[VideoSourceLocale]\",\"targetLocale\": \"[TranslationTargetLocale]\",\"voiceKind\": \"[PlatformVoice/PersonalVoice]\",\"speakerCount\": [OptionalVideoSpeakerCount],\"subtitleMaxCharCountPerSegment\": [OptionalYourPreferredSubtitleMaxCharCountPerSegment],\"exportSubtitleInVideo\": [Optional true/false],\"videoFileUrl\": \"https://speechstudioprodpublicsa.blob.core.windows.net/ttsvoice/VideoTranslation/PublicDoc/SampleData/es-ES-TryOutOriginal.mp4\"}}" "https://[YourSpeechRegion].api.cognitive.microsoft.com/videotranslation/translations/[translationId]?api-version=2024-05-20-preview" 

Importante

Los datos creados a través de la API no aparecerán en Speech Studio y los datos entre la API y Speech Studio no se sincronizarán.

Debe recibir un cuerpo de respuesta en el formato siguiente:

{
  "input": {
    "sourceLocale": "zh-CN",
    "targetLocale": "en-US",
    "voiceKind": "PlatformVoice",
    "speakerCount": 1,
    "subtitleMaxCharCountPerSegment": 30,
    "exportSubtitleInVideo": true
  },
  "status": "NotStarted",
  "lastActionDateTime": "2024-09-20T06:25:05.058Z",
  "id": "mytranslation0920",
  "displayName": "demo",
  "description": "for testing",
  "createdDateTime": "2024-09-20T06:25:05.058Z"
}

La propiedad de estado debe avanzar del estado NotStarted a Running y, por último, a Succeeded o Failed. Puede llamar a la API de Obtener una operación por id. de operación periódicamente hasta que el estado devuelto sea Succeeded o Failed. Esta operación le permite supervisar el progreso del proceso de traducción de creación.

Obtener una operación por id. de operación

Compruebe el estado de una operación específica mediante su id. de operación. El id. de la operación es único para cada operación, por lo que puede realizar un seguimiento de cada operación por separado.

Reemplace [YourResourceKey] por la clave de recurso de voz, [YourSpeechRegion] por la región del recurso de voz y [operationId] por el id. de operación que desea comprobar.

curl -v -X GET -H "Ocp-Apim-Subscription-Key:[YourResourceKey]" "https://[YourSpeechRegion].api.cognitive.microsoft.com/videotranslation/operations/[operationId]?api-version=2024-05-20-preview" 

Debe recibir un cuerpo de respuesta en el formato siguiente:

{
  "id": "createtranslation0920-1",
  "status": "Running"
}

Crear una iteración

Para empezar a traducir el vídeo o actualizar una iteración para una traducción existente, debe construir una ruta de acceso de solicitud HTTP PUT y un cuerpo según las instrucciones siguientes:

  • Especifique Operation-Id: el Operation-Id debe ser único para cada operación, como la creación de cada iteración. Reemplace [operationId] por un id. único para esta operación.
  • Especifique translationId: si se realizan varias iteraciones en una sola traducción, el id. de traducción permanece sin cambios.
  • Especifique iterationId: el iterationId debe ser único para cada operación. Reemplace [iterationId] por un id. de iteración.
  • Establezca la entrada necesaria: incluya detalles como speakerCount, subtitleMaxCharCountPerSegment, exportSubtitleInVideo o webvttFile. De forma predeterminada, no hay subtítulos incrustados en el vídeo de salida.
  • Reemplace [YourResourceKey] por la clave del recurso de Voz y [YourSpeechRegion] por la región del recurso de Voz.

El ejemplo siguiente es para un shell de Windows. Asegúrese de escapar & con ^& si la dirección URL contiene &.

curl -v -X PUT -H "Ocp-Apim-Subscription-Key: [YourResourceKey]" -H "Operation-Id: [operationId]"  -H "Content-Type: application/json" -d "{\"input\": {\"speakerCount\": [OptionalVideoSpeakerCount],\"subtitleMaxCharCountPerSegment\": [OptionalYourPreferredSubtitleMaxCharCountPerSegment],\"exportSubtitleInVideo\": [Optional true/false],\"webvttFile\": {\"Kind\": \"[SourceLocaleSubtitle/TargetLocaleSubtitle/MetadataJson]\", \"url\": \"[AzureBlobUrlWithSas]\"}}}" "https://[YourSpeechRegion].api.cognitive.microsoft.com/videotranslation/translations/[translationId]/iterations/[iterationId]?api-version=2024-05-20-preview"  

Nota:

Al crear una iteración, si ya ha especificado los parámetros opcionales speakerCount, subtitleMaxCharCountPerSegment y exportSubtitleInVideo durante la creación de la traducción, no es necesario especificarlos de nuevo. Los valores se heredarán de la configuración de traducción. Una vez definidos estos parámetros al crear una iteración, los nuevos valores reemplazarán la configuración original.

El parámetro webvttFile no es necesario al crear la primera iteración. Sin embargo, a partir de la segunda iteración, debe especificar el parámetro webvttFile en el proceso de iteración. Debe descargar el archivo WebVTT, realizar las modificaciones necesarias y, a continuación, cargarlo en Azure Blob Storage. Debe especificar la dirección URL de Blob en el código curl.

Los datos creados a través de la API no aparecerán en Speech Studio y los datos entre la API y Speech Studio no se sincronizarán.

El archivo de subtítulos puede estar en formato WebVTT o JSON. Si no está seguro de cómo preparar un archivo WebVTT, consulte los siguientes formatos de ejemplo.


00:00:01.010 --> 00:00:06.030
Hello this is a sample subtitle.

00:00:07.030 --> 00:00:09.030
Hello this is a sample subtitle.

Debe recibir un cuerpo de respuesta en el formato siguiente:

{
  "input": {
    "speakerCount": 1,
    "subtitleMaxCharCountPerSegment": 30,
    "exportSubtitleInVideo": true
  },
  "status": "Not Started",
  "lastActionDateTime": "2024-09-20T06:31:53.760Z",
  "id": "firstiteration0920",
  "createdDateTime": "2024-09-20T06:31:53.760Z"
}

Puede usar el operationId que especificó y llamar a la API de Obtener una operación por id. de operación periódicamente hasta que el estado devuelto sea Succeeded o Failed. Esta operación le permite supervisar el progreso del proceso de traducción de iteración.

Obtener una iteración por id. de iteración

Para recuperar detalles de una iteración específica por su identificador, use la solicitud HTTP GET. Reemplace [YourResourceKey] por la clave de recurso de voz, [YourSpeechRegion] por la región del recurso de voz, [translationId] por el id. de traducción que desea comprobar y [iterationId] por el id. de iteración que desea comprobar.

curl -v -X GET -H "Ocp-Apim-Subscription-Key: [YourResourceKey]" "https://[YourSpeechRegion].api.cognitive.microsoft.com/videotranslation/translations/[translationId]/iterations/[iterationId]?api-version=2024-05-20-preview"  

Debe recibir un cuerpo de respuesta en el formato siguiente:

{
  "input": {
    "speaker Count": 1,
    "subtitleMaxCharCountPerSegment": 30,
    "exportSubtitleInVideo": true
  },
  "result": {
    "translatedVideoFileUrl": "https://xxx.blob.core.windows.net/container1/video.mp4?sv=2023-01-03&st=2024-05-20T08%3A27%3A15Z&se=2024-05-21T08%3A27%3A15Z&sr=b&sp=r&sig=xxx",
    "sourceLocaleSubtitleWebvttFileUrl": "https://xxx.blob.core.windows.net/container1/sourceLocale.vtt?sv=2023-01-03&st=2024-05-20T08%3A27%3A15Z&se=2024-05-21T08%3A27%3A15Z&sr=b&sp=r&sig=xxx",
    "targetLocaleSubtitleWebvttFileUrl": "https://xxx.blob.core.windows.net/container1/targetLocale.vtt?sv=2023-01-03&st=2024-05-20T08%3A27%3A15Z&se=2024-05-21T08%3A27%3A15Z&sr=b&sp=r&sig=xxx",
    "metadataJsonWebvttFileUrl": "https://xxx.blob.core.windows.net/container1/metadataJsonLocale.vtt?sv=2023-01-03&st=2024-05-20T08%3A27%3A15Z&se=2024-05-21T08%3A27%3A15Z&sr=b&sp=r&sig=xxx"
  },
  "status": "Succeeded",
  "lastActionDateTime": "2024-09-20T06:32:59.933Z",
  "id": "firstiteration0920",
  "createdDateTime": "2024-09-20T06:31:53.760Z"
}

Eliminar una traducción por id. de traducción

Elimine una traducción específica identificada por translationId. Esta operación también elimina todas las iteraciones asociadas a esta traducción. Reemplace [YourResourceKey] por la clave de recurso de voz, [YourSpeechRegion] por la región del recurso de voz y [translationId] por el identificador de traducción que desea eliminar. Si no se elimina manualmente, el servicio conserva el historial de traducción durante un máximo de 31 días.

curl -v -X DELETE -H "Ocp-Apim-Subscription-Key: [YourResourceKey]" "https://[YourSpeechRegion].api.cognitive.microsoft.com/videotranslation/translations/[translationId]?api-version=2024-05-20-preview" 

Los encabezados de respuesta incluyen HTTP/1.1 204 No Content si la solicitud de eliminación se realizó correctamente.

Información adicional

En esta sección se proporcionan comandos curl para otras llamadas API que no se describen en detalle anteriormente. Puede explorar cada API mediante los siguientes comandos.

Enumerar las traducciones

Para enumerar todas las traducciones de vídeo que se han cargado y procesado en la cuenta de recursos, realice una solicitud HTTP GET como se muestra en el ejemplo siguiente. Reemplace YourResourceKey por la clave del recurso de Voz y YourSpeechRegion por la región del recurso de Voz.

curl -v -X GET -H "Ocp-Apim-Subscription-Key: [YourResourceKey]" "https://[YourSpeechRegion].api.cognitive.microsoft.com/videotranslation/translations?api-version=2024-05-20-preview"

Obtener una traducción por id. de traducción

Esta operación recupera información detallada sobre una traducción específica, identificada por su translationId único. Reemplace [YourResourceKey] por la clave de recurso de voz, [YourSpeechRegion] por la región del recurso de voz y [translationId] por el identificador de traducción que desea comprobar.

curl -v -X GET -H "Ocp-Apim-Subscription-Key: [YourResourceKey]" "https://[YourSpeechRegion].api.cognitive.microsoft.com/videotranslation/translations/[translationId]?api-version=2024-05-20-preview" 

Enumerar las iteraciones

Enumera todas las iteraciones de una traducción específica. Esta solicitud enumera todas las iteraciones sin información detallada. Reemplace [YourResourceKey] por la clave de recurso de voz, [YourSpeechRegion] por la región del recurso de voz y [translationId] por el identificador de traducción que desea comprobar.

curl -v -X GET -H "Ocp-Apim-Subscription-Key: [YourResourceKey]" "https://[YourSpeechRegion].api.cognitive.microsoft.com/videotranslation/translations/[translationId]/iterations?api-version=2024-05-20-preview"  

Códigos de estado HTTP

En la sección se detallan los códigos de respuesta HTTP y los mensajes de la API REST de traducción de vídeo.

HTTP 200 OK

HTTP 200 OK indica que la solicitud se ha realizado correctamente.

Error HTTP 204

Un error HTTP 204 indica que la solicitud se ha realizado correctamente, pero el recurso no existe. Por ejemplo:

  • Ha intentado obtener o eliminar un trabajo de traducción que no existe.
  • Ha eliminado correctamente una traducción.

Error HTTP 400

Estos son ejemplos que pueden dar lugar al error 400:

  • La configuración regional de origen o de destino especificada no está entre las configuraciones regionales admitidas.
  • Ha intentado usar un recurso de Voz F0, pero la región solo admite el plan de tarifa de recursos de Voz Estándar.

Error HTTP 500

El error interno del servidor HTTP 500 indica que se ha producido un error en la solicitud. El cuerpo de la respuesta contiene el mensaje de error.