Novo recurso: transcrever vídeos automaticamente com legendas

Recentemente, adicionamos um novo recurso ao /speech/transcribe, nosso Robot, permitindo que ele reconheça a fala humana e gere arquivos SRT. Você pode usar esses arquivos para legendar mídias automaticamente em players de vídeo. E, graças à possibilidade de combinar recursos da Transloadit como peças de LEGO, você pode até gravar essas legendas diretamente nos próprios vídeos. Hoje, quero mostrar como fazer isso.

A IA está presente em mais áreas da vida do que você imagina, e por um bom motivo. Ela pode aumentar significativamente a velocidade, a precisão e a eficácia dos esforços humanos. Ainda assim, a enorme quantidade de dados, a higienização desses dados e as placas de vídeo necessárias para treinar modelos complexos podem fazer a IA parecer intimidante, o que pode impedir empresas menores de aproveitá-la. A Transloadit tem a missão de colocar a IA nas mãos de mais desenvolvedores, tornando muito mais fácil usá-la e criar valor com ela.
Ao longo dos anos, lançamos uma série (English) de Robots baseados em IA que são simples de integrar e usar. Você não precisará gastar nem um segundo aprendendo sobre modelos de IA ou treinando esses modelos.
O Robot de IA que vamos explorar hoje é o /speech/transcribe, nosso Robot. Esse Robot pode ler qualquer arquivo de áudio ou vídeo e criar arquivos de texto automaticamente, dispensando você de fazer transcrições tediosas. Ele já oferece benefícios adicionais, como compatibilidade com vários idiomas e a opção de usar a IA da Amazon ou do Google alterando apenas um parâmetro. A Transloadit cuida de todos os detalhes de implementação nos bastidores e oferece uma interface única que pode ser integrada a fluxos de trabalho com outros Robots, aumentando muito o valor que esses bots de IA já oferecem. O conjunto passa a valer muito mais que a soma de suas partes. Trocar de provedor alterando três caracteres também permite descobrir rapidamente qual deles atende melhor ao seu caso de uso. Você não precisa se preocupar com o tratamento de erros ou com o envio de arquivos com os codecs, as larguras de banda e outros aspectos adequados. A Transloadit cuida de tudo isso para você e oferece esses recursos como um serviço que pode ser usado com uma única receita declarativa em JSON.
Como começar
Neste post, vamos combinar /speech/transcribe e /video/subtitle, nossos Robots, para transcrever a fala humana em um vídeo e depois gravar as legendas geradas diretamente no próprio vídeo. Embora fazer isso manualmente às vezes possa trazer resultados melhores, é um processo caro e tedioso, a ponto de se tornar inviável. Para muitos fins, observamos que nossos clientes consideram a transcrição automática “boa o suficiente”, com uma redução de custos tão expressiva que transcrever vídeos passa a ser uma opção atraente.
Um caso de uso é compartilhar vídeos nas redes sociais, onde já se comprovou que vídeos com legendas chamam muito mais a atenção do que aqueles sem legendas.
Muitas vezes, os arquivos de transcrição também são indexados por ferramentas como o ElasticSearch, permitindo encontrar vídeos por meio de buscas. Uma busca por qualquer palavra falada no vídeo retornará resultados, em vez de encontrar apenas correspondências no título do vídeo.
Abaixo está a receita que usamos para combinar nossos dois recursos. Chamamos essa receita de Assembly Instructions. Salve-a em um Template na sua conta para reutilizá-la a qualquer momento. Vamos analisar cada Step e depois experimentar.
Primeiro, crie uma credencial de Template do Amazon S3 chamada s3_cred
para o seu próprio bucket privado. Mantenha o S3 Block Public Access ativado e não forneça cabeçalhos
de ACL ou de concessão de permissões. A exportação abaixo define acl como bucket-default para omitir o cabeçalho de ACL gerado;
caso contrário, /s3/store usa public-read como valor padrão. A leitura do vídeo privado e da transcrição exige
autorização de leitura separada; as URLs retornadas não concedem acesso.
{
"steps": {
":original": {
"robot": "/upload/handle"
},
"transcribed": {
"use": ":original",
"robot": "/speech/transcribe",
"provider": "gcp",
"format": "srt",
"result": true
},
"subtitled": {
"use": {
"bundle_steps": true,
"steps": [
{
"name": ":original",
"as": "video"
},
{
"name": "transcribed",
"as": "subtitles"
}
]
},
"robot": "/video/subtitle",
"ffmpeg_stack": "v7",
"preset": "ipad-high",
"result": true
},
"exported": {
"use": ["subtitled", "transcribed"],
"robot": "/s3/store",
"credentials": "s3_cred",
"acl": "bucket-default"
}
}
}
Nosso primeiro Step, que usa /upload/handle, nosso Robot, serve para, bem, lidar com nossos uploads. Quem diria? Esse Step permite fazer o upload do seu arquivo. Mas lembre-se de que temos muitos outros Robots disponíveis para importar arquivos.
Agora vamos ao nosso segundo Step, "transcribed", no qual entra em cena a magia da IA
que mencionamos antes. Configuramos um parâmetro provider com o valor de API "gcp", mas você também poderia usar o
valor "aws". Além disso, precisamos configurar um parâmetro format. Como queremos
incorporar legendas a um vídeo, optamos pelo formato "srt". Outra opção seria usar
"webvtt", mas suas vantagens em relação a "srt" não são necessárias para o nosso caso de uso.
Você poderia exportar os arquivos SRT separadamente para sobrepor as legendas no player de vídeo.
Neste caso, porém, vamos gravar as legendas geradas diretamente no arquivo de vídeo enviado
inicialmente, usando /video/subtitle, nosso Robot. Para combinar os dois
Steps, referencie os dois Steps, o de upload e o de legendas, no
parâmetro use de /video/subtitle, nosso Robot, usando a
sintaxe de nomenclatura use.steps[].as.
Por fim, use /s3/store, nosso Robot, para exportar nossos resultados para o Amazon S3. Assim como o primeiro Step, esse Step pode ser facilmente substituído, pois oferecemos muitas outras opções de exportação.
Testes
Para testar nosso Template, decidimos usar um trecho curto da fenomenal série de David Attenborough, Planet Earth.
Como você pode ver, a Assembly foi bem-sucedida. Graças à IA, não precisamos passar pelo processo trabalhoso de criar um arquivo de legendas manualmente.
Agora, esse fluxo de trabalho pode ser integrado ao seu aplicativo web ou móvel, serviço de back-end ou utilitário de linha de comando por meio de 20 SDKs práticos, como o Uppy ou o SDK para Go, além de diretamente pela nossa REST API em JSON.
Queremos saber o que você vai criar com a gente. Conte para nós no Twitter!