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:
Inicie sesión en Speech Studio.
Seleccione la suscripción y el recurso de voz con los que quiere trabajar.
Seleccione Traducción de vídeo.
En la páginaCrear y administrar proyectos, seleccione Crear un proyecto.
En la página Nuevo proyecto, seleccione Tipo de voz.
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.
Cargue el archivo de vídeo arrastrando y colocando el archivo de vídeo o seleccionando el archivo manualmente.
Asegúrese de que el vídeo está en formato .mp4, ocupa menos de 500 MB y dura menos de 60 minutos.
Proporcione Nombre del proyecto, y seleccione Número de hablantes, Idioma del vídeo, Traducir al idioma.
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.
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.
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.
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.
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.
Contenido relacionado
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.
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
: elOperation-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
: eltranslationId
debe ser único. Reemplace[translationId]
por un id. de traducción.Establezca la entrada necesaria: incluya detalles como
sourceLocale
,targetLocale
,voiceKind
yvideoFileUrl
. 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ámetrovoiceKind
enPlatformVoice
oPersonalVoice
. ParaPlatformVoice
, 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. ParaPersonalVoice
, 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
: elOperation-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
: eliterationId
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
owebvttFile
. 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.