Update app.py
Browse files
app.py
CHANGED
@@ -24,7 +24,7 @@ try:
|
|
24 |
"pyannote/speaker-diarization-3.1",
|
25 |
use_auth_token=os.environ["HF_TOKEN"]
|
26 |
)
|
27 |
-
device = torch.device(
|
28 |
diarization_pipeline.to(device)
|
29 |
except Exception as e:
|
30 |
print(f"Error initializing diarization pipeline: {e}")
|
@@ -49,7 +49,6 @@ pipe = pipeline(
|
|
49 |
|
50 |
|
51 |
|
52 |
-
|
53 |
def associate_speakers_with_timestamps(transcription_result, diarization, tolerance=0.1, min_segment_duration=0.5):
|
54 |
word_segments = transcription_result['chunks']
|
55 |
diarization_segments = list(diarization.itertracks(yield_label=True))
|
@@ -315,8 +314,7 @@ demo = gr.Blocks(
|
|
315 |
|
316 |
|
317 |
with demo:
|
318 |
-
gr.Markdown("
|
319 |
-
### ⚠️ Cette version est une maquette publique. Ne pas mettre de données sensibles, privées ou confidentielles.""")
|
320 |
gr.HTML(
|
321 |
"""
|
322 |
<div class="logo">
|
@@ -341,18 +339,18 @@ with demo:
|
|
341 |
- Utilise des techniques d'apprentissage profond pour l'extraction de caractéristiques vocales
|
342 |
- Applique un algorithme de clustering pour regrouper les segments par locuteur
|
343 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
344 |
### 💡 **Conseils pour de Meilleurs Résultats**
|
345 |
- Utilisez des enregistrements de haute qualité avec peu de bruit de fond.
|
346 |
- Pour les longs enregistrements, il est recommandé de segmenter votre audio.
|
347 |
- Vérifiez toujours la transcription, en particulier pour les termes techniques ou les noms propres.
|
348 |
- Utilisez des microphones externes pour les enregistrements en direct si possible.
|
349 |
-
|
350 |
-
### ⚙️ Spécifications Techniques :
|
351 |
-
- Modèle de transcription : Whisper Medium
|
352 |
-
- Pipeline de diarisation : pyannote/speaker-diarization-3.1
|
353 |
-
- Limite de taille de fichier : _(Nous n'avons, à ce jour, pas de limite précise. Cependant, nous vous recommandons de ne pas dépasser 5 minutes. )_
|
354 |
-
- Durée maximale pour les vidéos YouTube : _(Nous n'avons, à ce jour, pas de limite précise. Cependant, pour une utilisation optimale, l'audio ne doit pas dépasser 30 minutes. )_
|
355 |
-
- Formats audio supportés : MP3, WAV, M4A, et plus
|
356 |
""")
|
357 |
with gr.Accordion("🔐 Sécurité des Données et Pipelines", open=False):
|
358 |
gr.Markdown("""
|
@@ -453,6 +451,13 @@ with demo:
|
|
453 |
- Identification précise des changements de locuteurs
|
454 |
- Traitement de fichiers audio, enregistrements en direct et vidéos YouTube
|
455 |
- Gestion de divers formats audio et qualités d'enregistrement
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
456 |
""")
|
457 |
|
458 |
with gr.Accordion("❓ README :", open=False):
|
@@ -506,4 +511,4 @@ with demo:
|
|
506 |
|
507 |
|
508 |
if __name__ == "__main__":
|
509 |
-
demo.queue().launch()
|
|
|
24 |
"pyannote/speaker-diarization-3.1",
|
25 |
use_auth_token=os.environ["HF_TOKEN"]
|
26 |
)
|
27 |
+
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
|
28 |
diarization_pipeline.to(device)
|
29 |
except Exception as e:
|
30 |
print(f"Error initializing diarization pipeline: {e}")
|
|
|
49 |
|
50 |
|
51 |
|
|
|
52 |
def associate_speakers_with_timestamps(transcription_result, diarization, tolerance=0.1, min_segment_duration=0.5):
|
53 |
word_segments = transcription_result['chunks']
|
54 |
diarization_segments = list(diarization.itertracks(yield_label=True))
|
|
|
314 |
|
315 |
|
316 |
with demo:
|
317 |
+
gr.Markdown("# 🎙️ **Scribe** : L'assistant de Transcription Audio Intelligent 📝 ⚠️ Cette version est une maquette publique. Ne pas mettre de données sensibles, privées ou confidentielles.")
|
|
|
318 |
gr.HTML(
|
319 |
"""
|
320 |
<div class="logo">
|
|
|
339 |
- Utilise des techniques d'apprentissage profond pour l'extraction de caractéristiques vocales
|
340 |
- Applique un algorithme de clustering pour regrouper les segments par locuteur
|
341 |
|
342 |
+
Le processus complet implique :
|
343 |
+
a) Prétraitement de l'audio
|
344 |
+
b) Transcription du contenu
|
345 |
+
c) Segmentation et identification des locuteurs
|
346 |
+
d) Fusion des résultats pour une sortie structurée
|
347 |
+
|
348 |
+
|
349 |
### 💡 **Conseils pour de Meilleurs Résultats**
|
350 |
- Utilisez des enregistrements de haute qualité avec peu de bruit de fond.
|
351 |
- Pour les longs enregistrements, il est recommandé de segmenter votre audio.
|
352 |
- Vérifiez toujours la transcription, en particulier pour les termes techniques ou les noms propres.
|
353 |
- Utilisez des microphones externes pour les enregistrements en direct si possible.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
354 |
""")
|
355 |
with gr.Accordion("🔐 Sécurité des Données et Pipelines", open=False):
|
356 |
gr.Markdown("""
|
|
|
451 |
- Identification précise des changements de locuteurs
|
452 |
- Traitement de fichiers audio, enregistrements en direct et vidéos YouTube
|
453 |
- Gestion de divers formats audio et qualités d'enregistrement
|
454 |
+
|
455 |
+
### ⚙️ Spécifications Techniques :
|
456 |
+
- Modèle de transcription : Whisper Medium
|
457 |
+
- Pipeline de diarisation : pyannote/speaker-diarization-3.1
|
458 |
+
- Limite de taille de fichier : _(Nous n'avons, à ce jour, pas de limite précise. Cependant, nous vous recommandons de ne pas dépasser 6 minutes. )_
|
459 |
+
- Durée maximale pour les vidéos YouTube : _(Nous n'avons, à ce jour, pas de limite précise. Cependant, pour une utilisation optimale, l'audio ne doit pas dépasser 30 minutes. )_
|
460 |
+
- Formats audio supportés : MP3, WAV, M4A, et plus
|
461 |
""")
|
462 |
|
463 |
with gr.Accordion("❓ README :", open=False):
|
|
|
511 |
|
512 |
|
513 |
if __name__ == "__main__":
|
514 |
+
demo.queue().launch()
|