Adicionando Legendas em Vídeo de forma automática por Reconhecimento Automático de Fala

Que tal adicionar legenda naquele filme que você baixou rodando apenas uma linha de comando? Usando reconhecimento automático de fala em áudio isso é possível! E muito mais!

[ Hits: 3.347 ]

Por: leandro peçanha scardua em 07/01/2024 | Blog: https://leandropecanhascardua.github.io/


Transcrevendo



Agora alguns exemplos práticos.

Vamos supor que temos um arquivo que desejamos transcrever, mas que não queremos fazer isso manualmente, isto é, ouvindo e escrevendo, ou pelo menos desejamos diminuir ao máximo nosso trabalho. É sempre importante sabermos de antemão o idioma falado no áudio que desejamos transcrever.

Como exemplo, baixei em meu hd o conteúdo do vídeo disponível em https://www.youtube.com/watch?v=-bX4pf-s8-E.

Já sei que o vídeo está no idioma português. Saber o idioma é fundamental para um uso eficaz e produtivo da ferramenta como falei no início.

Assim, eu tenho o arquivo "Como-fazer-a-sua-propria-distro-Linux-do-zero-Linux-from-scratch-YouTube.mp4" e desejo obter uma transcrição dele. Se eu rodar:

vosk-transcriber -i "Como-fazer-a-sua-propria-distro-Linux-do-zero-Linux-from-scratch-YouTube.mp4"

imediatamente o Vosk-transcriber começa a fazer seu trabalho. Porém, o resultado do processamento é exibido na tela (em vez de ser salvo em arquivo). Outro problema é que é usado o idioma inglês (por padrão), o que resultará em um grande erro. Na primeira tarefa de transcrição do vídeo em um determinado idioma aparecerá o download da mesma para depois ser iniciada a transcrição. Por exemplo, fazendo uma transcrição em Português sem ter antes efetuado essa tarefa neste idioma, aparecerá apenas nessa vez a mensagem de download e assim por diante.

Portanto, nossa primeira intervenção será para salvarmos o resultado em um arquivo (digamos, com o nome "Como-fazer-a-sua-propria-distro-Linux-do-zero-Linux-from-scratch-YouTube.txt").

Assim, podemos executar:

vosk-transcriber -i "Como-fazer-a-sua-propria-distro-Linux-do-zero-Linux-from-scratch-YouTube.mp4" -o "Como-fazer-a-sua-propria-distro-Linux-do-zero-Linux-from-scratch-YouTube.txt"

Mas isso ainda vai usar o inglês por padrão. Portanto, vamos usar o idioma português para fazer o reconhecimento do áudio usando opção -l:

vosk-transcriber -l pt -i "Como-fazer-a-sua-propria-distro-Linux-do-zero-Linux-from-scratch-YouTube.mp4" -o "Como-fazer-a-sua-propria-distro-Linux-do-zero-Linux-from-scratch-YouTube.txt"

Agora podemos ver que o resultado começa a se tornar interessante!

Agora entra em cena a questão dos modelos. Com eles é possível melhorar ainda mais a precisão do reconhecimento selecionando modelos com mais dados (maiores). Mas tenha em mente que isso terá um custo: o modelo será baixado pela internet e, se for maior, maior carga de processamento será utilizada, representando mais tempo de transcrição.

Modelos são os conjuntos usados para fazer o treinamento dentro do algoritmo. Por exemplo, o modelo vosk-model-small-pt-0.3 tem 31Mb enquanto o modelo vosk-model-pt-fb-v0.1.1-20220516_2113 tem 1.6 Gb! A lista dos modelos disponíveis pode ser obtida com (estando ou não na pasta de transcrição, como no meu exemplo):

vosk-transcriber –list-models

a lista de idiomas suportados pode ser obtida com:

vosk-transcriber –list-languages

para facilitar nossa vida podemos filtrar os modelos disponíveis para um idioma usando o grep. Por exemplo, para o idioma Português:

vosk-transcriber –list-models | grep pt vosk-model-pt-fb-v0.1.1-20220516_2113 vosk-model-pt-fb-v0.1.1-pruned vosk-model-small-pt-0.3

Uma descrição online (assim como o tamanho de cada modelo) pode ser consultada em https://alphacephei.com/vosk/models. Mas é bom ter em mente que essa página não é muito atualizada, tendo em vista que alguns modelos não estão listados lá.

Assim, se quisermos fazer nossa transcrição usando o modelo vosk-model-pt-fb-v0.1.1-20220516_2113 (que tem 1.6Gb!), podemos rodar:

vosk-transcriber -l pt -i "Como-fazer-a-sua-propria-distro-Linux-do-zero-Linux-from-scratch-YouTube.mp4" -o "Como-fazer-a-sua-propria-distro-Linux-do-zero-Linux-from-scratch-YouTube.txt" -n vosk-model-pt-fb-v0.1.1-20220516_2113

Se você rodou os exemplos acima percebeu que o resultado é apenas um arquivo de texto plano com o resultado das frases ditas no vídeo.

Falta cumprir nossa promessa de obter um arquivo de legendas. Para isso podemos passar o parâmetro -t:

vosk-transcriber -l pt -t srt -i "Como-fazer-a-sua-propria-distro-Linux-do-zero-Linux-from-scratch-YouTube.mp4" -o "Como-fazer-a-sua-propria-distro-Linux-do-zero-Linux-from-scratch-YouTube.srt"

Feito isso podemos abrir nosso programa de vídeo favorito e carregar nossa legenda recém criada! Podemos legendar nosso filme favorito com apenas um comando!!!!! Eita Linux danado, que abundância meu irmão!!!!

Página anterior     Próxima página

Páginas do artigo
   1. Instalação
   2. Transcrevendo
   3. Conclusão
Outros artigos deste autor

Rodando um aplicativo em modo Kiosk no Ubuntu Linux 20.04

Debugando aplicações PHP usando phpdbg - parte 01

Leitura recomendada

Docalysis: Análise de Documentos com Inteligência Artificial

Tradução do artigo do filósofo Gottfried Wilhelm Leibniz sobre o sistema binário

E a guerra contra bots continua

Aprenda a criar músicas com Inteligência Artificial usando Suno AI

Como ter o chatGPT no terminal Linux

  
Comentários
[1] Comentário enviado por maurixnovatrento em 14/01/2024 - 14:22h

Era isso que eu queria. Muito bom. Só uma dúvida? Precisa do pipewire instalado no sistema pra funcionar o pipewire-libjack?

___________________________________________________________
https://www.youtube.com/@LinuxDicasPro
https://github.com/mxnt10

[2] Comentário enviado por fabio em 17/01/2024 - 02:55h

Muito útil o tema do artigo, parabéns!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts