Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save turicas/da12b3c8e67a27e088d12d9c41be65d9 to your computer and use it in GitHub Desktop.
Save turicas/da12b3c8e67a27e088d12d9c41be65d9 to your computer and use it in GitHub Desktop.
Transcrição de textos em Português com whisper (OpenAI)
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@ivanpfigueiredo
Copy link

ivanpfigueiredo commented Dec 6, 2023 via email

@celestino-lourenco
Copy link

boa tarde, baixei o whisper é a transcrição no padrão medim é muito boa. Porém a transcirção é muito lenta. Leva 15 minutos para transcrever 1 minuto de audio de mp3! Como o audio tem 120 minutos vai levar dias para fazer a transcrição! Isso se a internet não cair! Essa performance é normal ou anormal. Estou usando o formato CPU, porque se usar o GPU T4 o arquivo não carrega e dá pau! tem como acelerar o processo para que o uso seja viável para mim ? grato pela ajuda

@jmsmoreira
Copy link

@celestino-lourenco Costumo transcrever mp3 de 20 minutos no padrão Medium e não leva 4 minutos... Não sei porque, mas como dito acima, não estava gerando o arquivo para download no fim da transcrição. Aí passei a usar o seguinte código e deu certo, transcreve rápido e gera o arquivo em txt e outros formatos para download. Segue como uso

!pip install git+https://github.com/openai/whisper.git
!sudo apt update && sudo apt install ffmpeg

!pip install openai-whisper
import subprocess

!whisper "Nomedoarquivo.mp3" --model medium --language pt

Assim gera o arquivo para dowload. Deixo também o ambiente de execução em GPU

@celestino-lourenco
Copy link

Olá Moreira grato pelo retorno, carreguei os 3 scripts indicados por ti. Mas deu dois conflitos : 1) quando carreguei o scrip - !whisper "ID_19_MICHELLE POJETO_3_EPs.mp3" --model medium --language pt - deu o seguinte erro
_.../bin/bash: line 1: whisper: command not found. Isso com ou sem o termo "--language pt".
2) Em ambiente de execução / acelerado de hardware tinham apenas as opções CPU, T4 GPU, TPU. Quando ativei o T4 GPU o arquivo MP3 sumiu e com o CPU o arquivo ficava presente. Caso você tenha alguma sugestão para superar esses dois conflitos agradeço-lhe muito. Muito obrigado

@jmsmoreira
Copy link

@celestino-lourenco duas coisas. sobre o arquivo sumir... vc começa o processo alterando o ambiente, depois carrega o mp3... Quer me mandar o arquivo, eu faço a transcrição e te devolvo... Talvez seja mais fácil. Aí eu te mando as prints da tela... Meu e-mail é jmsmoreira@gmail.com

@ivanpfigueiredo
Copy link

!pip install git+https://github.com/openai/whisper.git !sudo apt update && sudo apt install ffmpeg

!pip install openai-whisper import subprocess

!whisper "Nomedoarquivo.mp3" --model medium --language pt

Obrigado!

@GabrielaVictorio
Copy link

!pip install git+ https://github.com/openai/whisper.git !sudo apt update && sudo apt install ffmpeg

!pip install subprocesso de importação openai-whisper

!whisper "Nomedoarquivo.mp3" --model médio --linguagem pt

Assim gera o arquivo para download. Deixo também o ambiente de execução em GPU

Fiz exatamente como vc postou, mas meu áudio está demorando horas pra ser transcrito (20 min).
Tem mais alguma coisa que eu possa fazer?

@mesompi
Copy link

mesompi commented Mar 8, 2024

Estava enfrentando o seguinte erro na saída do comando

AssertionError: libcuda.so cannot found!

Para corrigir execute antes do !pip

Audio disponível aqui

!export LC_ALL="en_US.UTF-8"
!export LD_LIBRARY_PATH="/usr/lib64-nvidia"
!export LIBRARY_PATH="/usr/local/cuda/lib64/stubs"
!ldconfig /usr/lib64-nvidia


!pip install openai-whisper
import subprocess

