|
|
|
|
|
import sounddevice as sd |
|
from scipy.io.wavfile import write |
|
import whisper |
|
import os |
|
|
|
|
|
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() |
|
write(AUDIO_PATH, sample_rate, audio_data) |
|
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. |
|
""" |
|
|
|
model = whisper.load_model("base") |
|
|
|
|
|
print("Transcribiendo el audio...") |
|
result = model.transcribe(AUDIO_PATH) |
|
print("Transcripción completada.") |
|
return result["text"] |
|
|
|
if __name__ == "__main__": |
|
|
|
record_audio() |
|
|
|
|
|
texto = transcribe_audio() |
|
print("Texto extraído:", texto) |
|
|