Python se puede utilizar para realizar una variedad de tareas. Uno de ellos es crear una grabadora de voz. Podemos usar el módulo sounddevice de python para grabar y reproducir audio. Este módulo, junto con el módulo wavio o scipy , proporciona la forma de guardar el audio grabado.
Instalación
- dispositivo de sonido: este módulo proporciona funciones para reproducir y grabar arrays NumPy que contienen señales de audio. Vamos a instalarlo ejecutando el siguiente comando:
$ pip3 install sounddevice
- Podemos usar wavio y scipy para guardar el audio grabado en formato de archivo . Los veremos a ambos aquí.
- Para instalar wavio:
$ pip3 install wavio
- Para instalar scipy :
$ pip3 install scipy
Ahora, hemos terminado con la instalación de los módulos necesarios. Entonces, escribamos el código.
Empezando
Primero, importe las bibliotecas requeridas.
# import required libraries import sounddevice as sd from scipy.io.wavfile import write import wavio as wv
Ahora, antes de iniciar la grabadora, tenemos que declarar algunas variables. El primero es la frecuencia de muestreo del audio (en la mayoría de los casos será de 44100 o 48000 fotogramas por segundo) y el segundo es la duración de la grabación. Tenemos que especificar la duración en segundos para que deje de grabar después de esa duración.
Entonces, vamos a declararlos también.
# Sampling frequency freq = 44100 # Recording duration duration = 5
Ahora, estamos listos para iniciar la grabadora. Creará una array NumPy del audio grabado.
# Start recorder with the given values of # duration and sample frequency recording = sd.rec(int(duration * freq), samplerate=freq, channels=2) # Record audio for the given number of seconds sd.wait()
Ahora, hemos terminado con la grabación del audio. Entonces, guardémoslo. Para guardar el archivo de audio, podemos usar el módulo scipy o el módulo wavio . Vamos a repasarlos uno por uno.
Usando Scipy:
Usaremos la función de escritura de scipy.io.wavfile para convertir la array NumPy en un archivo de audio.
# This will convert the NumPy array to an audio # file with the given sampling frequency write("recording0.wav", freq, recording)
Usando wavio:
También podemos usar la función de escritura de la biblioteca wavio .
# Convert the NumPy array to audio file wv.write("recording1.wav", recording, freq, sampwidth=2)
Código completo:
Python3
# import required libraries import sounddevice as sd from scipy.io.wavfile import write import wavio as wv # Sampling frequency freq = 44100 # Recording duration duration = 5 # Start recorder with the given values # of duration and sample frequency recording = sd.rec(int(duration * freq), samplerate=freq, channels=2) # Record audio for the given number of seconds sd.wait() # This will convert the NumPy array to an audio # file with the given sampling frequency write("recording0.wav", freq, recording) # Convert the NumPy array to audio file wv.write("recording1.wav", recording, freq, sampwidth=2)