2014-07-25 8 views
5

Próbuję odczytać skompresowany plik .aiff przechowywany w moim katalogu lokalnym. Rozumiem;Plik AIFF-C nie może zostać odczytany za pomocą modułu AIFC w pythonie

>>>import aifc 
>>>s = aifc.open('/Users/machinename/Desktop/folder/AudioTrack.aiff','r') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/aifc.py",  line 942, in open 
return Aifc_read(f) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/aifc.py", line 347, in __init__ 
self.initfp(f) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/aifc.py", line 317, in initfp 
self._read_comm_chunk(chunk) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/aifc.py", line 497, in _read_comm_chunk 
raise Error, 'cannot read compressed AIFF-C files' 
aifc.Error: cannot read compressed AIFF-C files 
>>> 

Uważam, że musi istnieć obejście tego problemu. Here można zobaczyć aifc obsługuje również pliki aiff-c.

Proste pytanie, ale nie mogłem znaleźć rozwiązania w Internecie.

Odpowiedz

0

może się okazać, że scikits.audiolab (wymaga zainstalowanego pliku mega-nerd.com/libsndfile/) spełnia to, czego potrzebujesz. Na przykład, niedawno potrzebne, aby uzyskać czas pliku .aif (w sekundach):

import scikits.audiolab 

aiff_file = scikits.audiolab.Sndfile('best_song_ever.aif') 
print aiff_file.nframes/float(aiff_file.samplerate) 

Można zrobić kilka innych fajnych rzeczy zbyt (Full API docs). Mam nadzieję, że to pomoże!

Powiązane problemy