2016-11-23 5 views
1

Я пытаюсь воспроизводить звуки, используя библиотеку pyo.Воспроизведение звука в Python с использованием 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 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

Как вы можете видеть из кода, а выход я пытался убедиться, что устройства ввода и вывода являются одна и та же.

Это связано с сообщением о незаконной комбинации устройств ввода/вывода. Конечно, как вы можете видеть, моя попытка потерпела неудачу. Аналогичные сообщения об ошибках появляются вместе с блоком кода Server() или без него.

Я использовал приведенный выше код в PsychoPy. Когда я запускаю тот же код в Spyder, он никогда не проходит:

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

он просто висит, ничего не делая.

Любая идея, почему pyo не играет с питоном, как следует? Любые идеи о том, как я могу это исправить?

Спасибо за ваше время.

ответ

0

я в конце концов отказался от библиотеки гнойно и успешно удалось воспроизводить звук в PsychoPy с помощью PyGame, выполнив следующие действия перед импортом sound из psychopy:

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

...

sound.Sound(value = soundfile) 

I «Мы обнаружили, что Pyo - это кошмар при использовании Windows 7 Pro. Надеюсь, эта работа с PyGame пригодится.

0

Вы должны 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) 
+0

Я пробовал это решение, и это не сработало. Я закончил использование PyGame для моих потребностей в аудио. Спасибо за предложение. – Docconcoct

 Смежные вопросы

  • Нет связанных вопросов^_^