para eu conseguir fazer a transcrição primeira coisa que eu preciso é o arquivo de áudio do meu vídeo então fazer o seguinte const vídeo é igual A8 Prisma PV find Unic throw o que que esse método aqui faz eu quero encontrar o vídeo onde o ID seja igual ao vídeo ID que eu tenho aqui em cima se não encontrar ele vai disparar um erro ou seja throw porque eu preciso do vídeo é obrigatório que o vídeo exista para que a transcrição possa ser feita agora que eu tenho o vídeo eu vou pegar o caminho onde
esse vídeo foi salvo para eu pegar o caminho onde o vídeo foi salvo eu tenho a variável path aqui de dentro certo se eu retornar ela aqui ó vamos lá no nosso roads http Ó aqui tá o caminho exato onde o vídeo foi salvo aqui na minha máquina agora o que nós vamos fazer é eu preciso ler este arquivo aqui e enviar ele pra api que vai fazer a transcrição desse áudio em texto Então que que a gente vai fazer aqui primeiro como é que eu vou ler esse arquivo aqui novamente eu vou usar a
funcionalidade do node de streams que é basicamente eu poder ler ou escrever algo aos poucos por isso eu vou importar dentro de node file System uma função chamada Create read stream né que é uma leitura Então vou botar aqui ó áudio read stram é igual a Create read stram passando o caminho que eu quero ler o arquivo com essa audio read stram em mãos eu já posso fazer agora a trans e transcrever esse arquivo para isso a gente a gente vai usar a api da Open Ai que é a api mais famosa aí para trabalhar
com os modelos de Inteligência Artificial tanto GPT né que você já deve ter ouvido falar quanto o Whisper que é o que a gente vai usar aqui agora que é o modelo para transcrição de áudio em texto para isso o que que você vai fazer primeiro a Open a tem um plano gratuito você tem ó E acredite em mim ó dá para fazer muita coisa vai ser mais do que suficiente muito mais do que suficiente pra gente é fazer tudo aqui nessa semana só que precisa ser uma conta nova se você já tinha uma conta
aqui dentro da Open ai talvez você tenha que criar uma conta do zero para ter esses 5 dlar de novo tá com outro e-mail Sei lá Mas que que você vai fazer você vai criar sua conta e aí você vai chegar em algum momento depois de criar sua conta aqui nesse painel aqui ó beleza e aí nesse painel Você vai vir dentro aqui do seu perfil em View api Keys e aqui dentro você vai criar uma nova api Key Eu até já tinha gerado aqui uma pro nlw mas eu vou criar uma nova nlw e
a aulas vou criar ela aqui dentro copio aqui a api ke E agora como é uma informação secreta e eu não quero colocar essa chave de api direto no código eu vou colocar essa chave de api no arquivo Envy porque lembrando esse arquivo Envy aqui ele não vai ser enviado lá pro github porque ele tá ignorado aqui pelo Git Ignore então aqui dentro do Envy ó eu vou botar aqui a chave Open ai underline Key igual aspas duplas e boto a chave aqui dentro fechando aqui agora a gente vai criar vai instalar a biblioteca da
Open A então deixa eu fechar o Prism Studio instalar ai aguardar um pouquinho perfeito e agora a gente vai aqui na pasta leb Vamos criar Open a. TS e a gente vai fazer a configuração vou basicamente importar de dentro de Open ai Open a e vou exportar Open Ai que é igual a new Open ai passando aqui a minha chave de api como essa chave de api ela precisa vir aqui dentro de ponto Envy por padrão ainda na versão que eu tô executando o node que é na versão 18 o node ele não consegue ler
variáveis ambiente ou seja ler esse arquivo pon env de forma Nativa nas novas versões do node a partir da versão 20 pon alguma coisa não lembro exatamente já tem uma forma do node conseguir ler automaticamente as as variáveis ambientes Se não me engano a gente manda node.env uma parada assim só que a gente não tá usando até porque a versão 20 não é uma versão ainda e recomendada para usar em produção por isso a gente vai precisar instalar uma biblioteca chamada doin é para ler essas variáveis ambiente com essa biblioteca instalada eu posso simplesmente importar
aqui no topo do meu da do arquivo D env bar config e agora automaticamente todas as variáveis que foram declaradas aqui no arquivo.env elas vão ser inseridas dentro da variável Global do node process.env E aí eu vou usar Open Ai aqui fechou salvo isso aqui agora e a nossa e integração aqui com a Open a já tá feita como é que a gente vai testar agora a parte da transcrição eu vou vir aqui na minha rota Create transcription e vou fazer o seguinte const response igual a wait Open ai ah não conseguiu importar automaticamente Então
vamos importar aqui é esse Open Ai que a gente acabou de criar ponto audio pon transcriptions P Create e aqui eu passo para ele um objeto com algumas configurações primeiro o arquivo que eu quero transcrever E aí aqui eu vou passar Exatamente esse audio stream que a gente tem aqui de dentro segundo modelo que a gente quer usar a gente quer usar o modelo Whisper 1 que é o modelo atual né o único modelo que eles TM atualmente para transc para transcrever um áudio em texto language Qual que é o idioma falado no vídeo majoritariamente
português mesmo se tiver outros idiomas ele vai entender mas qual que é o idioma principal Além disso formato da resposta veja que tem vários né Jason formato de legenda apenas o texto verbs Jason que vem os time stamps né então a qual é essa frase é falada do segundo tal até o segundo tal vtt que é outro formato paraa legenda aqui no nosso caso vou usar Jason temperatura a temperatura ela serve exatamente o nível digamos de assertividade barra criatividade aqui eu vou deixar zero eu não vou entrar muito no mérito aqui mas o que você
precisa entender é que valores mais altos de temperatura eles geralmente deixam a resposta um pouco mais criativa porém com mais possíveis erros a temperatura ela pode ir de zero até 1 aqui se eu colocar zero ele vai ser bem estrito digamos assim nas transcrições né não não vai ter muito muita chance de muita margem E aí eu vou botar por último aqui o prompt né o prompt que a gente tá pegando aqui de dentro do bar e dando Nossa requisição que são aquelas palavras chaves para ajudar o modelo a entender algumas palavras ditas ali no
vídeo que podem ser digamos técnicas demais e agora pra gente verificar se isso aqui funcionou aqui no final de tudo eu vou retornar response text pra gente ver se esse texto foi gerado Salv aqui agora vamos lá no rootes http e vamos rodar a rota Create transcription de novo Agora vai ficar Waiting aqui embaixo ó por quê Porque esse processo de gerar transcrição quanto maior o áudio for mais vai demorar e é um processo lento não tem o que fazer infelizmente a api da Open ai ela tem essa limitação digamos assim né então aqui o
meu áudio ele tem 11 minutos mais ou menos então vai demorar pelo menos uns 30 segundos para girar existem formas muito mais rápidas de girar isso só que não são nem gratuitas e nem tem planos gratuitos então não poderia trazer aqui num evento porque seria ruim né pra maioria das pessoas mas existem formas de você rodar o Whisper por conta própria e conseguir atingir velocidades muito muito rápidas olha só que legal Demorou 39 segundos para executar e tá aqui ó toda a transcrição da aula nessa aula a gente vai conversar um pouquinho sobre fundamentos ó
da Clean architecture Então veja que ele acertou o nome bem certinho é aqui tá toda a transcrição tudo tudo que eu digo no vídeo tá aqui dentro fechou que que a gente vai fazer aqui agora a gente vai salvar esse texto Dentro lá do meu banco de dados então await Prisma pvideo update eu quero atualizar o vídeo onde o ID dele for igual ao vídeo id e os dados que eu quero atualizar dele é a transcrição que é o meu response P text que vem aqui de dentro no final de tudo aqui eu vou retornar
à transcrição a transcrição que no caso eu vou criar uma variável aqui const inscription response P text aí eu vou usar ela aqui embaixo e vou usar ela aqui também então retorno aqui pra rota pra gente ver né Essa transcrição a gente poder testar