| |
|
|
| import sounddevice as sd |
| from scipy.io.wavfile import write |
| import os |
|
|
| |
| 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...") |
|
|
| |
| audio_data = sd.rec(int(duration * sample_rate), samplerate=sample_rate, channels=1, device=device_index) |
| sd.wait() |
|
|
| |
| write(AUDIO_PATH, sample_rate, audio_data) |
| print(f"Grabación completada. Archivo guardado en: {AUDIO_PATH}") |
|
|
| if __name__ == "__main__": |
| |
| listar_dispositivos() |
| |
| |
| device_index = int(input("Introduce el índice del dispositivo de entrada que deseas utilizar: ")) |
|
|
| |
| record_audio(device_index=device_index) |
|
|
|
|