Quelle est la façon la plus simple de lire les fichiers wav fichiers à l'aide de Python [résumé]?
Je veux utiliser Python pour accéder à un wav-fichier et écrire son contenu dans un formulaire qui me permet de l'analyser (disons les tableaux).
- J'ai entendu dire que "audiolab" est un outil adapté pour ça, il transforme des tableaux numpy en wav et vica versa).
- J'ai installé le "audiolab" mais j'ai eu un problème avec la version de numpy (je ne pourrais pas "de numpy.les tests d'importation Testeur"). J'ai eu 1.1.1. la version de numpy.
-
J'ai installé une version plus récente sur numpy (1.4.0). Mais j'ai ensuite obtenu une nouvelle série d'erreurs:
Traceback (most recent call last):
Fichier "test.py", à la ligne 7, dans
importation scikits.audiolab
Le fichier "/usr/lib/python2.5/site-packages/scikits/audiolab/init.py", ligne 25,
de pysndfile importation formatinfo, sndfile
Le fichier "/usr/lib/python2.5/site-packages/scikits/audiolab/pysndfile/init.py", line 1, in
de _sndfile importation Sndfile, Format, available_file_formats, available_encodings
Fichier "numpy.pxd", à la ligne 30, en scikits.audiolab.pysndfile._sndfile (scikits/audiolab/pysndfile/_sndfile.c:9632)
ValueError: numpy.dtype ne semble pas être le bon type d'objet -
J'ai renoncé à utiliser audiolab et de la pensée que je peux utiliser la "vague" paquet de lire dans un fichier wav-fichier. J'ai posé une question à ce sujet, mais les gens recommandé d'utiliser scipy à la place. OK, j'ai décidé de mettre l'accent sur scipy (j'ai la version 0.6.0. la version).
-
Mais quand j'ai essayé de faire ce qui suit:
de scipy.io importation wavfile
x = wavfile.read('/usr/share/sounds/violet/recevoir.wav")
Je reçois le texte suivant:
Traceback (most recent call last):
File "test3.py", line 4, in <module>
from scipy.io import wavfile
File "/usr/lib/python2.5/site-packages/scipy/io/__init__.py", line 23, in <module>
from numpy.testing import NumpyTest
ImportError: cannot import name NumpyTest
- Donc, j'ai renoncé à utiliser scipy. Puis-je utiliser vague de colis? Je n'ai pas besoin de beaucoup. J'ai juste besoin d'avoir le contenu de wav-fichier en format lisible par l'homme et que je vais savoir quoi faire avec ça.
Comment est-ce différent de vos questions précédentes sur le même sujet?
audiolab est grande. Essayez d'obtenir que le travail. Assurez-vous d'avoir installé les paquets libsndfile et setuptools. Avez-vous suivi Sec. 2.4 dans le manuel?
Avez-vous une version plus récente de Scipy lorsque vous avez mis à niveau votre version de Numpy? J'ai des vagues pour la lecture de fichiers wave comme James Roth suggéré ci-dessous, mais si vous souhaitez utiliser Scipy vous devriez vérifier pour voir si votre version de Scipy est jusqu'à ce jour. De messages d'erreur que vous obtenez je devine qu'il ne l'est pas.
Avez-vous vu cela? stackoverflow.com/questions/2060628/... horodatage est (plus) récentes, Mars 2011.
OriginalL'auteur |
Vous devez vous connecter pour publier un commentaire.
Avez-vous essayé la vague module? Il a moins de dépendances:
http://docs.python.org/library/wave.html
Combinez cela avec l'extérieur les outils de conversion vers d'autres formats. assembla.com/code/freesound/git/nodes/freesound/utils/...
OriginalL'auteur
J'ai écrit un simple wrapper sur la vague du module dans la prévention des mst lib. il est appelé pydub et il a une méthode pour lire les échantillons de données audio comme ints.
J'espère que cela aide
OriginalL'auteur
C'est assez bon pour moi
Il ignore les 24 premières valeurs, parce que ce n'est pas l'audio, il l'en-tête.
Aussi, si le fichier a été stéréo, vos chaînes en alternance index, Donc j'ai l'habitude de simplement réduire à mono avec Audacity en premier.
OriginalL'auteur
Vous pouvez également utiliser la vague module avec la numpy.fromstring() pour convertir un tableau
OriginalL'auteur
Après avoir essayé tant de choses qui ne fonctionne pas, j'ai utilisé le décodage de la bibliothèque de Utilisation (Python) Gstreamer pour décoder l'audio (pour les données PCM) et de construire une fonction pour analyser les premières données pcm dans un scipy tableau.
C'est agréable et peut ouvrir n'importe quel fichier audio que gstreamer pouvez ouvrir:
http://gist.github.com/592776 (voir l'Essai et à la fin du fichier pour l'utilisation de l'info)
OriginalL'auteur
audiolab est le meilleur moyen, mais il ne fonctionne pas dans tous les environnements et le développeur ne fonctionne pas sur elle. Je suis toujours à l'aide de Python 2.5 donc je peux l'utiliser.
Avez-vous installé libsndfile?
OriginalL'auteur
audiolab semble être n'est plus maintenu, vous devriez essayer PySoundFile.
L'Installation est simple:
Et la lecture d'un fichier audio ainsi:
Jetez un oeil à cette vue d'ensemble sur les différentes bibliothèques Python pour la manipulation des fichiers audio.
OriginalL'auteur
pydub offre une solution facile, sans dépendances besoin d'être installé (pour les fichiers wav). Je suis actuellement en utilisant cette méthode de production sans aucun problème.
OriginalL'auteur