Whisper: Transcrevendo todos os episódios do Podcast

Até ano passado o podcast utilizava o antigo plugin podpress, resistimos até pra não perder as estatísticas, mas sempre que tinha uma atualização do PHP era uma saga pra tentar revisar o código do plugin, dessa ultima vez não teve como, estava muito trabalho e acabamos mudando para o PowerPress.

Alguns podcasts já disponibilizam a transcrição do podcast o que ajuda os mecanismos de busca a acharem os episódios não só pelo título e a descrição de cada episódio, mas também pelo pelo que é falado um bom exemplo é o Café Brasil e que tem como “efeito colateral” estrangeiros que utilizam o podcast para treinar a escuta na aprendizado de Português Brasileiro.

Pensei seriamente em formas de fazer a transcrição dos episódios, desde manualmente, buscando alguma forma de agilizar isso com alguma forma de pausar o audio sem usar as mãos, até pesquisei por controladores MIDIs no AliExpress com pedal de play e pause até deixar um outro teclado no chão que tenha teclas multimídia pra usar como pedal.

Depois de desistir de transcrever manualmente, procurei algum projeto que fosse possível fazer a transcrição offline, foi quando cheguei ao vosk, que poderia ser instalado com um simples comando do pip e possuía um treinamento com o DataSet em português do brasil.

O resultado não foi tão satisfatório, mas eu tinha a esperança de retreinar o reconhecimento em cada episódio e assim ir melhorando a acurácia com o meu próprio dataset, não vi nenhuma forma de fazer isso, pelo menos em uma busca relativamente rápida.

Segue um trecho de como estava ficando a transcrição:

Foi então que zapeando no twitter vi uma postagem do cardoso sobre como instalar o Whisper para transcrever áudios resolvi dar uma olhada também no projeto.

Fiz a instalação via pip mesmo (python3 -m pip install -U openai-whisper), achei mais simples e funcionou bem, embora ele transcrevia o meu nome cada vez de um modo diferente, mesmo assim fazer só a revisão seria bem mais simples.

Tem uma tabelinha recomendando de acordo com a quantidade de RAM no sistema, o meu Mac Mini velho de guerra, um modelo que não faz upgrade de RAM, na época eu comprei só com 4 Giga, com a van esperança de fazer upgrade a posteriore, sofreu pra transcrever até os episódios mais breves, fiz a transcrição do episódio mais curto pra testar e olha só como ficava a o tempo todo fazendo swap.

Quando você não passa nenhum parâmetro além da linguagem ele gera 4 arquivos diferentes, .vtt, .tsv, .srt e .txt além de um json com metadados de cada trecho.

Além do meu nome toda vez ter uma transcrição diferentes, tinha algumas coisas engraçadas como Cleiviany ele transcreveu como Cley Van Koff…

Fiz 2 episódios no Mac e tava meio lento, procurei outro computador pra tentar executar o processo um pouco mais rápido.

O audio é dividido em pedaços o que gera os seguimentos permitindo o paralelismo do processamento, no site oficial do projeto tem uma descrição bem detalhada de como funciona a arquitetura do processamento do audio.

Utilizando CUDA da NVIDIA

Depois de mais de um dia processando e transcrevendo todos os arquivos (mais 15 episódios), lembrei que a biblioteca do PyTorch pode utilizar os núcleos CUDA da placa de video do sistema. Nos testes anteriores eu tinha feito só com o processador, mesmo sendo um bem recente e com mais de 8 núcleos 16 threads da Intel i5 Pro. Além do meu Mac Mini velho de guerra tem um outro Notebook Dell que tem uma placa de video da nvidia dedicada, mas é um computador antigo, tive que fazer o downgrade do driver pra que a placa fosse devidamente reconhecida.

Placa devidamente reconhecida, temos que verificar se o PyTorch está usando os núcleos CUDA, e é bem simples:

$python3
>>>import torch
>>>torch.cuda.is_available()
True # se True, tudo certo! 

No meu caso, a placa de vídeo precisava ser um pouco mais recente, até tinha núcleos CUDA disponíveis, 96, mas com o driver velho, não foi possível com esse notebook.

