Partilhar via


Propriedades de síntese em lote para avatar de texto para fala

As propriedades de síntese em lote podem ser agrupadas como: propriedades relacionadas ao avatar, propriedades relacionadas ao trabalho em lote e propriedades relacionadas ao texto à fala, que são descritas nas tabelas a seguir.

Algumas propriedades no formato JSON são necessárias quando você cria um novo trabalho de síntese em lote. Outras propriedades são opcionais. A resposta de síntese em lote inclui outras propriedades para fornecer informações sobre o estado da síntese e resultados. Por exemplo, a outputs.result propriedade contém o local de onde você pode baixar um arquivo de vídeo contendo o vídeo do avatar. No , você pode acessar o resumo e os detalhes de outputs.summarydepuração.

Propriedades do avatar

A tabela a seguir descreve as propriedades do avatar.

Property Description
avatarConfig.talkingAvatarCharacter O nome do personagem do avatar falante.

Os personagens avatar suportados podem ser encontrados aqui.

Esta propriedade é necessária.
avatarConfig.talkingAvatarStyle O nome de estilo do avatar falante.

Os estilos de avatar suportados podem ser encontrados aqui.

Esta propriedade é necessária para avatar pré-construído e opcional para avatar personalizado.
avatarConfig.personalizado Um valor bool que indica se o avatar a ser usado é avatar personalizado ou não. Verdadeiro para avatar personalizado e falso para avatar pré-construído.

Essa propriedade é opcional e o valor padrão é false.
avatarConfig.videoFormat O formato para o arquivo de vídeo de saída, pode ser mp4 ou webm.

O webm formato é necessário para o fundo transparente.

Esta propriedade é opcional e o valor padrão é mp4.
avatarConfig.videoCodec O codec para saída de vídeo, pode ser h264, hevc, vp9 ou av1.

Vp9 é necessário para fundo transparente. A velocidade de síntese será mais lenta com o codec vp9, pois a codificação vp9 é mais lenta.

Essa propriedade é opcional e o valor padrão é hevc.
avatarConfig.bitrateKbps A taxa de bits para saída de vídeo, que é o valor inteiro, com kbps unidade.

Essa propriedade é opcional e o valor padrão é 2000.
avatarConfig.videoCrop Esta propriedade permite cortar a saída de vídeo, o que significa produzir uma subárea retangular do vídeo original. Esta propriedade tem dois campos, que definem o vértice superior esquerdo e o vértice inferior-direito do retângulo.

Essa propriedade é opcional e o comportamento padrão é produzir o vídeo completo.
avatarConfig.videoCrop.topLeft O vértice superior esquerdo do retângulo para corte de vídeo. Esta propriedade tem dois campos x e y, para definir a posição horizontal e vertical do vértice.

Esta propriedade é necessária quando properties.videoCrop é definido.
avatarConfig.videoCrop.bottomRight O vértice inferior direito do retângulo para corte de vídeo. Esta propriedade tem dois campos x e y, para definir a posição horizontal e vertical do vértice.

Esta propriedade é necessária quando properties.videoCrop é definido.
avatarConfig.subtitleType O tipo de legenda para o arquivo de vídeo do avatar pode ser external_file, soft_embedded, hard_embeddedou none.

Essa propriedade é opcional e o valor padrão é soft_embedded.
avatarConfig.backgroundImage Adicione uma imagem de fundo usando a avatarConfig.backgroundImage propriedade. O valor da propriedade deve ser uma URL apontando para a imagem desejada. Esta propriedade é opcional.
avatarConfig.backgroundColor Cor de fundo do vídeo do avatar, que é uma cadeia de caracteres no formato #RRGGBBAA. Nesta string: RR, GG, BB e AA significam os canais vermelho, verde, azul e alfa, com intervalo de valores hexadecimais 00~FF. O canal alfa controla a transparência, com valor 00 para transparente, valor FF para não transparente e valor entre 00 e FF para semitransparente.

Essa propriedade é opcional e o valor padrão é #FFFFFFFF (branco).
saídas.resultado A localização do arquivo de resultado da síntese em lote, que é um arquivo de vídeo contendo o avatar sintetizado.

