File size: 1,852 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 49 |
# audio_recorder.py
import sounddevice as sd
from scipy.io.wavfile import write
import os
# Ruta para guardar el archivo de audio en el directorio `assets/audio/`
AUDIO_PATH = os.path.join("..", "assets", "audio", "grabacion_8s.wav")
def listar_dispositivos():
"""
Lista todos los dispositivos de audio disponibles en el sistema.
"""
print("Dispositivos de audio disponibles:")
dispositivos = sd.query_devices()
for idx, dispositivo in enumerate(dispositivos):
print(f"{idx}: {dispositivo['name']} - {'Entrada' if dispositivo['max_input_channels'] > 0 else 'Salida'}")
print("\nSelecciona el índice del dispositivo de entrada que prefieras para grabar audio.")
def record_audio(duration=8, sample_rate=44100, device_index=None):
"""
Graba el audio desde el 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.
device_index (int): Índice del dispositivo de audio a utilizar.
"""
print("Grabando...")
# Iniciar la grabación con un canal
audio_data = sd.rec(int(duration * sample_rate), samplerate=sample_rate, channels=1, device=device_index)
sd.wait() # Espera a que la grabación termine
# Guardar el archivo de audio
write(AUDIO_PATH, sample_rate, audio_data)
print(f"Grabación completada. Archivo guardado en: {AUDIO_PATH}")
if __name__ == "__main__":
# Paso 1: Listar dispositivos de audio
listar_dispositivos()
# Aquí esperaremos tu selección del índice del dispositivo
device_index = int(input("Introduce el índice del dispositivo de entrada que deseas utilizar: "))
# Paso 2: Grabar audio con el dispositivo seleccionado
record_audio(device_index=device_index)
|