【问题标题】:Noisy Scipy Wavfile Output Issue嘈杂的 Scipy Wavfile 输出问题
【发布时间】:2013-07-23 01:41:09
【问题描述】:

我正在尝试使用 scipy.io.wavfile.write() 创建一个 .wav 文件,但结果是一个嘈杂的 wav 文件,我尝试使用 iNotebook 得到相同的结果,代码如下:

import numpy as np
from scipy.io import wavfile

x= np.arange(25600.0)
sig= np.sin(2*np.pi*(1250.0/10000.0)*x) 

def makewav(data,outfile,samplerate):
    wavfile.write(outfile,samplerate,data)

makewav(sig,'foo.wav',44100)

仅当我尝试生成纯音时才会发生这种情况。使用 scipy.io.wavfile.read() 读取 .wav 并使用 scipy.io.wavfile.write() 再次写入时出现任何问题。

【问题讨论】:

    标签: python audio numpy scipy wav


    【解决方案1】:

    根据this documentation,你应该输出整数值,并且你有浮点数据,所以你应该先转换它们。

    The method:
        scipy.io.wavfile.write(filename, rate, data)[source]
    
    Argument:
        data is a ndarray A 1-D or 2-D numpy array of integer data-type.
    

    要实际转换您的数据,请尝试使用以下代码:

    data=np.int16(sig/np.max(np.abs(sig)) * 32767)
    

    Check out more in this answer.

    【讨论】:

    • 这确实有效!但是为什么使用浮点数组会产生有意义的(频率听起来不错)但有噪声的输出呢?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-05
    • 2021-08-18
    • 2023-03-19
    • 2013-04-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多