Como usar a tradução de vídeo
Nota
Esta funcionalidade está atualmente em pré-visualização pública. Essa visualização é fornecida sem um contrato de nível de serviço e não a recomendamos para cargas de trabalho de produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas. Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.
Neste artigo, você aprenderá a usar a tradução de vídeo do Azure AI Speech no estúdio.
Tudo o que é preciso para começar é um vídeo original. Veja se a tradução de vídeo suporta o seu idioma e região.
Criar um projeto de tradução de vídeo
Para criar um projeto de tradução de vídeo, siga estas etapas:
Inicie sessão no Speech Studio.
Selecione a assinatura e o recurso de fala com os quais trabalhar.
Selecione Tradução de vídeo.
Na página Criar e gerenciar projetos, selecione Criar um projeto.
Na página Novo projeto, selecione Tipo de voz.
Você pode selecionar Voz neural pré-construída ou Voz pessoal para Tipo de voz. Para voz neural pré-construída, o sistema seleciona automaticamente a voz pré-construída mais adequada, combinando a voz do alto-falante no vídeo com vozes pré-construídas. Para voz pessoal, o sistema oferece um modelo que gera replicação de voz de alta qualidade em poucos segundos.
Nota
Para usar a voz pessoal, você precisa solicitar o acesso.
Carregue seu arquivo de vídeo arrastando e soltando o arquivo de vídeo ou selecionando o arquivo manualmente.
Verifique se o vídeo está em formato .mp4, menos de 500 MB e menos de 60 minutos.
Forneça o nome do projeto e selecione Número de falantes, Idioma do vídeo, Traduzir para o idioma.
Se você quiser usar seus próprios arquivos de legendas, selecione Adicionar arquivo de legendas. Você pode optar por carregar o arquivo de legenda de origem ou o arquivo de legenda de destino. O arquivo de legendas pode estar no formato WebVTT ou JSON. Você pode baixar um arquivo VTT de exemplo para sua referência selecionando Baixar arquivo VTT de exemplo.
Depois de analisar as informações de preços e o código de conduta, prossiga para criar o projeto.
Quando o upload estiver concluído, você poderá verificar o status do processamento na guia do projeto.
Depois que o projeto é criado, você pode selecioná-lo para revisar as configurações detalhadas e fazer ajustes de acordo com suas preferências.
Verificar e ajustar as definições de voz
Na página de detalhes do projeto, o projeto oferece duas abas Traduzido e Original em Vídeo, permitindo compará-las lado a lado.
No lado direito do vídeo, você pode ver o script original e o script traduzido. Passar o mouse sobre cada parte do script original aciona o vídeo para saltar automaticamente para o segmento correspondente do vídeo original, enquanto passar o mouse sobre cada parte do script traduzido aciona o vídeo para saltar para o segmento traduzido correspondente.
Você também pode adicionar ou remover segmentos conforme necessário. Quando quiser adicionar um segmento, certifique-se de que o novo carimbo de data/hora do segmento não se sobreponha ao segmento anterior e ao próximo e que a hora de término do segmento seja maior do que a hora de início. O formato correto do carimbo de data/hora deve ser hh:mm:ss.ms
. Caso contrário, não será possível aplicar as alterações.
Você pode ajustar o período de tempo dos scripts diretamente usando a forma de onda de áudio abaixo do vídeo. Depois de selecionar Aplicar alterações, os ajustes serão aplicados.
Se você encontrar segmentos com um nome de voz "não identificado", pode ser porque o sistema não conseguiu detetar com precisão a voz, especialmente em situações em que as vozes dos alto-falantes se sobrepõem. Nesses casos, é aconselhável alterar manualmente o nome da voz.
Se quiser ajustar a voz, selecione Configurações de voz para fazer algumas alterações. Na página Configurações de voz , você pode ajustar o tipo de voz, o gênero e a voz. Selecione a amostra de voz à direita de Voz para determinar sua seleção de voz. Se você achar que há voz ausente, você pode adicionar o novo nome de voz selecionando Adicionar alto-falante. Depois de alterar as configurações, selecione Atualizar.
Se você fizer alterações várias vezes, mas não tiver concluído, só precisará salvar as alterações feitas selecionando Salvar. Depois de fazer todas as alterações, selecione Aplicar alterações para aplicá-las ao vídeo. Você será cobrado somente depois de selecionar Aplicar alterações.
Você pode traduzir o vídeo original para um novo idioma selecionando Novo idioma. Na página Traduzir, você pode escolher um novo idioma traduzido e um novo tipo de voz. Uma vez que o arquivo de vídeo tenha sido traduzido, um novo projeto é criado automaticamente.
Conteúdos relacionados
A API REST de tradução de vídeo facilita a integração perfeita da tradução de vídeo em seus aplicativos. Ele suporta upload, gerenciamento e refinamento de traduções de vídeo, com várias iterações para melhoria contínua. Neste artigo, você aprenderá a utilizar a tradução de vídeo por meio da API REST.
Este diagrama fornece uma visão geral de alto nível do fluxo de trabalho.
Você pode usar as seguintes operações da API REST para tradução de vídeo:
Operação | Método | Chamada à API REST |
---|---|---|
Criar uma tradução | PUT |
/translations/{translationId} |
Listar traduções | GET |
/translations |
Obter uma tradução por ID de tradução | GET |
/translations/{translationId} |
Criar uma iteração | PUT |
/translations/{translationId}/iterations/{iterationId} |
Listar iterações | GET |
/translations/{translationId}/iterations |
Obter uma iteração por ID de iteração | GET |
/translations/{translationId}/iterations/{iterationId} |
Obter operação por ID de operação | GET |
/operations/{operationId} |
Eliminar uma tradução por ID de tradução | DELETE |
/translations/{translationId} |
Para obter exemplos de código, consulte GitHub.
Este artigo descreve as etapas principais do processo da API, incluindo a criação de uma tradução, a criação de uma iteração, a verificação do status de cada operação, a obtenção de uma iteração por ID de iteração e a exclusão de uma tradução por ID de tradução. Para obter detalhes completos, consulte os links fornecidos para cada API na tabela.
Criar uma tradução
Para enviar uma solicitação de tradução de vídeo, você precisa construir um caminho e corpo de solicitação HTTP PUT de acordo com as seguintes instruções:
Especificar
Operation-Id
: OOperation-Id
deve ser exclusivo para cada operação. Ele garante que cada operação seja rastreada separadamente. Substitua[operationId]
por um ID de operação.Especificar
translationId
: OtranslationId
deve ser exclusivo. Substitua[translationId]
por um ID de tradução.Defina a entrada necessária: inclua detalhes como
sourceLocale
,targetLocale
,voiceKind
evideoFileUrl
. Verifique se você tem a URL de vídeo do Armazenamento de Blobs do Azure. Para obter os idiomas suportados para tradução de vídeo, consulte os idiomas de origem e de destino suportados. Você pode definirvoiceKind
parâmetro como umPlatformVoice
ouPersonalVoice
. ParaPlatformVoice
o , o sistema seleciona automaticamente a voz pré-construída mais adequada, combinando a voz do alto-falante no vídeo com vozes pré-construídas. ParaPersonalVoice
o , o sistema oferece um modelo que gera replicação de voz de alta qualidade em poucos segundos.Nota
Para usar a voz pessoal, você precisa solicitar o acesso.
Substitua
[YourResourceKey]
pela chave de recurso de Fala e substitua[YourSpeechRegion]
pela região de recurso de Fala.
A criação de uma tradução não inicia o processo de tradução. Você pode começar a traduzir o vídeo criando uma iteração. O exemplo a seguir é para o shell do Windows. Certifique-se de escapar &
com ^&
se o URL contém &
. No código de exemplo a seguir, usaremos uma URL de vídeo pública, que você pode usar para seus próprios testes.
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
Os dados criados por meio da API não aparecerão no Speech Studio e os dados entre a API e o Speech Studio não serão sincronizados.
Deverá receber um corpo de resposta no seguinte formato:
{
"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"
}
A propriedade status deve progredir de NotStarted
status, para Running
, e finalmente para Succeeded
ou Failed
. Você pode chamar a API Get operation by operation ID periodicamente até que o status retornado seja Succeeded
ou Failed
. Esta operação permite-lhe monitorizar o progresso do seu processo de tradução de criação.
Obter operação por ID de operação
Verifique o status de uma operação específica usando seu ID de operação. O ID da operação é exclusivo para cada operação, para que você possa acompanhar cada operação separadamente.
Substitua [YourResourceKey]
pela chave de recurso Fala, [YourSpeechRegion]
pela região do recurso Fala e [operationId]
pela ID da operação que você deseja verificar.
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"
Deverá receber um corpo de resposta no seguinte formato:
{
"id": "createtranslation0920-1",
"status": "Running"
}
Criar uma iteração
Para começar a traduzir seu vídeo ou atualizar uma iteração para uma tradução existente, você precisa construir um caminho e corpo de solicitação HTTP PUT de acordo com as seguintes instruções:
- Especifique
Operation-Id
: OOperation-Id
deve ser exclusivo para cada operação, como a criação de cada iteração. Substitua[operationId]
por um ID exclusivo para esta operação. - Especificar
translationId
: Se várias iterações forem executadas sob uma única tradução, o ID de tradução permanecerá inalterado. - Especificar
iterationId
: OiterationId
deve ser exclusivo para cada operação. Substitua[iterationId]
por um ID de iteração. - Defina a entrada necessária: inclua detalhes como
speakerCount
,subtitleMaxCharCountPerSegment
,exportSubtitleInVideo
ouwebvttFile
. Nenhuma legenda é incorporada no vídeo de saída por padrão. - Substitua
[YourResourceKey]
pela chave de recurso de Fala e substitua[YourSpeechRegion]
pela região de recurso de Fala.
O exemplo a seguir é para o shell do Windows. Certifique-se de escapar &
com ^&
se o URL contém &
.
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
Ao criar uma iteração, se você já tiver especificado os parâmetros speakerCount
opcionais , subtitleMaxCharCountPerSegment
e exportSubtitleInVideo
durante a criação da tradução, não precisará especificá-los novamente. Os valores herdarão das configurações de tradução. Uma vez que esses parâmetros são definidos ao criar uma iteração, os novos valores substituirão as configurações originais.
O webvttFile
parâmetro não é necessário ao criar a primeira iteração. No entanto, a partir da segunda iteração, você deve especificar o webvttFile
parâmetro no processo de iteração. Você precisa baixar o arquivo webvtt, fazer as edições necessárias e carregá-lo em seu armazenamento de Blob do Azure. Você precisa especificar a URL do Blob no código curl.
Os dados criados por meio da API não aparecerão no Speech Studio e os dados entre a API e o Speech Studio não serão sincronizados.
O arquivo de legendas pode estar no formato WebVTT ou JSON. Se você não tiver certeza sobre como preparar um arquivo WebVTT, consulte os seguintes formatos de exemplo.
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.
Deverá receber um corpo de resposta no seguinte formato:
{
"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"
}
Você pode usar operationId
o especificado e chamar a API Get operation by operation ID periodicamente até que o status retornado seja Succeeded
ou Failed
. Esta operação permite que você monitore o progresso da criação do processo de iteração.
Obter uma iteração por ID de iteração
Para recuperar detalhes de uma iteração específica por sua ID, use a solicitação HTTP GET. Substitua [YourResourceKey]
pela sua chave de recurso de Fala, [YourSpeechRegion]
pela sua região de recurso de Fala, [translationId]
pelo ID de tradução que pretende verificar e [iterationId]
pelo ID de iteração que pretende verificar.
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"
Deverá receber um corpo de resposta no seguinte formato:
{
"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 uma tradução por ID de tradução
Remover uma tradução específica identificada por translationId
. Esta operação também remove todas as iterações associadas a esta tradução. Substitua [YourResourceKey]
pela chave de recurso Fala, [YourSpeechRegion]
pela região do recurso Fala e [translationId]
pela ID de tradução que você deseja excluir. Se não for excluído manualmente, o serviço retém o histórico de traduções por até 31 dias.
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"
Os cabeçalhos de resposta incluem HTTP/1.1 204 No Content
se a solicitação de exclusão foi bem-sucedida.
Informações adicionais
Esta seção fornece comandos curl para outras chamadas de API que não são descritas em detalhes acima. Você pode explorar cada API usando os seguintes comandos.
Listar traduções
Para listar todas as traduções de vídeo que foram carregadas e processadas em sua conta de recurso, faça uma solicitação HTTP GET, conforme mostrado no exemplo a seguir. Substitua YourResourceKey
pela chave de recurso de Fala e substitua YourSpeechRegion
pela região de recurso de Fala.
curl -v -X GET -H "Ocp-Apim-Subscription-Key: [YourResourceKey]" "https://[YourSpeechRegion].api.cognitive.microsoft.com/videotranslation/translations?api-version=2024-05-20-preview"
Obter uma tradução por ID de tradução
Esta operação recupera informações detalhadas sobre uma tradução específica, identificada pelo seu exclusivo translationId
. Substitua [YourResourceKey]
pela sua chave de recurso de Fala, [YourSpeechRegion]
pela sua região de recurso de Fala e [translationId]
pelo ID de tradução que pretende verificar.
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"
Listar iterações
Liste todas as iterações para uma tradução específica. Esta solicitação lista todas as iterações sem informações detalhadas. Substitua [YourResourceKey]
pela sua chave de recurso de Fala, [YourSpeechRegion]
pela sua região de recurso de Fala e [translationId]
pelo ID de tradução que pretende verificar.
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
A seção detalha os códigos de resposta HTTP e as mensagens da API REST de tradução de vídeo.
HTTP 200 OK
HTTP 200 OK indica que a solicitação foi bem-sucedida.
Erro HTTP 204
Um erro HTTP 204 indica que a solicitação foi bem-sucedida, mas o recurso não existe. Por exemplo:
- Você tentou obter ou excluir uma tradução que não existe.
- Você excluiu com êxito uma tradução.
Erro HTTP 400
Aqui estão exemplos que podem resultar no erro 400:
- A localidade de origem ou de destino especificada não está entre as localidades suportadas.
- Você tentou usar um recurso de Fala F0 , mas a região oferece suporte apenas à camada de preço de recurso de Fala Padrão .
Erro HTTP 500
HTTP 500 Internal Server Error indica que a solicitação falhou. O corpo da resposta contém a mensagem de erro.