filename = "/content/Alfabeto_portugues_brasileiro.ogg"
model_name = "medium"
completed_process  = subprocess.run(
  [
    "whisper", 
    "--language", "pt", 
    "--word_timestamps", "True",
    "--model", model_name, 
    "--output_dir", f"output-{model_name}", 
    filename
  ],
    capture_output=True,  # Capture the output of the process
    text=True  # Convert the output to text (for Python 3.7 and later)
)


# Print the output of the process
print("STDOUT:", completed_process.stdout)
print("STDERR:", completed_process.stderr)

@mileenamury
Copy link

Pessoal, encontrei uma forma similar que funcionou 100%! Não estava conseguindo também e encontrei esse vídeo: https://www.youtube.com/watch?v=9prLBRpwZ78&list=LL&index=4

É simples: primeiro altere a execução do ambiente, mudando o tipo para T4GPU.

copie para executar: !pip install git+https://github.com/openai/whisper.git

!sudo apt update && sudo apt install ffmpeg

Quando terminar a execução, você carrega seu arquivo mp3, e arrasta ele para a pasta "sample_data".

Daí vc executa o seguinte comando em outra linha:

!whisper "/content/sample_data/arquivo.mp3" --model medium

Precisa ser especificamente o caminho do arquivo dentro da pasta sample, como fazer isso? 3 pontinhos e "copiar caminho".
Execute e baixe o arquivo txt.
O arquivo que transcrevi tinha 1h 27min, e deu tudo certo no "medium". Demorou 21 minutos.

prints:
Captura de tela 2024-03-23 172430
Captura de tela 2024-03-23 172452

Captura de tela 2024-03-23 172856

@vieiradatalab
Copy link

Olá, bom dia!
Muito obrigado pelo tutorial e pelas dicas!!
Já estou usando aqui para transcrição de entrevistas.... muito bom.
Só uma dúvida...
É possível fazer algum tipo de marcação entre as pessoas que falam?
Tipo... Entre o entrevistador e o entrevistado...
Fazer marcações...
Isso é fala do entrevistador...
Isso é fala do entrevistado...
Pode haver algum parâmetro que se possa configurar para isso?

@turicas
Copy link
Author

turicas commented Mar 27, 2024

Olá, bom dia! Muito obrigado pelo tutorial e pelas dicas!! Já estou usando aqui para transcrição de entrevistas.... muito bom. Só uma dúvida... É possível fazer algum tipo de marcação entre as pessoas que falam? Tipo... Entre o entrevistador e o entrevistado... Fazer marcações... Isso é fala do entrevistador... Isso é fala do entrevistado... Pode haver algum parâmetro que se possa configurar para isso?

@vieiradatalab o modelo whisper não permite fazer essa segmentação de quem está falando. Existem alguns outros modelos que fazem, mas não tenho exemplos prontos e fáceis de usar assim.

@vieiradatalab
Copy link

Olá, bom dia! Muito obrigado pelo tutorial e pelas dicas!! Já estou usando aqui para transcrição de entrevistas.... muito bom. Só uma dúvida... É possível fazer algum tipo de marcação entre as pessoas que falam? Tipo... Entre o entrevistador e o entrevistado... Fazer marcações... Isso é fala do entrevistador... Isso é fala do entrevistado... Pode haver algum parâmetro que se possa configurar para isso?

@vieiradatalab o modelo whisper não permite fazer essa segmentação de quem está falando. Existem alguns outros modelos que fazem, mas não tenho exemplos prontos e fáceis de usar assim.

Opa... muito obrigado pela resposta.
Nós usávamos a ferramenta "transcriptor". Essa ferramenta faz a segmentação de quem está falando. Contudo, a qualidade da transcrição é muito ruim. Por isso estamos buscando outras alternativas.
Mesmo sem exemplos prontos, vc consegue citar outros modelos que possam fazer essa segmentação??

@turicas
Copy link
Author

turicas commented Apr 1, 2024

@guilhermegomes2
Copy link

guilhermegomes2 commented May 8, 2024

Olá amigo @turicas

Como faço para que, no arquivo TXT, também sair impresso o tempo inicial e final do áudio?

@bishoppython
Copy link

Olá Amigos eu fiz dessa forma e também obtive êxito!
!whisper "arquivo.mp3" --language Portuguese --model medium #or large or small

espero poder ter ajudado!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment