File size: 1,483 Bytes
d4757ae
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# whisper_audio_extractor.py

import sounddevice as sd
from scipy.io.wavfile import write
import whisper
import os

# Ruta para guardar el archivo de audio temporalmente
AUDIO_PATH = os.path.join("..", "assets", "audio", "recorded_audio.wav")

def record_audio(duration=5, sample_rate=44100):
    """
    Graba el audio del micrófono durante un tiempo específico y lo guarda como archivo WAV.
    
    Args:
        duration (int): Duración de la grabación en segundos.
        sample_rate (int): Frecuencia de muestreo del audio.
    """
    print("Grabando...")
    audio_data = sd.rec(int(duration * sample_rate), samplerate=sample_rate, channels=2)
    sd.wait()  # Espera a que finalice la grabación
    write(AUDIO_PATH, sample_rate, audio_data)  # Guarda el audio en el directorio especificado
    print(f"Grabación completa. Archivo guardado en {AUDIO_PATH}")

def transcribe_audio():
    """
    Usa el modelo Whisper para transcribir el audio grabado y devuelve el texto.
    
    Returns:
        str: Texto transcrito del audio.
    """
    # Cargar el modelo de Whisper
    model = whisper.load_model("base")
    
    # Transcribir el audio
    print("Transcribiendo el audio...")
    result = model.transcribe(AUDIO_PATH)
    print("Transcripción completada.")
    return result["text"]

if __name__ == "__main__":
    # Paso 1: Grabar audio
    record_audio()

    # Paso 2: Transcribir audio
    texto = transcribe_audio()
    print("Texto extraído:", texto)