| | |
| |
|
| | 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) |
| |
|
| |
|