Share via


Propiedades de la síntesis por lotes para el avatar de texto a voz (versión preliminar)

Nota:

El avatar de texto a voz se encuentra actualmente en versión preliminar pública. Esta versión preliminar se ofrece sin contrato de nivel de servicio y no es aconsejable usarla para 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.

Las propiedades de síntesis por lotes se pueden agrupar como: propiedades relacionadas con el avatar, propiedades relacionadas con el trabajo por lotes y propiedades relacionadas con el texto a voz, las cuales se describen en las tablas siguientes.

Algunas propiedades en formato JSON son necesarias cuando se crea un nuevo trabajo de síntesis por lotes. Las demás propiedades son opcionales. La respuesta de síntesis por lotes incluye otras propiedades para proporcionar información sobre el estado y los resultados de la síntesis. Por ejemplo, la propiedad outputs.result contiene la ubicación desde donde puede descargar un archivo de vídeo que contiene el vídeo del avatar. Desde outputs.summary, puede acceder a los detalles de resumen y depuración.

Propiedades del avatar

En la tabla siguiente se describen las propiedades del avatar.

Propiedad Descripción
avatarConfig.talkingAvatarCharacter Nombre del carácter del avatar que habla.

Los caracteres de avatar admitidos se pueden encontrar aquí.

Se requiere esta propiedad.
avatarConfig.talkingAvatarStyle Nombre de estilo del avatar que habla.

Los estilos de avatar admitidos se pueden encontrar aquí.

Esta propiedad es necesaria para el avatar precompilado y opcional para el avatar personalizado.
avatarConfig.customized Valor bool que indica si el avatar que se va a usar es personalizado o no. True para el avatar personalizado y false para el avatar precompilado.

Esta propiedad es opcional y el valor predeterminado es false.
avatarConfig.videoFormat El formato del archivo de vídeo de salida puede ser mp4 o webm.

El formato webm es necesario para el fondo transparente.

Esta propiedad es opcional y el valor predeterminado es mp4.
avatarConfig.videoCodec El códec para el vídeo de salida puede ser h264, hevc o vp9.

Vp9 es necesario para el fondo transparente. La velocidad de síntesis será menor con el códec vp9, ya que la codificación vp9 es más lenta.

Esta propiedad es opcional y el valor predeterminado es hevc.
avatarConfig.bitrateKbps Tasa de bits para el vídeo de salida, que es un valor entero, con kbps de unidad.

Esta propiedad es opcional y el valor predeterminado es 2000.
avatarConfig.videoCrop Esta propiedad permite recortar la salida de vídeo, lo que significa que se genera una subárea de rectángulo del vídeo original. Esta propiedad tiene dos campos que definen el vértice superior izquierdo y el vértice inferior derecho del rectángulo.

Esta propiedad es opcional y el comportamiento predeterminado es generar el vídeo completo.
avatarConfig.videoCrop.topLeft Vértice superior izquierdo del rectángulo para el recorte de vídeo. Esta propiedad tiene dos campos, x e y, para definir la posición horizontal y vertical del vértice.

Esta propiedad es necesaria cuando se establece properties.videoCrop.
avatarConfig.videoCrop.bottomRight Vértice inferior derecho del rectángulo para el recorte de vídeo. Esta propiedad tiene dos campos, x e y, para definir la posición horizontal y vertical del vértice.

Esta propiedad es necesaria cuando se establece properties.videoCrop.
avatarConfig.subtitleType El tipo de subtítulo para el archivo de vídeo del avatar podría ser external_file, soft_embedded, hard_embedded o none.

Esta propiedad es opcional y el valor predeterminado es soft_embedded.
avatarConfig.backgroundImage Agregue una imagen de fondo mediante la propiedad avatarConfig.backgroundImage. El valor de la propiedad debe ser una dirección URL que apunte a la imagen deseada. Esta propiedad es opcional.
avatarConfig.backgroundColor Color de fondo del vídeo de avatar, que es una cadena en formato #RRGGBBAA. En esta cadena: RR, GG, BB y AA significan los canales rojo, verde, azul y alfa, con un rango de valores hexadecimales 00~FF. El canal alfa controla la transparencia, con el valor 00 para transparente, valor FF para no transparente y un valor entre 00 y FF para semitransparente.

