About the model
This model is a fine tuning of whisper v3 with adjustment for cases of judicial actions in the Portuguese language. The model was adjusted with more than 20 hours of hearing audios, direct instructions on the constitution and others. This model is available with peft adapters
Installing dependencies
!pip install transformers
!pip install einops accelerate bitsandbytes
!pip install sentence_transformers
!pip install git+https://github.com/huggingface/peft.git
Loading and configuring the model
from peft import PeftModel, PeftConfig
from transformers import WhisperForConditionalGeneration,BitsAndBytesConfig
task = "transcribe"
language = "portuguese"
nf8_config = BitsAndBytesConfig(
load_in_8bit=True
)
peft_model_id = "rhaymison/legal-whisper-portuguese-peft"
peft_config = PeftConfig.from_pretrained(peft_model_id)
model = WhisperForConditionalGeneration.from_pretrained(peft_config.base_model_name_or_path,
quantization_config=nf8_config,
device_map="auto"
)
model = PeftModel.from_pretrained(model, peft_model_id)
Load in 4bit
ps: In 4 bits the model may not present great performance, I recommend using 8 which has a high level of quality
import torch
nf4_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_use_double_quant=True,
bnb_4bit_compute_dtype=torch.float16
)
model = WhisperForConditionalGeneration.from_pretrained(peft_config.base_model_name_or_path,
quantization_config=nf4_config,
device_map="auto")
Loading processor
from transformers import WhisperProcessor
processor = WhisperProcessor.from_pretrained(peft_config.base_model_name_or_path, language=language, task=task)
Converting our audio to a sample rate of 16000 and saving. If necessary install or pydub
from pydub import AudioSegment
audio = AudioSegment.from_wav('/content/audio.wav')
audio = audio.set_frame_rate(16000)
audio.export('z.wav', format='wav')
Configuring the pipeline
import torch
from transformers import pipeline
device = "cuda:0" if torch.cuda.is_available() else "cpu"
pipe = pipeline(
"automatic-speech-recognition",
model=model,
tokenizer=processor.tokenizer,
feature_extractor=processor.feature_extractor,
max_new_tokens=128,
chunk_length_s=30,
batch_size=16, #adapter for your use case
return_timestamps=True,
torch_dtype = torch.float16
)
Performing transcription
transcription = pipe("/content/z.wav",generate_kwargs={"language": "portuguese"})
The reference audio was extracted from the video below. output: Video: https://www.youtube.com/watch?v=fHJaQDMSIX4
#Nome completo? Anderson Lacerda. O senhor sofreu agressão no momento da sua prisão? Não, senhora. Tem alguma doença? Tem alguns.
#O que o senhor tem? Pressão, diabetes. Mas o senhor toma medicação de uso controlado? Tomo. Então o senhor tem problema de pressão alta? Insulina, injetável.
#Então, mais algumas. Coração. Então, você tem problema de pressão alta? Tem. Pressão alta e diabetes? Sim. Eu sou infartado. Tá.
#E toma medicações pro coração. Faz tratamento. É isso? As três doenças. Ok. É... É isso? É isso Faz tratamento.
#É isso? As três doenças. Ok. Os senhores estão aqui em razão de um mandado de prisão temporária. Contra os senhores, uma investigação por crime de tráfico de drogas.
#O prazo de prisão dos senhores é de 30 dias inicialmente. Eventualmente, se verificar a participação dos senhores nesses delitos aí investigados, a prisão temporária pode
#se converter em prisão preventiva, mas caso não se comprove a participação dos senhores, os senhores são colocados em liberdade. Alguma dúvida? Doutores,
#algum requerimento, alguma dúvida? Sem requerimento. A defesa de âncio tem, excelvida. A defesa de Anderson tem excelência. Pois não, doutor.
#A defesa de Anderson requer que haja reconhecimento da ilegalidade da prisão temporária, haja vista que, segundo a ótica defensiva, ainda existem fundamentos que a
#posse invasar, e eu vou elencar pelo menos três aqui, que são, pelo menos, nessa ocasião, de salutar importância.
# É bem verdade que a defesa reconhece aumento de mérito. Todavia, como dito, a defesa reconhece que não existe fundamento.
#A lei diz que a prisão temporária vai ser decretada quando for imprescindível para as investigações, inclusive entendimento recente do Supremo Tribunal Federal.
#é insendível para as investigações, inclusive o entendimento recente do Supremo Tribunal Federal.
#No caso de Intela, pesava ainda em favor do meu cliente, do meu constituinte, o senhor Anderson, três mandagens de prisão, ou seja,
#tinha três prisões preventivas decretadas pelo juízo de alujar. É importante ressaltar que no processo de alujar, excelência, houve uma operação policial,
#meses posteriores à denúncia feita pelo próprio senhor Anderson, acerca de extorsão cometida pela equipe policial.
#Assim sendo, Excelência, entendo a defesa que, uma vez que havia a prisão preventiva, não havia razão para essa prisão temporária,
#aquela tinha que ser cumprida primeiro, até porque é o seguinte, uma vez cumprida na prisão preventiva, ele ficaria a serviço e
#a disposição na Secretaria de Administração Penitenciária e qualquer unidade prisional e não na delegacia, que é justamente o
#que a gente quer evitar. Haja vista que pesa justamente essa questão dessa possível retaliação, inclusive colocando em risco a
#integridade física e a vida do cliente. A razão pela qual a defesa pede que a Vossa Excelência, nos termos do artigo 5º
#a Constituição Federal, relaxe essa prisão temporária porque ela, sob essa ótica, ela é ilegal. É o que a defesa requer.
Information
If you have any feedback, adjustments or wanted to contribute as a project, please feel free to contact us:
Model tree for rhaymison/transcription-portuguese-legal-whisper-peft
Base model
openai/whisper-large-v3