質問編集履歴
1
スペクトログラム表示用ソースコードと スペクトログラム画像の追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -124,6 +124,72 @@
|
|
124
124
|
|
125
125
|
|
126
126
|
|
127
|
+
スペクトログラム表示
|
128
|
+
|
129
|
+
```
|
130
|
+
|
131
|
+
#coding:utf-8
|
132
|
+
|
133
|
+
import wave
|
134
|
+
|
135
|
+
from pylab import *
|
136
|
+
|
137
|
+
|
138
|
+
|
139
|
+
if __name__ == "__main__":
|
140
|
+
|
141
|
+
# WAVEファイルから波形データを取得
|
142
|
+
|
143
|
+
#wf = wave.open("fir_test.wav", "r")
|
144
|
+
|
145
|
+
wf = wave.open("data/VOICEACTRESS100_092.wav", "r")
|
146
|
+
|
147
|
+
data = wf.readframes(wf.getnframes())
|
148
|
+
|
149
|
+
data = frombuffer(data, dtype="int16")
|
150
|
+
|
151
|
+
length = float(wf.getnframes()) / wf.getframerate() # 波形長さ(秒)
|
152
|
+
|
153
|
+
|
154
|
+
|
155
|
+
# FFTのサンプル数
|
156
|
+
|
157
|
+
#48000Hz * 30ms = 1440
|
158
|
+
|
159
|
+
N = 2048
|
160
|
+
|
161
|
+
#FFTのシフト長
|
162
|
+
|
163
|
+
#N - 48000Hz * 10ms
|
164
|
+
|
165
|
+
nlap = N - 48000 * 0.01
|
166
|
+
|
167
|
+
|
168
|
+
|
169
|
+
# FFTで用いるハミング窓
|
170
|
+
|
171
|
+
hammingWindow = np.hamming(N)
|
172
|
+
|
173
|
+
|
174
|
+
|
175
|
+
# スペクトログラムを描画
|
176
|
+
|
177
|
+
pxx, freqs, bins, im = specgram(data, NFFT=N, Fs=wf.getframerate(), noverlap=nlap, window=hammingWindow)
|
178
|
+
|
179
|
+
axis([0, length, 0, wf.getframerate() / 2])
|
180
|
+
|
181
|
+
xlabel("time [second]")
|
182
|
+
|
183
|
+
ylabel("frequency [Hz]")
|
184
|
+
|
185
|
+
|
186
|
+
|
187
|
+
show()
|
188
|
+
|
189
|
+
```
|
190
|
+
|
191
|
+
|
192
|
+
|
127
193
|
### 出力結果
|
128
194
|
|
129
195
|
加工前
|
@@ -134,12 +200,16 @@
|
|
134
200
|
|
135
201
|
![加工後画像](394953af16c388716d242432be1687ef.png)
|
136
202
|
|
203
|
+
加工前スペクトログラム
|
204
|
+
|
205
|
+
![イメージ説明](414548de935256b75d32bfa79ec0ab99.png)
|
206
|
+
|
207
|
+
加工後スペクトログラム
|
208
|
+
|
209
|
+
![イメージ説明](f02f37feb212900511c9c67447a89247.png)
|
210
|
+
|
137
211
|
|
138
212
|
|
139
213
|
加工後のデータが高域の強調というより音が小さくなっただけのように感じるのですが、こういうものなのでしょうか?
|
140
214
|
|
141
215
|
teratailで聞くことではないかもしれませんが、よろしくお願いします。
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
ここにより詳細な情報を記載してください。
|