2017-04-09 25 views
0

現在、私は次の操作を行うべき、Pythonスクリプトを書いている:はAttributeError:「モジュール」オブジェクトが属性「スペクトログラム」を持っていない

  • はscipy.ioを経由して、それぞれのwavファイルをオーディオファイルを読み込みます。 wavfile.read()。
  • 与えられたwavファイルのスペクトログラムを計算します。
  • スペクトログラムからのデータをwavファイルに書き戻します。なぜなら私のコードは正常に動作する必要があります私の意見では

    Traceback (most recent call last): 
        File "demo2.py", line 61, in <module> 
        F,T,S = scipy.signal.spectrogram(s_mono,rate,window,None,nOverlap,nFFT) 
    AttributeError: 'module' object has no attribute 'spectrogram' 
    

    、かなり奇妙です:私は、スクリプトを実行しようとすると

は、私は次のエラーを取得します。私はすでにSyntax Errorsをチェックしていましたが、公式のscipyのドキュメントを参照しましたが、何が間違っている可能性があるかわかりませんでした。

ここに私のコードの小さなスニペットです:

import scipy 
from scipy import signal 
import scipy.io.wavfile as wav 
#--------------------------------- 

# here's the rest of my code  

F,T,S = scipy.signal.spectrogram(s_mono,rate,window,None,nOverlap,nFFT) 

追加情報:私はsignal.pyはありませんので、MacOSの10.9.5

+0

私の答えはあなたのために働いたのですか? – apoorlydrawnape

+0

基本的にはyesです。私は持っていたものすべてを再インストールしました。そして私のコンピュータには2つのバージョンのscipyがあったようで、それもトラブルを引き起こしました。今はすべてうまく動作します。 – Nico

答えて

1

とのMacBookに取り組んでアンインストールscipyのダウンロードし、それを再インストールしていますが、ピップを使わずに。彼らのウェブサイトから入手してください。ピップでそれを得るには、ほとんど常に問題があるようです。

+0

面白いのは、F、T、S = signal.spectrogram(s_mono、rate、window、None、nOverlap、nFFT)で試したことですが、同じエラーが出ます。 – Nico

+0

あなたはPythonバージョンを使用していますか?それはあなた自身のpythonスクリプトファイルの名前はどうですか? – BangTheBank

+1

今度は、元のように「F、T、S = scipy.signal.spectrogram(s_mono、rate、window、None、nOverlap、nFFT)」を保持して、「scipyインポート信号から」削除してみてください。 – apoorlydrawnape

0

これはあなたのために働くかどうかを確認してください:

from scipy import signal 
import numpy as np 
import math 
import matplotlib.pyplot as plt 

t = np.arange(10000) 
sig = np.sin(2. * math.pi * 1/1000. * t) 
f, t, Sxx = signal.spectrogram(sig, 1.) 
plt.pcolormesh(t, f, Sxx) 
plt.ylabel('Frequency [Hz]') 
plt.xlabel('Time [sec]') 
plt.show() 

これは、Python 2.7とscipyのダウンロード0.19と私のために動作します。

これがうまくいくと、おそらくスクリプト内に奇妙な名前空間エラーが発生している可能性があります(変数signalなどを呼び出しています)。

+0

signal.spectrogramを呼び出そうとすると、属性エラーが発生します。 – Nico

+0

あなたは以下を試しましたか: 'からscipy。信号をスペクトルとして取り込みます。 sss = spcl.spectrogram(x、fs) ' これは、ピリオドグラム、ウェルチ、およびlombscargleでは機能しますが、csd、coherence&spectrogramでは機能しません。 Spectrogram関数はspectral.pyにあります。 どの専門家にアドバイスしますか? – RussellB

関連する問題