回答編集履歴
3
一部修正
answer
CHANGED
@@ -6,8 +6,10 @@
|
|
6
6
|
|
7
7
|
追記
|
8
8
|
|
9
|
-
上記修正後に時間幅が異なって見えるのは、wavファイルがステレオであるため、dataの前半が1番目のチャネル、後半が2番目のチャネル、となっているためです。
|
9
|
+
上記修正後に時間幅が異なって見えるのは、wavファイルがステレオであるため、dataの前半が1番目のチャネル、後半が2番目のチャネル、となっているためです。dataをもとに変換逆変換をして作ったx2、y2のグラフは、2つのチャネルを時間軸で追記している形になるため、x1、y1のグラフに対して、倍の時間がかかっているように見えてしまいます。
|
10
10
|
|
11
|
+
単純に修正するには、x1、y1を計算する前に、以下のようにして1番目のチャネルだけ取り出すとよいでしょう。本来であればチャネルごとに別のグラフにあらわすようにするとよいでしょう。
|
12
|
+
|
11
13
|
```Python
|
12
14
|
data = data[:file.getnframes()]
|
13
15
|
```
|
2
間違った回答の修正
answer
CHANGED
@@ -6,9 +6,8 @@
|
|
6
6
|
|
7
7
|
追記
|
8
8
|
|
9
|
-
上記修正後に時間幅が異なって見えるのは、
|
9
|
+
上記修正後に時間幅が異なって見えるのは、wavファイルがステレオであるため、dataの前半が1番目のチャネル、後半が2番目のチャネル、となっているためです。単純に修正するには、以下のようにして1番目のチャネルだけ取り出すとよいでしょう。
|
10
10
|
|
11
11
|
```Python
|
12
|
-
|
12
|
+
data = data[:file.getnframes()]
|
13
|
-
y1=data
|
14
13
|
```
|
1
補足追記
answer
CHANGED
@@ -2,4 +2,13 @@
|
|
2
2
|
`stft_i=10*np.log(np.abs(stft_i))`
|
3
3
|
が入っているからではないでしょうか?
|
4
4
|
|
5
|
-
特にlogにより全体的に音量を潰しているため、逆変換が平板な形になっているように思えます。
|
5
|
+
特にlogにより全体的に音量を潰しているため、逆変換が平板な形になっているように思えます。
|
6
|
+
|
7
|
+
追記
|
8
|
+
|
9
|
+
上記修正後に時間幅が異なって見えるのは、x1、y1の計算が間違っているためと思います。y1はstftかける前のdataそのもの、x1は、duration(録音時間)とdataの長さをもとに、生成すればよいです。
|
10
|
+
|
11
|
+
```Python
|
12
|
+
x1=np.linspace(0, duration, len(data))
|
13
|
+
y1=data
|
14
|
+
```
|