Esta propiedad es opcional y el valor predeterminado es #FFFFFFFF (blanco).
outputs.result Ubicación del archivo de resultados de síntesis por lotes, que es un archivo de vídeo que contiene el avatar sintetizado.

Esta propiedad es de solo lectura.
properties.DurationInMilliseconds Duración de la salida de vídeo en milisegundos.

Esta propiedad es de solo lectura.

Propiedades del trabajo de síntesis por lotes

En la tabla siguiente se describen las propiedades del trabajo de síntesis por lotes.

Propiedad Descripción
createdDateTime Fecha y hora en que se creó el trabajo de síntesis por lotes.

Esta propiedad es de solo lectura.
descripción Descripción de la síntesis por lotes.

Esta propiedad es opcional.
ID Identificador del trabajo de síntesis por lotes.

Esta propiedad es de solo lectura.
lastActionDateTime Fecha y hora más recientes en que cambió el valor de propiedad.

Esta propiedad es de solo lectura.
properties Conjunto definido de valores de configuración opcionales de la síntesis por lotes.
properties.destinationContainerUrl Los resultados de síntesis por lotes se pueden almacenar en un contenedor de Azure que permita la escritura. Si no se especifica ningún URI de contenedor con un token de firmas de acceso compartido (SAS), el servicio de Voz almacena los resultados en un contenedor administrado por Microsoft. No se admite SAS con directivas de acceso almacenadas. Cuando se elimina el trabajo de síntesis, también se eliminan los datos del resultado.

Esta propiedad opcional no se incluye en la respuesta cuando se obtiene el trabajo de síntesis.
properties.timeToLiveInHours Duración en horas tras crear el trabajo de síntesis, cuando los resultados de la síntesis se eliminarán automáticamente. El tiempo máximo de vida es de 744 horas. La fecha y hora de eliminación automática para los trabajos de síntesis con el estado "Correcto" o "Error" se calcula como la suma de las propiedades lastActionDateTime y timeToLive.

Otra opción es llamar al método de eliminación de la síntesis para quitar el trabajo antes.
status Estado de procesamiento de la síntesis por lotes.

El estado debe evolucionar de "NotStarted" a "Running" y, por último, a "Succeeded" o "Failed".

Esta propiedad es de sólo lectura.

Propiedades de texto a voz

En la tabla siguiente se describen las propiedades de texto a voz.

Propiedad Descripción
customVoices Se asocia una voz neuronal personalizada a un nombre y su id. de implementación de la siguiente manera: "customVoices": {"your-custom-voice-name": "502ac834-6537-4bc3-9fd6-140114daa66d"}

Puede usar el nombre de voz en synthesisConfig.voice cuando inputKind se establece en "PlainText" o en el texto SSML de las entradas cuando inputKind se establece en "SSML".

Esta propiedad es necesaria para usar una voz personalizada. Si intenta usar una voz personalizada que no está definida aquí, el servicio devuelve un error.
inputs Texto sin formato o SSML que se va a sintetizar.

Cuando inputKind se establece en "PlainText", proporcione texto sin formato como se muestra aquí: "inputs": [{"content": "El arcoíris tiene siete colores."}]. Cuando inputKind se establece en "SSML", proporciona texto en el Lenguaje de marcado de síntesis de voz (SSML) como se muestra aquí: "inputs": [{"content": "<speak version=''1.0''' xml:lang=''en-US'''><voice xml:lang=''en-US''' xml:gender=''Female''' name=''en-US-AvaMultilingualNeural'''>El arcoíris tiene siete colores."}].

Incluya hasta 1000 objetos de texto si quiere obtener varios archivos de salida de vídeo. Este es el ejemplo de texto de entrada que se debe sintetizar en dos archivos de salida de vídeo: "inputs": [{"content": "synthesize this to a file"},{"content": "synthesize this to another file"}].

No necesita entradas de texto independientes para los nuevos párrafos. Dentro de cualquiera de las entradas de texto (hasta 1000), puede especificar nuevos párrafos mediante la cadena "\r\n" (nueva línea). Este es el ejemplo de texto de entrada con dos párrafos que se deben sintetizar en el mismo archivo de salida de audio: "inputs": [{"content": "synthesize this to a file\r\nsynthesize this to another paragraph in the same file"}]

