Merlintxu commited on
Commit
3c1ea6f
1 Parent(s): eda1cd2

Initial commit - Añadir aplicación de transcripción de audio

Browse files
Files changed (3) hide show
  1. README.md +35 -13
  2. app.py +71 -0
  3. requirements.txt +6 -0
README.md CHANGED
@@ -1,13 +1,35 @@
1
- ---
2
- title: Audio Transcription App
3
- emoji: 😻
4
- colorFrom: pink
5
- colorTo: green
6
- sdk: gradio
7
- sdk_version: 4.44.1
8
- app_file: app.py
9
- pinned: false
10
- license: apache-2.0
11
- ---
12
-
13
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Aplicación de Transcripción de Audio Multilingüe
2
+
3
+ Esta aplicación permite transcribir archivos de audio en inglés y español a texto utilizando el modelo Whisper de OpenAI a través de Hugging Face y una interfaz web amigable creada con Gradio.
4
+
5
+ ## Características
6
+
7
+ - Soporta múltiples formatos de audio (e.g., MP3, WAV).
8
+ - Detecta y transcribe automáticamente los idiomas inglés y español.
9
+ - Interfaz web sencilla para subir archivos y ver transcripciones.
10
+ - Incluye archivos de ejemplo para probar la funcionalidad.
11
+
12
+ ## Cómo Usar
13
+
14
+ 1. **Subir un Archivo de Audio:**
15
+ - Haz clic en el botón de carga y selecciona un archivo de audio en inglés o español (e.g., MP3, WAV).
16
+
17
+ 2. **Esperar la Transcripción:**
18
+ - El modelo procesará el audio y mostrará el texto transcrito en la sección de salida.
19
+
20
+ 3. **Ver y Copiar el Texto:**
21
+ - Una vez finalizada la transcripción, podrás ver el texto y copiarlo según sea necesario.
22
+
23
+ ## Tecnologías Utilizadas
24
+
25
+ - [Gradio](https://gradio.app/) para la interfaz web.
26
+ - [Hugging Face Transformers](https://huggingface.co/docs/transformers/index) para el modelo de transcripción.
27
+ - [Librosa](https://librosa.org/) para el procesamiento de audio.
28
+
29
+ ## Despliegue
30
+
31
+ Esta aplicación está desplegada en [Hugging Face Spaces](https://huggingface.co/spaces).
32
+
33
+ ## Licencia
34
+
35
+ [MIT](LICENSE)
app.py ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from transformers import pipeline
3
+ import torch
4
+ import librosa
5
+ import os
6
+ import logging
7
+ import warnings
8
+
9
+ # Suprimir advertencias innecesarias
10
+ logging.getLogger("transformers").setLevel(logging.ERROR)
11
+ warnings.filterwarnings("ignore", category=FutureWarning)
12
+
13
+ # Imprimir la versión de Gradio para depuración
14
+ print(f"Gradio version: {gr.__version__}")
15
+
16
+ # Configurar el dispositivo: GPU si está disponible, sino CPU
17
+ device = "cuda" if torch.cuda.is_available() else "cpu"
18
+
19
+ # Inicializar el pipeline de transcripción
20
+ transcriber = pipeline(
21
+ "automatic-speech-recognition",
22
+ model="openai/whisper-base",
23
+ device=0 if device == "cuda" else -1
24
+ )
25
+
26
+ def transcribe_audio(audio):
27
+ """
28
+ Transcribe el archivo de audio proporcionado a texto.
29
+
30
+ Args:
31
+ audio: Ruta al archivo de audio subido.
32
+
33
+ Returns:
34
+ Texto transcrito.
35
+ """
36
+ if audio is None:
37
+ return "No se ha subido ningún archivo de audio."
38
+
39
+ try:
40
+ # Cargar el archivo de audio usando librosa
41
+ speech, sr = librosa.load(audio, sr=16000) # Whisper requiere 16kHz
42
+ except Exception as e:
43
+ return f"Error al cargar el audio: {e}"
44
+
45
+ # Realizar la transcripción
46
+ try:
47
+ transcription = transcriber(speech, sampling_rate=sr)
48
+ return transcription['text']
49
+ except Exception as e:
50
+ return f"Error durante la transcripción: {e}"
51
+
52
+ # Definir la interfaz de Gradio
53
+ iface = gr.Interface(
54
+ fn=transcribe_audio,
55
+ inputs=gr.Audio(type="filepath", label="Subir Archivo de Audio (MP3/otros)"),
56
+ outputs="text",
57
+ title="Transcripción Multilingüe de Audio",
58
+ description=(
59
+ "Sube un archivo de audio en formato MP3 u otro compatible (inglés o español) y "
60
+ "obtén el texto transcrito. Utiliza el modelo Whisper de OpenAI a través de Hugging Face."
61
+ ),
62
+ examples=[
63
+ ["examples/sample_english.mp3"],
64
+ ["examples/sample_spanish.mp3"]
65
+ ],
66
+ allow_flagging="never",
67
+ theme="default"
68
+ )
69
+
70
+ # Lanzar la interfaz
71
+ iface.launch(share=False, server_name="0.0.0.0", server_port=int(os.environ.get("PORT", 7860)))
requirements.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ gradio==4.44.1
2
+ transformers==4.30.0
3
+ torch==2.0.1
4
+ librosa==0.9.2
5
+ soundfile==0.12.1
6
+ huggingface-hub>=0.13.3