Esta propriedade é somente leitura.
propriedades. DurationInMilliseconds A duração da saída de vídeo em milissegundos.

Esta propriedade é somente leitura.

Propriedades do trabalho de síntese em lote

A tabela a seguir descreve as propriedades do trabalho de síntese em lote.

Property Description
createdDateTime A data e a hora em que o trabalho de síntese em lote foi criado.

Esta propriedade é somente leitura.
descrição A descrição da síntese do lote.

Esta propriedade é opcional.
ID O ID do trabalho de síntese em lote.

Esta propriedade é somente leitura.
lastActionDateTime A data e hora mais recentes em que o valor da propriedade status foi alterado.

Esta propriedade é somente leitura.
propriedades Um conjunto definido de definições de configuração de síntese em lote opcionais.
propriedades.destinationContainerUrl Os resultados da síntese em lote podem ser armazenados em um contêiner gravável do Azure. Se você não especificar um URI de contêiner com token SAS (assinaturas de acesso compartilhado), o serviço de Fala armazenará os resultados em um contêiner gerenciado pela Microsoft. Não há suporte para SAS com políticas de acesso armazenado. Quando o trabalho de síntese é excluído, os dados do resultado também são excluídos.

Essa propriedade opcional não é incluída na resposta quando você recebe o trabalho de síntese.
propriedades.timeToLiveInHours Uma duração em horas após a criação do trabalho de síntese, quando os resultados da síntese serão automaticamente excluídos. O tempo máximo de vida é de 744 horas. A data e a hora da exclusão automática, para trabalhos de síntese com um status de "Succeeded" ou "Failed" é calculada como a soma das propriedades lastActionDateTime e timeToLive.

Caso contrário, você pode chamar o método de síntese de exclusão para remover o trabalho mais cedo.
status O status de processamento da síntese em lote.

O status deve progredir de "NotStarted" para "Running" e, finalmente, para "Succeeded" ou "Failed".

Esta propriedade é somente leitura.

Propriedades de conversão de texto em fala

A tabela a seguir descreve as propriedades de conversão de texto em fala.

Property Description
customVoices Uma voz neural personalizada está associada a um nome e sua ID de implantação, assim: "customVoices": {"your-custom-voice-name": "502ac834-6537-4bc3-9fd6-140114daa66d"}

Você pode usar o nome de voz em seu synthesisConfig.voice quando inputKind está definido como "PlainText", ou dentro do texto SSML de entradas quando inputKind está definido como "SSML".

Esta propriedade é necessária para usar uma voz personalizada. Se você tentar usar uma voz personalizada que não está definida aqui, o serviço retornará um erro.
Insumos O texto simples ou SSML a ser sintetizado.

Quando o inputKind estiver definido como "PlainText", forneça texto sem formatação como mostrado aqui: "inputs": [{"content": "The rainbow has seven colors."}]. Quando o inputKind estiver definido como "SSML", forneça texto na Speech Synthesis Markup Language (SSML) como mostrado aqui: "inputs": [{"content": "<speak version=''1.0''' xml:lang=''en-US'''voice>< xml:lang=''en-US''' xml:gender=''Female''' name=''en-US-AvaMultilingualNeural'''O> arco-íris tem sete cores."}].

Inclua até 1.000 objetos de texto se quiser vários arquivos de saída de vídeo. Aqui está um exemplo de texto de entrada que deve ser sintetizado em dois arquivos de saída de vídeo: "inputs": [{"content": "synthesize this to a file"},{"content": "synthesize this to another file"}].

Você não precisa de entradas de texto separadas para novos parágrafos. Em qualquer uma das entradas de texto (até 1.000), você pode especificar novos parágrafos usando a cadeia de caracteres "\r\n" (nova linha). Aqui está um exemplo de texto de entrada com dois parágrafos que devem ser sintetizados para o mesmo arquivo de saída de áudio: "inputs": [{"content": "sintetizar isso para um arquivo\r\nsintetizar isso para outro parágrafo no mesmo arquivo"}]

