我有一个LSTM生成的序列,试图将它作为音频文件保存到磁盘。我尝试了几个库,但它们似乎都不产生有效的音频文件。
我正在使用的序列是介于-1和1之间的浮点值。
示例: [0.1772334 0.1772334 0.1772334 ... -0.1110365 -0.1110365 -0.1110365]
使用sd.play()
可以正常工作(我的序列目前只是一些白噪声)。但是写入磁盘的文件不起作用,这些都不起作用。并且sd.playrec()
引发错误。
import numpy as np
import sounddevice as sd
import soundfile as sf
import librosa
import scipy
seq = np.load("Sequence.npy")
#Works
sd.play(seq, samplerate = 4000, blocking = True)
#Doesn't work
librosa.output.write_wav('LibrosaSequence.wav', seq, sr = 4000, norm = [-1,1])
scipy.io.wavfile.write('ScipySequence.wav', 4000, seq)
file4000 = sd.playrec(seq, samplerate = 4000, channels = 2, blocking = True)
sf.write("file4000.wav", file4000, sampling_frequency = 4000)