colab version or example
please post an colab version or example. Audio file is mp3 and 16000kz?
You can use the following code:
import subprocess
subprocess.run(["pip", "install", "-Uq", "transformers", "datasets", "accelerate"])
import time
import torch
from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor, pipeline
from datasets import load_dataset
device = "cuda:0" if torch.cuda.is_available() else "cpu"
torch_dtype = torch.float16 if torch.cuda.is_available() else torch.float32
model_id = "deepdml/whisper-large-v3-turbo"
model = AutoModelForSpeechSeq2Seq.from_pretrained(
model_id, torch_dtype=torch_dtype, low_cpu_mem_usage=True, use_safetensors=True
)
model.to(device)
processor = AutoProcessor.from_pretrained(model_id)
pipe = pipeline(
"automatic-speech-recognition",
model=model,
tokenizer=processor.tokenizer,
feature_extractor=processor.feature_extractor,
torch_dtype=torch_dtype,
device=device,
)
dataset = load_dataset("distil-whisper/librispeech_long", "clean", split="validation")
sample = dataset[0]["audio"]
result = pipe(sample)
print(result["text"])
If you have a local file "audio.mp3":
result = pipe("audio.mp3")
print(result["text"])
Hi,
Thank you very much.
But the script in colab hangs on the line:
result = pipe("audio.mp3")
print(result["text"]).
I don't know if the reason is that the audio file is in Italian.
Are you using GPU in Colab? Could you share the file?
I use whisper model large-v3 with the following code
(the code is tested to transcribe several mp3 files present in the path):
import os
import subprocess
import time
from google.colab import files
print("Librerie e Programma In Caricamento....⌚")
!pip install -U pip
subprocess.run(["pip", "install", "-Uq", "openai-whisper"])
subprocess.run(["sudo", "apt-get", "update", "-qq"], stdout=subprocess.DEVNULL)
subprocess.run(["sudo", "apt-get", "install", "-qq", "ffmpeg"], stdout=subprocess.DEVNULL)
print("✅ Librerie e Programma Caricati Correttamente.")
Cerca i file nella directory corrente
files = [filename for filename in os.listdir(".") if os.path.isfile(filename) and filename.endswith(".mp3")]
files.sort() # Ordina i file in ordine alfabetico
num_files = len(files)
Gestione del caso in cui non viene trovato alcun file nella directory corrente
if num_files == 0:
print("Errore: non è stato trovato alcun file MP3 nella directory corrente.")
else:
for i, filename in enumerate(files, 1):
print(f"Trascrizione {i}/{num_files}: File {filename} in elaborazione/trascrizione")
print("")
# Esegui il comando whisper
#!whisper "$filename" --model large-v3 --language it --output_format txt
!whisper "$filename" --model large-v3 --language it --output_format txt
print("")
print(f"Trascrizione {i}/{num_files} eseguita; file di testo disponibile nella directory corrente")
print("")
if i != num_files:
time.sleep(5) # Attendi 5 secondi prima di procedere alla trascrizione successiva
if you want to test it with your script, the audio is here:
audio link : https://we.tl/t-occ9r7YzYv
As I said, it crashes for me for test
But you are using openai-whisper library, not transformers library.
Anyway, I can get the transcription:
[00:00.000 --> 00:16.000] Buongiorno a tutti, oggi 30 settembre abbiamo convocato il Consiglio Comunale che prevede
[00:16.000 --> 00:26.140] una serie di punti molto importanti, per la precisione sono 11 i punti di cui discutere.
[00:26.140 --> 00:35.300] Il primo punto è la proposta di deliberazione di Consiglio numero 72 del 31 maggio 2024,
[00:36.300 --> 00:41.600] avventa d'oggetto servizio di gestione della sosta a pagamento...
[00:41.600 --> 00:48.720] Dobbiamo procedere con l'appello, perfetto, scusate, dobbiamo legittimare il Consiglio,
[00:48.720 --> 00:53.240] scusate, prego segretario.
[00:56.140 --> 01:20.140] Celentano, assente, Anzalone, assente, Baccini, Bellini, Belvisi, Bruni, Campagna, assente,
[01:20.140 --> 01:25.400] Catani, Ciolfi.
[01:26.140 --> 01:49.900] Censi, Cochi, Damiano Coletta, Floriana Coletta, Colonna, Coluzzi, assente, Corridi,
[01:49.900 --> 01:55.900] De Amicis, assente, Di Matteo.
[01:56.140 --> 02:19.100] Faticoni, Fiore, assente, Furlanetto, Galardo, Iavarone, Isotonna, assente, Licata, Maiocchi,
[02:19.100 --> 02:25.820] Mure, assente, Pagano.
[02:26.140 --> 02:37.580] Forzi, Ranaldi, Scalco, Tiero, Balletta.
[02:37.580 --> 02:47.580] 25 presenti, la seduta è valida, possiamo procedere con la discussione dei punti all'ordine
[02:47.580 --> 02:48.580] del giorno.
[02:48.580 --> 02:53.100] Il primo punto è la proposta di deliberazione, ha chiesto di intervenire.
[02:53.100 --> 02:54.100] Premozzo.
.......
[25:21.440 --> 25:26.440] Chiedo conferma anche al dirigente, sul discorso di approvazione del 2022,
[25:26.440 --> 25:30.440] chiedeva la Consigliere Sciolta. È stato approvato con la stessa metodologia?
[25:30.440 --> 25:31.440] PRESIDENTE DEL CONSIGLIO COMUNALE FABRIZIO FERRANTE
[25:31.440 --> 25:33.440] Prego, le do la parola.
[25:33.440 --> 25:36.440] PRESIDENTE DEL CONSIGLIO COMUNALE FABRIZIO FERRANTE
[25:36.440 --> 25:38.440] Non c'è la scheda.
[25:38.440 --> 25:41.440] PRESIDENTE DEL CONSIGLIO COMUNALE FABRIZIO FERRANTE
I can't tell you, I use your code but, as you can see from the shot,
it crashes on -- > result = pipe("audio.mp3")
Repost code, please -