Skip to content

Commit d39a5f6

Browse files
committed
Update transcribe_wav.py
1 parent b95d8aa commit d39a5f6

File tree

1 file changed

+26
-10
lines changed

1 file changed

+26
-10
lines changed

scripts/transcribe_wav.py

Lines changed: 26 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -329,8 +329,10 @@ def update_progress():
329329
progress_thread.start()
330330

331331
# Attende i risultati con barra di progresso
332-
chunk1_text = future1.result(timeout=600) # 10 minuti timeout
333-
chunk2_text = future2.result(timeout=600)
332+
# Timeout aumentato per audio lunghi: 20 minuti per chunk
333+
chunk_timeout = max(1200, audio_duration // 2 + 300) # Minimo 20 minuti o metà durata + 5 minuti
334+
chunk1_text = future1.result(timeout=chunk_timeout)
335+
chunk2_text = future2.result(timeout=chunk_timeout)
334336

335337
# Unisce i risultati
336338
full_transcription = chunk1_text.strip() + " " + chunk2_text.strip()
@@ -552,6 +554,7 @@ def main(podcast_dir, model_name='medium', language='it', parallel=False):
552554

553555
processed_files = 0
554556
start_time = time.time()
557+
processed_file_list = [] # Lista per tracciare file già elaborati
555558

556559
# Barra di progresso principale per tutti i file
557560
with tqdm(total=total_files,
@@ -571,8 +574,16 @@ def main(podcast_dir, model_name='medium', language='it', parallel=False):
571574
output_file_name = base_name + '.txt'
572575
output_path = os.path.join(root, output_file_name)
573576

574-
# Verifica se la trascrizione esiste già
577+
# Verifica se la trascrizione esiste già o se è già stata elaborata in questa sessione
575578
if os.path.exists(output_path) and os.path.getsize(output_path) > 1:
579+
print(f" ⏭️ Trascrizione già esistente per: {file_name}")
580+
main_pbar.update(1)
581+
continue
582+
583+
# Verifica se il file è già stato elaborato in questa sessione
584+
if file_path in processed_file_list:
585+
print(f" ⏭️ File già elaborato in questa sessione: {file_name}")
586+
main_pbar.update(1)
576587
continue
577588

578589
# File WAV da utilizzare per la trascrizione (originale o convertito)
@@ -604,6 +615,8 @@ def main(podcast_dir, model_name='medium', language='it', parallel=False):
604615
transcription = transcribe_podcast_with_progress(wav_file_path, model_name, language, parallel)
605616
save_transcription(transcription, output_path)
606617

618+
# Aggiungi il file alla lista dei processati
619+
processed_file_list.append(file_path)
607620
processed_files += 1
608621
elapsed_total = time.time() - start_time
609622
file_elapsed = time.time() - file_start_time
@@ -642,8 +655,14 @@ def main(podcast_dir, model_name='medium', language='it', parallel=False):
642655
print(f" Attenzione: impossibile rimuovere il file convertito: {e}")
643656

644657
total_elapsed = time.time() - start_time
658+
# Conta file saltati
659+
skipped_files = total_files - processed_files
660+
645661
print(f"\n🎉 Trascrizione completata!")
646-
print(f"📊 File elaborati: {processed_files}/{total_files}")
662+
print(f"📊 File elaborati: {processed_files}")
663+
if skipped_files > 0:
664+
print(f"⏭️ File saltati (già esistenti): {skipped_files}")
665+
print(f"📁 Totale file trovati: {total_files}")
647666
print(f"⏱️ Tempo totale: {format_time(total_elapsed)}")
648667
if processed_files > 0:
649668
print(f"📈 Tempo medio per file: {total_elapsed/processed_files:.1f} secondi")
@@ -681,14 +700,11 @@ def main(podcast_dir, model_name='medium', language='it', parallel=False):
681700
continue
682701

683702
while True:
684-
scelta = input("\nUtilizza di nuovo lo script digitando 1 o premi 0 per uscire: ").strip()
703+
scelta = input("\n🔄 Utilizzare di nuovo lo script con una nuova cartella? (1=sì, 0=no): ").strip()
685704
if scelta == '1':
686705
break
687706
elif scelta == '0':
688-
print("Arrivederci!")
707+
print("👋 Arrivederci!")
689708
sys.exit(0)
690709
else:
691-
print("Scelta non valida. Inserire 1 o 0.")
692-
693-
if scelta == '0':
694-
break
710+
print("❌ Scelta non valida. Inserire 1 o 0.")

0 commit comments

Comments
 (0)