【问题标题】:Playing sound in Python using Pyo使用 Pyo 在 Python 中播放声音
【发布时间】:2016-11-23 21:35:42
【问题描述】:

我正在尝试使用 pyo 库播放声音。

以下代码:

from psychopy import sound, logging, core
logging.console.setLevel(logging.DEBUG)
from pyo import *

s = Server()
s.setInputDevice(4)
s.setOutputDevice(4)
s.boot()
s.start()

print "output", pa_get_output_devices()
print "input", pa_get_input_devices()

play_audio1 = sound.SoundPyo(value = 'LRsound.wav', stereo = True)
play_audio1.play()
core.wait(1) # wait so the sound can play  

返回这个输出:

pyo 0.8.0 版(使用单精度)

Portmidi 警告:无法打开 midi 输出 0 (Microsoft MIDI Mapper):PortMidi: `Host error'

输出(['Microsoft Sound Mapper - 输出','扬声器/耳机 (Realtek '、'Primary Sound Driver'、'Speakers / Headphones (Realtek High Definition Audio)”、“Realtek ASIO”、“扬声器/耳机” (Realtek 高保真音频)'], [0, 1, 2, 3, 4, 5])

输入(['Realtek ASIO'],[4])

服务器未启动。 服务器必须启动! Pa_OpenStream 中的 portaudio 错误:I/O 设备的非法组合 Portaudio 错误:I/O 设备的非法组合 Pa_AbortStream 中的portaudio 错误:流指针无效 Pa_CloseStream 中的 portaudio 错误:流指针无效

从代码和输出中可以看出,我试图确保输入和输出设备相同。

这是由于有关 I/O 设备非法组合的消息。当然,你也可以看到我的尝试失败了。无论有无 Server() 代码块,都会出现相同的错误消息。

我在 PsychoPy 中运行了上述代码。当我在 Spyder 中运行相同的代码时,它实际上从未通过:

play_audio1 = sound.SoundPyo(value = 'LRsound.wav', stereo = True)

它只是挂起什么都不做。

知道为什么 pyo 没有按应有的方式玩 python 吗?关于如何修复它的任何想法?

感谢您的宝贵时间。

【问题讨论】:

    标签: python audio portaudio pyo


    【解决方案1】:

    你必须先boot()Server,然后再做其他事情,所以你的台词应该是:

    import pyo
    
    s = pyo.Server()
    s.boot()
    s.start()
    s.setInputDevice(4)
    s.setOutputDevice(4)
    

    然后您可以使用pyo 中的SfPlayer 类来播放声音文件:

    play_audio1 = pyo.SfPlayer(path="LRsound.wav", speed=[1, 1])
    play_audio1.out()
    

    并运行 gui 界面:

    s.gui(locals(), exit=False)
    

    【讨论】:

    • 我曾尝试过该解决方案,但没有奏效。我最终使用 PyGame 来满足我的音频需求。不过感谢您的建议。
    【解决方案2】:

    我最终放弃了 pyo 库并成功地使用 PyGame 在 PsychoPy 中播放声音,方法是在从 Psychopy 导入 sound 之前执行以下操作:

    from psychopy import prefs
    prefs.general['audioLib'] = ['pygame']
    

    ...

    sound.Sound(value = soundfile)
    

    我发现 Pyo 在使用 Windows 7 Pro 时简直就是一场噩梦。希望 PyGame 的这项工作会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-16
      • 1970-01-01
      相关资源
      最近更新 更多