Tive que recorrer ao notebook da criançada, e agora sim deu certo!

Rodando um episódio de aproximadamente 20 minutos foi transcrito em incríveis 3 minutos!

Eu poderia ter feito assim desde o começo pois foi muito rápido, tudo bem que foi uma nvidia que agora tinha mais de 2 mil cuda cores, por isso a transcrição tão rápida e algumas vezes até melhor do que a feita utilizando apenas o processador.

Resumo com o ChatGPT e a Limitação de Tokens

Se eu pegar a versão em texto puro e pedir um resumo pra o ChatCPT, eu não conseguiria, pois tem uma limitação de 2000 caracteres para o prompt, pelo menos no plugin pra o Microsoft Edge, porém se eu abrir o raw do arquivo que está no github e pedir um resumo, aparentemente ele fez do documento inteiro, veja só…

Conclusão

Depois de testar em 3 gerações de Dell com i5 e um Mac Mini chavoso tive tive boas relembrei bons tempos brincando com text-to-speech que na época as vozes mais próximas do português era o espanhol, dessa vez com speech-to-text.

Agora um questionamento é o que se pode fazer com os textos, eu penso que agora tenho um DataSet próprio para fazer testes com pesquisa de texto completo e muitas aplicações de Data Science, além de ajudar na indexação dos episódios pelos mecanismos de busca ou até mesmo pesquisar se ja falamos ou não de algum assunto.

Fiz também um player simples de HTML utilizando os arquivos .vtt como legenda, mesmo não sendo arquivo de vídeos a tag de video do html5 aceita colocar o mp3 colocando a trilha de caption/transcrição.

Espero que tenha gostado ler assim como foi de escrever e até a próxima….

Links:

Top 5 ferramentas de backup on-line grátis

Esse é um dos posts que a muito está no rascunho esperando ser desenvolvido, um susto com a tabela de partição do meu computador pessoal e que também uso para trabalhar trouxe novamente a tona o tema.
Sobre o incidente com minha tabela de partição não entrarei em detalhes, mas posso dizer que não perdi nenhum arquivo serviu mais de alerta para o que poderia ter acontecido. O que mais me deixou em alerta foi a possibilidade de eu ter perdido 6 anos de fotos do meu filho que não tinha backup em nenhum outro lugar.
Pois bem, a minha problemática era fazer backup preferencialmente on-line e que não me gerasse nenhum custo imediato. On-line porque a segurança de ter um HD Externo é a mesma de ter uma máquina, já do custo, vinha da possibilidade de testar várias ferramentas e possibilidades, sem pagar pra ver.
Dada essa solucionática inicial que eu não sou contra nem a favor, muito pelo contrário! Separei 5 Serviços on-line como planos na faixa para utilizar e como exemplo, aqui ordenados cronologicamente ao meu contato.

1. Dropbox – Certamente o pioneiro de todos, quando eu assinei oferecia 2G, ou seja, já servia de backup para seleção que você fazia para o pendrive que ficava pendurado junto com o seu crachá. Oferece um plano grátis de 5G, o pode aumentar até para 15G com algumas tarefas do tipo, convidar um amigo ou compartilhar na rede social.
Possui ferramentas de linha de comando que podem ser utilizadas como ferramenta de automação, cheguei a fazer um script que fazia backup do banco de dados completo diariamente e jogava para o Dropbox utilizando somente o plano gratuito.

2. One Drive (Sky Drive) – A ferramenta da microsoft/office 360 é bastante utilizado por empresas, tem um integração com windows (não apenas) e um integração com o Explorer, possui funções interessantes como a possiblidade de visualizar como a possiblidade de navegar nos arquivos pelo explorer e manter os arquivos sincronizados somente na nuvem ou também localmente.

3. iCloud (Drive) – Super cômodo para quem já está inserido no ecossistema da Apple oferece 5 Gigas gratuitos espaço que não mudou nos últimos anos. Assim como a Solução da microsoft possui uma boa integração com o Finder( O Explorer do MacOS).

