Saltar al contenido

Lectura de señal de sonido de entrada usando Python

Ya no necesitas buscar más por otros sitios ya que estás al sitio perfecto, poseemos la solución que buscas y sin problemas.

Solución:

¿Has probado Pyaudio? Instalar:

python -m pip install pyaudio

Ejemplo de grabación, del sitio web oficial:

Ejemplo de PyAudio: grabe unos segundos de audio y guárdelo en un archivo WAVE.

import pyaudio
import wave

CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 2
RATE = 44100
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = "output.wav"

p = pyaudio.PyAudio()

stream = p.open(format=FORMAT,
                channels=CHANNELS,
                rate=RATE,
                input=True,
                frames_per_buffer=CHUNK)

print("* recording")

frames = []

for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
    data = stream.read(CHUNK)
    frames.append(data)

print("* done recording")

stream.stop_stream()
stream.close()
p.terminate()

wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
wf.setnchannels(CHANNELS)
wf.setsampwidth(p.get_sample_size(FORMAT))
wf.setframerate(RATE)
wf.writeframes(b''.join(frames))
wf.close()

Este ejemplo funciona en mi computadora portátil con Python 2.7.11 (y 3.5.1) en Windows 8.1, pyaudio 0.2.9.

¿Está planeando obtener audio del micrófono en partes o en streaming? En cualquier caso, se puede emplear un dispositivo de sonido.

Puede instalar el módulo de python usando
pip install sounddevice --user

Consulte el sitio oficial para obtener detalles de la API.

El dispositivo de sonido grabará el audio del micrófono de su computadora portátil (entrada de audio estándar) y lo reproducirá en el altavoz o los auriculares (salida de audio estándar). Puede utilizar el objeto de sonido para su posterior procesamiento.

import sounddevice as sd
import numpy as np
import scipy.io.wavfile as wav

fs=44100
duration = 5  # seconds
myrecording = sd.rec(duration * fs, samplerate=fs, channels=2,dtype='float64')
print "Recording Audio"
sd.wait()
print "Audio recording complete , Play Audio"
sd.play(myrecording, fs)
sd.wait()
print "Play Audio Complete"

Aquí está la salida: Python 2.7.9 (predeterminado, 10 de diciembre de 2014, 12:24:55) [MSC v.1500 32 bit (Intel)] en win32 Escriba “copyright”, “créditos” o “licencia()” para obtener más información. ================================ REINICIAR ================= ==

Grabación de audio
Grabación de audio completa, Reproducir audio
Reproducir audio completo

Consideraría usar pysox, los enlaces de python para libsox.

Puede obtener el paquete pysox de PyPI.

valoraciones y reseñas

Recuerda algo, que te permitimos añadir una evaluación correcta si diste con el hallazgo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *