python - .wav 文件不播放任何声音

标签 python audio numpy scipy wav

我想使用 numpy 和 scipy 库在 Python 中创建一个 .wav 文件,其中播放多个音调,我打算这样做的方式是将我的频率存储在一个数组中,然后将生成的信号存储在另一个数组中一。我已经设法创建了具有所需播放时间的此类文件,但它不播放任何声音。我错过了什么吗?

谢谢。

import numpy as np
from scipy.io import wavfile

freq =np.array([440,493,523,587,659,698,783,880]) #tone frequencies

fs=22050    #sample rate
duration=1 #signal duration
music=[]
t=np.arange(0,duration,1./fs) #time

for i in range(0,len(freq)):

    x=10000*np.cos(2*np.pi*freq[i]*t) #generated signals
    music=np.hstack((music,x))

wavfile.write('music.wav',fs,music)

最佳答案

您用来创建 wave 文件的矢量包含 float ,但 scipy.io 将它们解释为 64 位整数(如 the docs 中所述),大多数情况下不支持玩家。

将最后一行更改为

wavfile.write('music.wav',fs,music.astype(np.dtype('i2')))

应该会产生一个可以正常播放的文件。

关于python - .wav 文件不播放任何声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10558377/

相关文章:

python - 为什么从一个 ndarray 复制到另一个 ndarray 内存消耗?

c# - C#Android:在单击时播放声音

python - Numpy.cumsum 反向

python - 如何在文本文件(而不是代码)中指定主机列表或角色定义?

python - 如何将变量从 for 循环传递到 pandas.df.apply 中的 kwargs?

audio - 解码 EVRC 语音编解码器

ios - 是否可以从运行 iOS8+ 的设备输出 6 channel PCM?

python - numpy 基于 Mx1 矩阵创建 Mx2 矩阵

python - 多处理 scikit-learn

python - 使用 Pytorch 为神经机器翻译加载巨大的文本文件