4. Google Drive – É a ferramenta do ecossistema do google que possui uma solução unificada, sendo assim o espaço do seus e-mails do Gmail conta com o espaço. Quando a Motorola foi por um curto período de tempo da Google quando se comprava um Moto G você ganhava 50G ou mesmo quando se compra um Chromebook ganha 100 Gigas por 2 anos.

5. Copy – Bastante Elegante porém até o fechamento desse artigo o serviço deixou de funcionar. Como solução alternativa a gente sugere uma ferramenta OpenSource e que pode ser instalada tanto na sua infraestrutura quanto utilizar a solução em Nuvem é a NextCloud.

Algumas considerações finais, a começar por não incluir ferramentas como o Mega ou 4Shared, pois essas ferramentas tem o foco em hospedagem de arquivos para ser compartilhada por outras pessoas na internet, embora todas as ferramentas citadas aqui também tenha suporte a isso não é algo que você vai fazer no dia a dia, ou melhor que eu faria no meu dia a dia. É comum que no ambiente empresarial mais de uma solução seja adotada. 

Concluindo, tenho praticamente a quantidade de espaço disponível no meu HD principal do meu notebook, nesse caso o grande inconveniente é está tudo separado, porém e posso ficar tranquilo, que pelo menos as fotos de meu rebento tenho guardado para posteridade.

O destino ta aí pra surpreender a gente, não é verdade? No meio da escrita desse artigo eu esqueci o meu notebook no aeroporto, que me serviu de outro belo susto e só reforçar a necessidade de ter um backup de toda a minha máquina, dessa vez eu já estava um tanto precavido com coisas do trabalho, o tempo perdido praticamente foi só de setup. Esse episódio tinha um potencial de ser muito trágico, no entanto ficou tudo bem pois minha esposa pegou o notebook depois no achados e perdidos, o chato foi só ficar 2 meses sem minha máquina pessoal.

Como sempre, espero que tenham gostado da dica, ou pelo menos se compadecido de repente do meus sustos, um abraço, até a próxima postagem e que para você não seja necessário também ter passado por situações como essa antes de ter suas rotinas de backup em dia.

Links:
Dropbox
OneDrive
iCloud
Google Drive
Copy
NextCloud

 

Construindo uma Web mais compatível

Você já acessou um site e o design (ou alguma funcionalidade) estava inconsistente? Talvez estivesse OK, mas então você abriu um certo navegador (geralmente o Internet Explorer, vamos ser honestos) e aí o site não funciona? Talvez você seja um desenvolvedor e saiba como corrigir o problema, mas não sabe como entrar em contato com o proprietário do site. Eu já estive nessas situações também, e talvez esta pode ser a nossa solução.

A compatibilidade na Web se trata de garantir que os sites funcionem consistentemente em todos os navegadores e dispositivos, e às vezes, com alguns testes e alguns pequenos ajustes no site, os desenvolvedores podem garantir que mais usuários possam ter a experiência desejada. Pensando nisso, a Mozilla lançou https://webcompat.com, um site que é um convite aberto para todos os usuários da web, desenvolvedores e fornecedores de navegadores para se envolverem no esforço de compatibilidade da web.

Com extensões para Chrome e para Firefox, o usuário pode facilmente compartilhar um problema de site com a comunidade, para que eles possam trabalhar com a solução e entrar em contato com o proprietário do site para sugerir a correção, ou talvez seja um problema do navegador, então eles entrarão em contato com o desenvolvedor do navegador. Envio de problemas também são feitos sem plugin, através do próprio site do WebCompat.

Com o Web Compat, você pode contribuir de três maneiras: Reportando um Bug, Diagnosticando um bug, Tentando contato com o proprietário/desenvolvedor do site. Há outra maneira de contribuir que é contribuindo com o próprio site Web Compat, contribuições são sempre bem-vindas.

Se você quiser saber mais, siga WebCompat no twitter, faça seu login no site, envie uma mensagem para a equipe do WebCompat. Se você puder participar, a Mozilla Brasil estará no FGSL em 19 de novembro, e lá você pode ter alguma experiência real com este e outros projetos Mozilla.

Banner de Divulgação do FGSL 2016
Banner de Divulgação do FGSL 2016