Advertisement
salahzar

whisper mm:ss

Sep 29th, 2024
33
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.97 KB | None | 0 0
  1. Certamente! Aggiungere i timestamp (mm:ss) alle trascrizioni di Whisper AI può essere molto utile per navigare facilmente all'interno del testo trascritto e per sincronizzare le trascrizioni con l'audio originale. Whisper fornisce informazioni sui segmenti temporali durante la trascrizione, che puoi utilizzare per ottenere i timestamp desiderati.
  2.  
  3. ### **Ottenere i Timestamp con Whisper AI**
  4.  
  5. Quando utilizzi Whisper per trascrivere un audio, il risultato include una lista di segmenti, ognuno con il proprio inizio e fine temporale. Puoi estrarre questi dati per ottenere i timestamp nel formato mm:ss.
  6.  
  7. #### **Esempio di Codice in Python**
  8.  
  9. Ecco un esempio di come puoi ottenere i timestamp utilizzando la libreria Python di Whisper:
  10.  
  11. ```python
  12. import whisper
  13.  
  14. # Carica il modello desiderato (es. "large")
  15. model = whisper.load_model("large")
  16.  
  17. # Trascrivi l'audio
  18. result = model.transcribe("tuo_file_audio.mp3")
  19.  
  20. # Itera attraverso i segmenti e stampa i timestamp con il testo
  21. for segment in result['segments']:
  22. start = segment['start'] # Inizio in secondi
  23. end = segment['end'] # Fine in secondi
  24. text = segment['text'].strip()
  25.  
  26. # Converti i secondi in mm:ss
  27. start_min = int(start // 60)
  28. start_sec = int(start % 60)
  29. end_min = int(end // 60)
  30. end_sec = int(end % 60)
  31.  
  32. start_timestamp = f"{start_min:02}:{start_sec:02}"
  33. end_timestamp = f"{end_min:02}:{end_sec:02}"
  34.  
  35. print(f"[{start_timestamp} - {end_timestamp}] {text}")
  36. ```
  37.  
  38. #### **Spiegazione del Codice**
  39.  
  40. 1. **Caricamento del Modello**: Carica il modello Whisper desiderato. I modelli più grandi (`"medium"`, `"large"`) offrono maggiore accuratezza ma richiedono più risorse.
  41.  
  42. 2. **Trascrizione**: Utilizza il metodo `transcribe` per ottenere la trascrizione dell'audio. Il risultato include una chiave `'segments'` che contiene i segmenti trascritti con i relativi timestamp.
  43.  
  44. 3. **Estrazione dei Timestamp**:
  45. - Ogni `segment` ha le chiavi `'start'` e `'end'`, che rappresentano l'inizio e la fine del segmento in secondi.
  46. - Converti i secondi in minuti e secondi utilizzando la divisione e il modulo.
  47. - Formatta i timestamp nel formato `mm:ss`.
  48.  
  49. 4. **Output**: Stampa il testo trascritto con i relativi timestamp.
  50.  
  51. #### **Esempio di Output**
  52.  
  53. ```
  54. [00:00 - 00:05] Ciao! Benvenuto nella trascrizione.
  55. [00:05 - 00:10] Questo è un esempio di come aggiungere i timestamp.
  56. ...
  57. ```
  58.  
  59. ### **Personalizzare i Timestamp**
  60.  
  61. Puoi personalizzare ulteriormente il formato dei timestamp o integrarlo nel tuo flusso di lavoro secondo le tue esigenze. Ad esempio, potresti voler salvare la trascrizione con i timestamp in un file di testo o in un formato specifico come JSON o SRT (utilizzato per i sottotitoli).
  62.  
  63. #### **Salvare in Formato SRT**
  64.  
  65. Il formato SRT è comunemente usato per i sottotitoli e include i timestamp in un formato specifico. Ecco come puoi convertire i segmenti di Whisper in formato SRT:
  66.  
  67. ```python
  68. import whisper
  69.  
  70. def seconds_to_srt_time(seconds):
  71. hours = int(seconds // 3600)
  72. minutes = int((seconds % 3600) // 60)
  73. secs = int(seconds % 60)
  74. millis = int((seconds - int(seconds)) * 1000)
  75. return f"{hours:02}:{minutes:02}:{secs:02},{millis:03}"
  76.  
  77. # Carica il modello
  78. model = whisper.load_model("large")
  79.  
  80. # Trascrivi l'audio
  81. result = model.transcribe("tuo_file_audio.mp3")
  82.  
  83. # Crea il file SRT
  84. with open("trascrizione.srt", "w", encoding="utf-8") as srt_file:
  85. for i, segment in enumerate(result['segments'], start=1):
  86. start = seconds_to_srt_time(segment['start'])
  87. end = seconds_to_srt_time(segment['end'])
  88. text = segment['text'].strip()
  89.  
  90. srt_file.write(f"{i}\n")
  91. srt_file.write(f"{start} --> {end}\n")
  92. srt_file.write(f"{text}\n\n")
  93. ```
  94.  
  95. #### **Spiegazione del Codice**
  96.  
  97. 1. **Funzione `seconds_to_srt_time`**: Converte i secondi in formato `HH:MM:SS,mmm` richiesto dal formato SRT.
  98.  
  99. 2. **Creazione del File SRT**:
  100. - Itera attraverso i segmenti e assegna un numero progressivo a ciascuno.
  101. - Scrive i timestamp e il testo nel formato SRT.
  102.  
  103. 3. **Output**: Un file `trascrizione.srt` che può essere utilizzato con player video o editor di sottotitoli.
  104.  
  105. ### **Considerazioni Finali**
  106.  
  107. - **Precisione dei Timestamp**: Whisper fornisce timestamp a livello di segmento. Se hai bisogno di una precisione maggiore (ad esempio, a livello di parola), potrebbe essere necessario un ulteriore processamento o utilizzare strumenti aggiuntivi.
  108.  
  109. - **Prestazioni**: Ricorda che utilizzare modelli più grandi migliora l'accuratezza ma aumenta i tempi di elaborazione. Bilancia le tue esigenze tra precisione e velocità.
  110.  
  111. - **Qualità dell'Audio**: Come menzionato in precedenza, assicurati che l'audio sia di alta qualità per ottenere i migliori risultati sia nella trascrizione che nei timestamp.
  112.  
  113. Spero che queste indicazioni ti aiutino ad aggiungere i timestamp alle tue trascrizioni con Whisper AI! Se hai ulteriori domande o necessiti di ulteriori dettagli, non esitare a chiedere.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement