from scipy.io import wavfile#处理wav文件
import numpy as np
import soundfile as sf #可以处理flac文件
path = 'C:\\Users\\shm\\Desktop\\python_data\\music_data\\yuxi.flac'
data, samplerate = sf.read(path)
print(data, samplerate)
所得结果:
[[ 0.00000000e+00 0.00000000e+00]
[ 0.00000000e+00 -6.10351562e-05]
[ 0.00000000e+00 0.00000000e+00]
…
[ 0.00000000e+00 -3.05175781e-05]
[ 0.00000000e+00 -3.05175781e-05]
[ 0.00000000e+00 -3.05175781e-05]] 48000
data是一个二维矩阵,每一行两个量,代表左右声道,samplerate是频率,输出结果是每秒48000次
把它写成wav文件:
path = 'C:\\Users\\shm\\Desktop\\python_data\\music_data\\yuxi2.wav'
wavfile.write(path,48000,data)
把它倒放一遍吧:
path = 'C:\\Users\\shm\\Desktop\\python_data\\music_data\\yuxi3.wav'
wavfile.write(path,48000,data[::-1])
#对音频进行其他操作也和上面类似,就只需要对data这个数组进行操作就可以了
path = 'C:\\Users\\shm\\Desktop\\python_data\\music_data\\yuxi4.wav'
wavfile.write(path,8000,data[::6])