Esta propiedad es necesaria cuando se crea un trabajo de síntesis por lotes. Esta propiedad no se incluye en la respuesta cuando se obtiene el trabajo de síntesis.
properties.billingDetails Número de palabras procesadas y facturadas por customNeural frente a las voces neuronales (precompiladas).

Esta propiedad es de solo lectura.
synthesisConfig Valores de configuración que se usarán para la síntesis por lotes de texto sin formato.

Esta propiedad solo es aplicable cuando inputKind se establece en "PlainText".
synthesisConfig.pitch Tono de la salida de audio.

Para obtener información sobre los valores aceptados, consulte la tabla Ajuste de la prosodia en la documentación del Lenguaje de marcado de síntesis de voz (SSML). Se omiten los valores no válidos.

Esta propiedad opcional solo es aplicable cuando inputKind se establece en "PlainText".
synthesisConfig.rate Velocidad de la salida de audio.

Para obtener información sobre los valores aceptados, consulte la tabla Ajuste de la prosodia en la documentación del Lenguaje de marcado de síntesis de voz (SSML). Se omiten los valores no válidos.

Esta propiedad opcional solo es aplicable cuando inputKind se establece en "PlainText".
synthesisConfig.style Para algunas voces, puede ajustar el estilo de habla para expresar emociones diferentes, como alegría, empatía y tranquilidad. Puede optimizar la voz para distintos escenarios, como el servicio de atención al cliente, las noticias y el asistente de voz.

Para obtener información sobre los estilos disponibles para cada voz, consulte Estilos y roles de voz.

Esta propiedad opcional solo es aplicable cuando inputKind se establece en "PlainText".
synthesisConfig.voice Voz que emite la salida de audio.

Para obtener información sobre las voces neuronales predefinidas disponibles, consulte Compatibilidad con idiomas y voces . Para usar una voz personalizada, debe especificar una asignación válida de id. de implementación y voz personalizada en la propiedad customVoices.

Esta propiedad es necesaria cuando inputKind se establece en "PlainText".
synthesisConfig.volume Volumen de la salida de audio.

Para obtener información sobre los valores aceptados, consulte la tabla Ajuste de la prosodia en la documentación del Lenguaje de marcado de síntesis de voz (SSML). Se omiten los valores no válidos.

Esta propiedad opcional solo es aplicable cuando inputKind se establece en "PlainText".
inputKind Indica si la propiedad del texto de entrada debe ser texto sin formato o SSML. Los valores posibles que no distinguen mayúsculas de minúsculas son "PlainText" y "SSML". Cuando inputKind se establece en "PlainText", también debe establecer la propiedad de voz synthesisConfig.

Se requiere esta propiedad.

Cómo editar el fondo

Actualmente, la API de síntesis por lotes de avatar no admite la configuración de vídeos en segundo plano; solo admite imágenes de fondo estáticas. Sin embargo, si desea agregar un fondo para el vídeo durante la posproducción, puede generar vídeos con un fondo transparente.

Para establecer una imagen de fondo estática, use la propiedad avatarConfig.backgroundImage y especifique una dirección URL que apunte a la imagen deseada. Además, puede establecer el color de fondo del vídeo de avatar mediante la propiedad avatarConfig.backgroundColor.

Para generar un vídeo de fondo transparente, debe establecer las siguientes propiedades para los valores necesarios en la solicitud de síntesis por lotes:

Propiedad Valores necesarios para la transparencia en segundo plano
properties.videoFormat webm
properties.videoCodec vp9
properties.backgroundColor #00000000 (o transparente)

Clipchamp es un ejemplo de una herramienta de edición de vídeo que admite un vídeo de fondo transparente generado por la API de síntesis por lotes.

Algunos programas de edición de vídeo no admiten el formato webm directamente y solo admiten una entrada de vídeo de fondo transparente de formato .mov como Adobe Premiere Pro. En tales casos, primero debe convertir el formato de vídeo de webm a .mov con una herramienta como FFMPEG.

Línea de comandos de FFMPEG:

ffmpeg -vcodec libvpx-vp9 -i <input.webm> -vcodec png -pix_fmt rgba metadata:s:v:0 alpha_mode="1" <output.mov>

FFMPEG se puede descargar desde ffmpeg.org. Reemplace <input.webm> y <output.mov> por la ruta de acceso local y el nombre de archivo en la línea de comandos.

Pasos siguientes