2013-06-03 2 views
1

J'ai rencontré un problème lors de la lecture d'un fichier .wav à l'aide de Python. Je veux lire l'amplitude et le taux d'échantillonnage du fichier.Erreur «TypeError: type de données non compris» Python WAV

J'ai essayé de lire le fichier en utilisant le code suivant:

import os 
folder = os.getcwd() + '\\WAV' 
file_name = 'Guitar.ff.sul_E.C5Bb5' 
path = folder + '\\' + file_name + '.wav' 
rate,data=read(path) 

Avant le code ci-dessus, j'ai importé la fonction read de la bibliothèque scipy comme suit:

from scipy.io.wavfile import read,write

Et de numpy J'ai importé :

from numpy import linspace,sin,pi,int16

I r a reçu l'erreur "TypeError: type de données non compris".

Le code a fonctionné parfaitement pour un fichier .wav différent, et j'aimerais savoir comment (si c'est possible) je peux changer le code pour lire celui-ci, ou si je dois changer le fichier .wav avant que je puisse lis le.

Voici les propriétés des fichiers:

  1. fichier: Guitar.ff.sul_E.C5Bb5.wav
    • Taille: 38.87 MB
    • Durée: 1 minute 10 secondes
    • échantillon Tarif: 96 KHz
    • Taille de l'échantillon: 24 bits
    • bit Rate: 4.608 kbps
    • Canaux: essayé 1 et 2
  2. fichier: 440hzAtone.wav
    • Taille: 173 KB
    • Durée: 2 secondes
    • Sample Rate: 44,1 KHz
    • Taille de l'échantillon: 16 bit
    • Débit binaire: 705 kbps
    • Canaux: 1

Le premier fichier n'a pas fonctionné et le second fichier l'a fait.

j'ai eu exactement la même erreur pour 1 et 2 canaux.

La modification du nom de fichier pour qu'il ne comporte pas de points n'a pas d'importance. Il semble atteindre le fichier de toute façon mais ne pas être capable de le lire.

Edit:

Après avoir changé la profondeur de bits de 24 à 16 le problème a disparu. Merci Warren Weckesser pour le commentaire.

+0

Si vous pouvez également nous fournir les propriétés des fichiers qui ont fait un travail, nous pourrait être en mesure de repérer quelque chose. Un code plus complet pourrait également améliorer vos chances d'obtenir une réponse décente. – pypat

+6

Malheureusement, le lecteur de wavfile de scipy ne peut pas lire les fichiers 24 bits: https://github.com/scipy/scipy/issues/1930 –

+0

@WarrenWeckesser Vous devriez ajouter cela comme réponse. – hooy

Répondre

Questions connexes