Tribo do C.I. Podcast – Episódio #018 – Bate papo – Software Livre

1 por amor, 2 por dinheiro?

Batemos um papo sobre Software Livre e mercado de trabalho com profissionais que fazem ou utilizam Software Livre no seu dia a dia. É apenas uma forma de negócio? Como isso realmente impacta no socioeconômico?

Participantes:

João Felipe “Alemão”

Trabalha com Design Gráfico desde 2009 e aspirante a animador. Pioneiro em conteúdos para o youtube PT-BR sobre Enve e Friction 2D (Software livre de animação 2d). Entusiasta de Software Livre desde 2010, colaborando com palestras e conteúdos na web.

Saiba mais sobre João Felipe aka “Alemão” em http://www.deutxdesign.com/

Carlos Eduardo (Cadunico)

Designer graduado pela Universidade Veiga de Almeida, que utiliza somente Software Livre em suas produções. Foi responsável pela migração de várias instituições tais como UNESP, UFBH e ESDI-UERJ. Criador do evendo GNUGRAF (gnugraf.org). Palestrante em vários eventos, LATINOWARE, Campus Party e Rio +20.

Saiba mais sobre Carlos Eduardo aka Cadunico em http://cadunico.art.br

Sebastião Relson

Desde 2003 trabalhando com desenvolvimento de Software tendo experiência em diversas plataformas de desenvolvimento e banco de dados.

Saiba mais sobre Sebastião Relson em https://relson.info/

Lucas Sampaio

Fotógrafo
Gestor de Recursos Humanos
2,6k no dota main PL & BB

Lucas Sampaio no Instagram @sampaio_ft

Sheldon Led

Sr. Frontend Engineer – GitLab

Participa na comunidade de Software Livre e Aberto há mais de 10 anos contribuindo com palestras, organização de eventos e colaboração em geral. Como desenvolvedor de software, atua principalmente na área de Frontend e hoje é Engenheiro de Software na GitLab, escrevendo código aberto (Open Source) e código disponível (source-available) e as vezes ajudando membros da comunidade a contribuir com código ou documentação

Saiba mais sobre Sheldon Led https://sheldonled.com/

Veja Também:

Links:

Transcrição:

https://raw.githubusercontent.com/tribodoci/tribodoci-podcast-transcript/main/tribodoci_018_batepapo_sofwarelivre.txt

Onde ouvir:

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:

Elon Musk anuncia no Twitter que o algoritmo de recomendação do microblog agora é OpenSource

O código fonte bem como uma boa documentação de como funciona o algoritmo de recomendação do twitter agora está disponível no GitHub, Elson Musk usou a rede social para fazer o anuncio como havia prometido ` desde que comprou a empresa.

Em uma live Elon discutiu com os seguidores sobre o OpenSource Spaces e as pessoas que participaram utilizaram o espaços para fazer várias perguntas, incluindo sobre a monetização dos criadores de conteúdo.

Elon também comentou que com o Código Fonte aberto a comunidade poderia participar sugerindo soluções pra possíveis problemas bem como melhorias para a ferramenta.

No blog da engenharia do twitter uma postagem bem completa o time de explica as 3 etapas para escolha de quais tweets mostrarem nas recomendações que em suma é a escolha da fonte, ranqueamento e por fim a aplicação de heurísticas e filtros em que remove tweets de usuários bloqueados, ou que já foram vistos e até mesmo os que possuam algum conteúdo ofensivo.

Fabio Akita fez um vídeo com uma análise técnica e bem aprofundada na medida do possível do código que foi liberado (por curiosidade coloquei a postagem para impressão do script do vídeo e foram mais de 50 páginas impressas), inclusive ressaltando que é apenas uma parte foi liberado mas que também é bem provável que seja o código real, pelo volume de código seria contra produtivo ter sido um código forjado. No vídeo também tem uma timeline interessante sobre as três gerações dos algoritmos de recomendações da funcionalidade “Quem Seguir” e das postagens sugeridas na aba “Pra você”.

Desbloqueando o “Algoritmo” do Twitter – Introdução a Grafos

Links: