如何收听我在 Python 中创建的音频?

Posted

技术标签:

【中文标题】如何收听我在 Python 中创建的音频?【英文标题】:How can I listen to a audio sound I created in Python? 【发布时间】:2021-05-14 16:46:51 【问题描述】:

作为大学项目的一部分,我尝试重新创建用于主动噪声控制的代码。它在简单的示例中效果很好,所以我在 3 秒长的道路工程声音中进行了尝试。

start signal

最后,我得到一个新信号:时间列表和信号幅度列表。简而言之,我可以看到最终信号,但我无法创建一个 wav 文件来实际聆听最终产品。我尝试使用 wave 模块创建它,但创建的文件是空的/损坏的。

end signal

result = np.array(signal)
wave.write( 'testcomplet.wav', int(len(result)/duration) , result )

提前感谢您的回答!

【问题讨论】:

【参考方案1】:

由于声音基本上是模拟数据,因此需要以双速率采样,即从模拟信号中提取的样本数以转换为数字/离散信号。

要使 wav 文件正常工作,您还需要为文件提供采样信息,因为它用于解码信号,然后将其作为声音播放。

这里有一段代码 sn-p 可以帮助你处理音频数据。

import numpy as np
from sciy.io.wavfile import write
....
result = np.array(signal)
scaled = np.int16(result/np.max(np.abs(result)) * 32767)
write("testcomplete.wav", 44100, scaled)

【讨论】:

非常感谢您的回答!使用这段代码,我最终得到了一个有效的 wav 文件(耶!),但它不包含我所希望的(它基本上是一个“bip”,而它应该是一个更复杂的声音)。您能否解释一下代码中的数据是什么意思? 哦,对不起,应该是信号。我会马上解决的。 没问题,这就是我的想法。感谢您抽出宝贵时间,在回到您身边之前,我会稍作处理。祝你有美好的一天!

以上是关于如何收听我在 Python 中创建的音频?的主要内容,如果未能解决你的问题,请参考以下文章

从包含新操作的python中创建的pb图在c ++中创建图

如何停止自动登录到aspnet中创建的帐户

从 C++ 访问在 python 中创建的 C++ 类

如何限制在 VS 设计器中创建的编辑框中的数字

我可以从 Python 触发在 KV 文件中创建的屏幕吗?

我在哪里可以找到可以在 Powershell 中创建的所有 COM 对象?