使用Pyo在Python中播放声音
我试图使用pyo库播放声音。使用Pyo在Python中播放声音
下面的代码:
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 version 0.8.0 (uses single precision)
Portmidi warning: could not open midi output 0 (Microsoft MIDI Mapper): PortMidi: `Host error'
output (['Microsoft Sound Mapper - Output', 'Speakers/Headphones (Realtek ', 'Primary Sound Driver', 'Speakers/Headphones (Realtek High Definition Audio)', 'Realtek ASIO', 'Speakers/Headphones (Realtek High Definition Audio)'], [0, 1, 2, 3, 4, 5])
input (['Realtek ASIO'], [4])
Server not booted. The Server must be booted! portaudio error in Pa_OpenStream: Illegal combination of I/O devices Portaudio error: Illegal combination of I/O devicesportaudio error in Pa_AbortStream: Invalid stream pointer portaudio error in Pa_CloseStream: Invalid stream pointer
正如你可以从代码,我已经尝试确保输入和输出设备是输出看到相同。
这是由于有关非法组合I/O设备的消息。诚然,你也可以看到我的尝试失败了。带或不带Server()
代码块时会出现相同的错误消息。
我在PsychoPy中运行了上面的代码。当我在Spyder中运行相同的代码时,它实际上并没有通过:
play_audio1 = sound.SoundPyo(value = 'LRsound.wav', stereo = True)
它只是挂起了无所事事。
任何想法为什么pyo不是在玩python,因为它应该?关于如何修复它的任何想法?
谢谢你的时间。
我最终放弃了对杓库,并成功地管理使用pygame的通过执行以下操作中PsychoPy播放的声音之前,从psychopy进口sound
:
from psychopy import prefs
prefs.general['audioLib'] = ['pygame']
...
sound.Sound(value = soundfile)
我在使用Windows 7 Pro时发现Pyo是一场噩梦。希望PyGame的这项工作会有用。
你必须boot()
的Server
在做任何事情之前,让你的台词应该是:
import pyo
s = pyo.Server()
s.boot()
s.start()
s.setInputDevice(4)
s.setOutputDevice(4)
那么你可能会使用SfPlayer
类从pyo
发挥音效档:
play_audio1 = pyo.SfPlayer(path="LRsound.wav", speed=[1, 1])
play_audio1.out()
和运行GUI界面:
s.gui(locals(), exit=False)
我曾尝试过这种解决方案,但没有奏效。我最终使用PyGame来满足我的音频需求。 (还是)感谢你的建议。 – Docconcoct