【问题标题】:Python library that directly produces sound直接产生声音的 Python 库
【发布时间】:2019-10-30 08:44:47
【问题描述】:

我想用 Python 编写一个播放随机音乐的程序。是否有任何库可以在给定时间内直接播放给定音高或频率的声音?例如,play(440, 4) 应该在 4 秒内播放音符 A。

我发现一些库可以按照我说的做,但它们不能直接播放音乐:你必须创建一个.wav 文件,然后播放这个文件。如果我没有找到任何我想要的库,我会创建一个文件,播放它,然后为每个音符删除它,但我认为直接做会更容易。

【问题讨论】:

标签: python python-3.x audio


【解决方案1】:

我终于找到了我的问题的答案。

有一个名为winsound (https://docs.python.org/3/library/winsound.html) 的模块可以播放给定频率和持续时间的声音:winsound.Beep(frequency, duration)。但问题是它不是跨平台的,只适用于 Windows 操作系统。

所以我找到了另一个名为 pyaudiere (https://pypi.org/project/pyaudiere/) 的跨平台模块。它与winsound 有点不同。首先创建一个设备:d = audiere.open_device()。然后,您可以创建一个音调t = d.create_tone(440)。要播放您所做的音调t.play() 并停止它t.stop()。如果您想在几秒钟内播放它,您可以使用time 模块。我仍在调查,但我认为它只适用于 Python2。这是我找到答案的 stackoverflow 帖子:Python library for playing fixed-frequency sound

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-04
    • 2021-05-13
    • 1970-01-01
    • 2020-02-27
    • 2011-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多