質問編集履歴

1 情報の追加

退会済みユーザー

退会済みユーザー

2017/11/03 11:22  投稿

wave.Error: file does not start with RIFF id
wave.Error: file does not start with RIFF idとエラーが出ました。
views.py に
```ここに言語を入力
from mfcc import *  
import numpy as np  
import os  
 
if __name__ == "__main__":
       train_label = np.array([])
       test_label = np.array([])
       nfft = 2048
       nceps = 12 
       train_data = np.empty((0, 12), float)
       test_data = np.empty((0, 12), float)
       directory = os.listdir('/sound_app/sounds')
       for file_name in directory:
           feature = get_feature(file_name, nfft, nceps)
           if len(train_data) == 0:
               train_data = feature
           else:
               train_data = np.vstack((train_data, feature))
               train_label = np.append(train_label)
           test_label = np.append(test_label,file_name)
```
と書いてmfcc.pyに
```ここに言語を入力
import wave  
import numpy as np  
import scipy.signal  
import scipy.fftpack  
 
import scipy.fftpack.realtransforms  
 
from pylab import *  
 
def get_feature(wavfile,nfft,nceps):
   wav,fs = wavread(wavfile)
   t = np.arange(0.0,len(wav)/fs,1/fs)
   center =len(wav)/2
   cuttime = 0.8
   global wavdata
   wavdata = wav[int(center-cuttime/2*fs):int(center+cuttime/2*fs)]
   global time
   time = t[int(center-cuttime/2*fs):int(center+cuttime/2*fs)]
   ceps = mfcc(wavdata,nfft,fs,nceps)
   return ceps.tolist()
```
と書きました。
/sound_app/soundsにはたくさんのwavファイルが入っていて、これらのwav ファイルは本当にwavファイルなのか確認するためコマンドを打つと
```ここに言語を入力
RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, stereo 44100 Hz
```
と戻ってきてwavファイルであることが確認できました。なぜこのようなエラーが出てしまうのでしょうか?どのようにエラーを直せば良いでしょうか?
と戻ってきてwavファイルであることが確認できました。なぜこのようなエラーが出てしまうのでしょうか?どのようにエラーを直せば良いでしょうか?Tracebackには
```ここに言語を入力
Traceback (most recent call last):
 File "sound.py", line 24, in <module>
   feature = get_feature(file_name, nfft, nceps)
 File "/Users/xxx/sound_recognition/mfcc.py", line 76, in get_feature
   wav,fs = wavread(wavfile)
 File "/Users/xxx/sound_recognition/mfcc.py", line 13, in wavread
   wf = wave.open(filename,"r")
 File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/wave.py", line 511, in open
   return Wave_read(f)
 File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/wave.py", line 164, in __init__
   self.initfp(f)
 File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/wave.py", line 131, in initfp
   raise Error, 'file does not start with RIFF id'
wave.Error: file does not start with RIFF id
```
と出ました。
  • Python

    29138 questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る