La lecture de son d'entrée de signal à l'aide de Python
J'ai besoin d'obtenir un signal sonore à partir d'un jack-micro connecté et utiliser les données pour un traitement immédiat en Python.
Le traitement et les mesures ultérieures sont claires. Je suis perdu seulement à obtenir le signal du programme.
Le nombre de canaux n'est pas pertinent, un seul suffit. Je ne vais pas jouer le son, donc il ne devrait pas être nécessaire pour ASIO sur la carte son.
Ma question est: comment puis-je capturer Jack audio à partir de Python?
(Il serait bien si il y avait un paquet, bien documenté et niches exemples :-).
Vous devez vous connecter pour publier un commentaire.
Avez-vous essayé pyaudio?
Pour installer: python -m pip install pyaudio
L'enregistrement d'exemple, depuis le site officiel:
Cet exemple fonctionne sur mon portable avec Python 2.7.11 (et 3.5.1) dans Windows 8.1, pyaudio 0.2.9.
Envisagez-vous d'obtenir l'audio à partir du microphone en morceaux ou en streaming?
Les deux cas , sounddevice peuvent être employées.
Vous pouvez installer le module python à l'aide
pip install sounddevice --user
Veuillez consulter le site officiel de l'API de détails.
sounddevice permettra d'enregistrer de l'audio à partir de votre ordinateur portable microphone (standard d'entrée audio) et de jouer sur haut-parleur ou d'un casque (sortie audio standard). Vous pouvez utiliser l'objet sonore pour un traitement ultérieur.
Je voudrais envisager d'utiliser pysox, les liaisons python pour libsox.
Vous pouvez obtenir pysox paquet de PyPI.
Si l'exigence est Jack, vous souhaiterez peut-être utiliser PyJack, qui est le binding Python pour Jack.
En outre, le code source est un exemple de ce que vous voulez faire, c'est de capturer l'audio. Voir le fichier capture.py
Vous devez prendre en compte afin d'éviter de manquer un bloc, vous devez appeler
jack.process
chaque500 *(buffer_size/sample_rate)
millisecondes.jack.process
lancer des exceptions lorsque vous manquez audio blocs (jack.InputSyncError
etjack.OutputSyncError
).jack
l'OP signifie la réelle prise audio (c'est pas de l'USB ou autre), mais j'ai peut-être tort.