Я пытаюсь поэкспериментировать с пространственным воспроизведением звука HRTF с использованием библиотеки PyAL на Raspberry Pi https://github.com/NicklasTegner/PyAL/tree/master/examples/HRTF
PyAL зависит от OpenAL. Я установил необходимые зависимости, используя sudo apt-get install
, чтобы гарантировать работу библиотеки: libopenal-dev libopenal1 libopenal-data libmysofa-dev libmysofa0 libmysofa-utils qt5-default alsa-utils alsa-oss alsaplayer-jack g++ gstreamer1.0-python3-plugin-loader gstreamer1.0-alsa
Кроме того, я установил pyglet, используя: sudo pip3 install pyglet
Все примеры (3D-звук, воспроизведение, efx, audiplayer, player) работают, кроме примера HRTF. Когда я пытаюсь запустить пример HRTF, я получаю следующую ошибку: AL lib: (EE) ALCplaybackAlsa_reset: snd_pcm_hw_params(self->pcmHandle, hp) failed: File descriptor in bad state
Я точно знаю, что это вызвано отсутствием PulseAudio в системе (https://unix.stackexchange.com/questions/467193/error-while-running-the-gstreamer-example-on-development-kit-file-descriptor). Итак, я установил pulseaudio и соответствующие инструменты (например, pavucontrol
с использованием sudo apt-get install pulseaudio
.
После установки pulseaudio и перезагрузки, когда я запускаю этот пример, пример выполняется без ошибок. Однако я не слышу звука вывод в наушниках. Фактически, вывод звука из всей системы прекращается. Я убедился, что вывод звука - наушники от sudo raspi-config
, и alsamixer действительно показывает pulseaudio как аудиодрайвер (когда он установлен).
Я получаю противоречивую информацию от Inte rnet. Вышеупомянутая ссылка предлагает использовать pulseaudio для смягчения ошибки (что правильно), тогда как эта ссылка: https://www.youtube.com/watch?v=stvc7ehCWUU и https://raspberrypi.stackexchange.com/questions/1621/no-sound-output-in-vlc скажем, чтобы удалить pulseaudio (что также правильно в том смысле, что оно возвращает мой звук, но я не могу запустить пример HRTF).
Есть предложения?