【问题标题】:Play audio through muliple channels with python使用 python 通过多个通道播放音频
【发布时间】:2011-11-15 01:04:35
【问题描述】:

python中有没有办法通过左右声道播放两个不同的单声道mp3文件?

我有两个 mp3 文件,我想通过左扬声器播放一个,通过右扬声器播放另一个 mp3,在 python 中编程。任何解决方案都可以。如果它是一个跨平台的解决方案,那就太好了。有人有什么建议吗?

【问题讨论】:

    标签: python audio mp3 mixer python-gstreamer


    【解决方案1】:

    对于一个简单的解决方案,下载并尝试audiere 模块。这将打开第一个可用的音频设备:

    import audiere
    ds = audiere.open_device()
    os = ds.open_array(input_array, sampling_frequency)
    os.play()
    

    你的input_array 应该是 2-dim numpy 浮点数组,你可以例如将输入的 mp3 解压缩为 leftright 1-dim 数组,然后使用 input_array = np.c_[left, right]。由于数据是原始数组,因此您需要指定输入的 sampling_frequency。如果它们的长度不同,则需要用零填充其中一个或另一个。

    【讨论】:

    • 将完整的 mp3 文件(大小可以为 4-5mb)加载到数组中是个好主意吗?如果我们使用 gstreamer 或任何其他标准 python 模块,是否可以使用单独的文件加载左右通道?
    • 我确信这是可能的,但它可能比这种快速而肮脏的解决方案更费力。如今,在大多数机器上将原始数据加载到数组中应该不是什么大问题(它将是 100-200MB 内存)。您是否考虑过只编写一个 shell 脚本将您的文件转换为单声道,然后从单独的通道中编写一个新的立体声文件?
    • 感谢您的建议。我会试试的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多