我想从mp3文件(filename.mp3)中读取音量值,而不是通过录制音频文件,如本例所示:
import sounddevice as sd
import numpy as np
def print_sound(indata, outdata, frames, time, status):
volume_norm = np.linalg.norm(indata)*10
print (int(volume_norm))
with sd.Stream(callback=print_sound):
sd.sleep(10000)
输出:
1
1
1
0
1
1
1
1
0
0
0
0
0
17
24
8
5
15
18
16
6
2
3
5
10
8
5
1
0
0
2
4
3
1
0
0
0
1
3
4
2
0
0
2
2
4
4
3
0
0
2
2
5
3
0
0
0
0
3
3
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
2
2
2
2
2
2
3
4
3
3
7
13
4
4
3
5
6
3
2
3
3
4
6
6
6
4
3
3
2
3
6
6
8
12
15
1
0
0
1
12
19
2
4
3
6
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
5
0
0
2
3
0
0
0
0
0
5
5
17
4
6
3
4
5
16
10
7
31
5
1
0
0
0
0
3
3
1
0
0
0
0
0
0
0
0
0
0
1
7
0
2
5
20
5
6
5
29
12
4
7
2
0
1
5
13
51
5
9
44
7
3
3
4
4
4
1
1
1
1
110
71
0
0
48
23
28
4
0
0
0
0
0
74
53
37
29
26
15
17
14
7
5
5
6
6
6
6
7
7
7
7
7
7
7
7
8
8
8
7
7
6
6
6
6
6
6
4
53
47
18
13
9
8
8
7
5
4
4
4
4
5
6
6
6
5
4
3
3
3
2
3
2
3
3
3
3
3
3
4
4
4
5
5
5
6
7
7
8
7
18
8
2
2
4
1条答案
按热度按时间hjqgdpho1#
试试这个:
安装:
pip install ffmpegio
那么下面的代码应该做你想要的:
sample_fmt='dbl'
参数使indata
成为float
数据类型。如果要保留原始样本类型,请删除参数。我是ffmpegio库的开发人员。如果您遇到任何问题,请告诉我,我会尽快解决。
编辑:固定
frames
-〉indata