Essa propriedade é necessária quando você cria um novo trabalho de síntese em lote. Essa propriedade não é incluída na resposta quando você recebe o trabalho de síntese.
propriedades.faturaçãoDetalhes O número de palavras que foram processadas e faturadas por vozes customNeural versus neurais (pré-construídas).

Esta propriedade é somente leitura.
synthesisConfig As definições de configuração a serem usadas para síntese em lote de texto sem formatação.

Esta propriedade só é aplicável quando inputKind está definido como "PlainText".
synthesisConfig.pitch O tom da saída de áudio.

Para obter informações sobre os valores aceitos, consulte a tabela de ajuste de prosódia na documentação SSML (Speech Synthesis Markup Language). Os valores inválidos são ignorados.

Esta propriedade opcional só é aplicável quando inputKind está definido como "PlainText".
synthesisConfig.rate A taxa da saída de áudio.

Para obter informações sobre os valores aceitos, consulte a tabela de ajuste de prosódia na documentação SSML (Speech Synthesis Markup Language). Os valores inválidos são ignorados.

Esta propriedade opcional só é aplicável quando inputKind está definido como "PlainText".
synthesisConfig.style Para algumas vozes, você pode ajustar o estilo de fala para expressar diferentes emoções, como alegria, empatia e calma. Você pode otimizar a voz para diferentes cenários, como atendimento ao cliente, noticiário e assistente de voz.

Para obter informações sobre os estilos disponíveis por voz, consulte Estilos e funções de voz.

Esta propriedade opcional só é aplicável quando inputKind está definido como "PlainText".
synthesisConfig.voice A voz que fala a saída de áudio.

Para obter informações sobre as vozes neurais pré-construídas disponíveis, consulte Suporte de idioma e voz. Para usar uma voz personalizada, você deve especificar um mapeamento de voz e ID de implantação personalizado válido na propriedade customVoices.

Esta propriedade é necessária quando inputKind é definido como "PlainText".
synthesisConfig.volume O volume da saída de áudio.

Para obter informações sobre os valores aceitos, consulte a tabela de ajuste de prosódia na documentação SSML (Speech Synthesis Markup Language). Os valores inválidos são ignorados.

Esta propriedade opcional só é aplicável quando inputKind está definido como "PlainText".
inputKind Indica se a propriedade de texto de entrada deve ser texto sem formatação ou SSML. Os possíveis valores que não diferenciam maiúsculas de minúsculas são "PlainText" e "SSML". Quando o inputKind é definido como "PlainText", você também deve definir a propriedade de voz synthesisConfig.

Esta propriedade é necessária.

Como editar o plano de fundo

A API de síntese de lote de avatar atualmente não suporta a configuração de vídeos de fundo; ele só suporta imagens de fundo estáticas. No entanto, se você quiser adicionar um plano de fundo para o seu vídeo durante a pós-produção, você pode gerar vídeos com um fundo transparente.

Para definir uma imagem de fundo estática, use a avatarConfig.backgroundImage propriedade e especifique uma URL apontando para a imagem desejada. Além disso, você pode definir a cor de fundo do vídeo do avatar usando a avatarConfig.backgroundColor propriedade.

Para gerar um vídeo de fundo transparente, você deve definir as seguintes propriedades para os valores necessários na solicitação de síntese em lote:

Property Valores necessários para transparência de fundo
propriedades.videoFormat WebM
propriedades.videoCodec VP9
propriedades.backgroundColor #00000000 (ou transparent)

Clipchamp é um exemplo de uma ferramenta de edição de vídeo que suporta o vídeo de fundo transparente gerado pela API de síntese em lote.

Alguns softwares de edição de vídeo não suportam o formato diretamente e suportam apenas .mov a entrada de vídeo de fundo transparente como o webm Adobe Premiere Pro. Nesses casos, você primeiro precisa converter o formato de vídeo de webm para .mov com uma ferramenta como FFMPEG.

Linha de comando FFMPEG:

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

FFMPEG pode ser baixado ffmpeg.org. Substitua <input.webm> e <output.mov> pelo caminho local e nome do arquivo na linha de comando.

Próximos passos