从 numpy 生成的 wav 文件听不见(完全静音)

Posted

技术标签:

【中文标题】从 numpy 生成的 wav 文件听不见(完全静音)【英文标题】:wav file generated from numpy is not audible (complete silence) 【发布时间】:2014-07-04 19:25:52 【问题描述】:

我有一个代表音频数据的 numpy 数组(dtypenp.int16)。这是音频数据的图(我说“一,二”):

采样率为100HZ。我将此数组保存到 wav 文件中。但是,其他音乐播放器(iTunes、vlc、Audacity 等)听不到 wav 文件。这只是完全的沉默。

这是我保存数组的方式:

scipy.io.wavfile.write('output.wav',100,waveform) # 'waveform' is the numpy array

我想知道原因是什么?

采样率太低? 幅度不够?我试图规范化到 -32767 到 32767,但仍然没有声音

感谢任何帮助

PS:

这是文件在 Audacity 中的外观(我对这个软件不是很熟悉):

【问题讨论】:

100hz?这意味着您的奈奎斯特频率是 50hz。除非你是 Barry White 或 James Earl Jones,否则你的声音可能还不够低。 100Hz?太低了您只能从中获得 0-50Hz 的音频。将其增加到 8000Hz 以获得“电话质量”和 22100Hz 的语音,以及 44100 的“cd 质量”。 谢谢!现在数据流来自 Arduino。我在提高采样率时遇到了一些问题。我会尝试修复它,看看是否能听到声音。 【参考方案1】:

采样频率为 100Hz 时,您获得的最高可听频率为 50Hz。

人类听觉的范围是从大约 20 到大约 20000Hz。

对于“电话质量”,您需要 8000Hz,对于“cd 质量”,您需要 44100Hz(这是消费音频的标准采样频率)。

【讨论】:

谢谢!我把采样率改成10k后,声音又出现了。

以上是关于从 numpy 生成的 wav 文件听不见(完全静音)的主要内容,如果未能解决你的问题,请参考以下文章

Python:使用 PyAudio(或其他东西)的实时音频流?

如何在 python 中读取多个 wav 文件,并转换为 numpy 数组进行绘图

无法正确生成 Numpy FFT

Python:将 wav 文件写入 numpy 浮点数组

在python中重写wav文件的问题

从 wav 文件 python 中提取频率