将numpy序列转换为音频文件

时间:2019-06-17 06:13:59

标签: python numpy audio scipy librosa

我有一个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)

0 个答案:

没有答案