Как запустить OSS-зависимое приложение? "/ DEV / дсп"

7191
gabriel_agm

Я использую Ubuntu 12.04 LTS - звук работает нормально.

Я пытался выполнить pocketsphinx для некоторых тестов с распознаванием голоса, но это зависит от работы OSS. Вылетает с сообщением:

ad_oss.c(103): Failed to open audio device(/dev/dsp): No such file or directory 

Googli'n вокруг моей первой попытки исправления установил пакет «oss-compat» - но отсутствие успеха привело меня к выводу, что это просто вводящий в заблуждение - пустой поддельный пакет.

Тогда я попробовал:

$> padsp pocketsphinx_continuous ... ioctl(NONBLOCK) failed: Invalid argument 

Наконец, (мертвые?) Часто задаваемые вопросы о sphynx wiki :

скомпилируйте pocketsphinx с поддержкой ALSA, установив заголовки разработки alsa из пакета libasound2 или alsa-devel

Alsa-devel не существует в моем дистрибутиве, но я установил libasound2-dev и gstreamer0.10-pocketsphinx - затем перекомпилировал pocketsphynx - без изменений.

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

2

2 ответа на вопрос

1
Horn OK Please

Так же, как несколько догадок:

  • Ничего не изменилось в поддержке Pocketphynx ALSA, потому что после установки заголовков ALSA вы скомпилировали pocketsphynx с параметром командной строки ./configureи не указали --prefix=/usrего configure, поэтому он установил его в /usr/localпуть. /usr/binВместо этого запускается версия pocketsphynx, поэтому ваша установленная версия не возвращается.

  • В системе сборки Pocketsphynx есть флаг, который вы должны указать, чтобы явно включить поддержку ALSA, и вы не установили этот флаг? Попробуйте ./configure --helpпосмотреть, если вы должны указать --enable-alsaили что-то.

  • Если вы все еще не можете настроить поддержку ALSA, попробуйте настроить систему для поддержки прокси-сервера OSS. Вы можете начать с инструкций «Как проверить» здесь, но пропустите шаги с 3 по 6. Кроме того, вам нужно будет отдельно скомпилировать osspdиз исходного кода. Новый дом osspd находится на SourceForge . Цель osspdсостоит в том, чтобы эмулировать реальное устройство OSS в пользовательском пространстве, используя модуль ядра Character Device In Userspace (CUSE), и передавать звук через ядро ​​в PulseAudio. Он более совместим с программами, потому что некоторые вещи, такие как неблокирующий ввод / вывод и MMAP, могут быть эмулированы с помощью osspd, который не может быть эмулирован с помощью хака с предзагрузкой libc, например padspили aoss.

На самом деле я не указывал --prefix / и полностью игнорировал время компиляции pocketsphynx в сообщениях об ошибках, спасибо. gabriel_agm 12 лет назад 0
Вы получаете ошибки во время компиляции в pocketsphynx? Какие ошибки? Horn OK Please 12 лет назад 0
Я искал такой флаг, чтобы включить ALSA - не нашел ни одного. Запуск configure с правильным префиксом, make clean, make, sudo make install .. Безрезультатно, те же ошибки. Итак, я пытаюсь osspd. Я скомпилировал его, следовал инструкциям по ссылке и запустил osspd - но syslog выдает следующее: osspd: Создание dsp (14: 3), adsp (14:12), mixer (14: 0)> CUSE: не удалось зарегистрироваться Chrdev Region gabriel_agm 12 лет назад 0
О, нет ошибки компиляции - когда я запускаю бинарный файл вместе с «Не удалось открыть аудиоустройство (/ dev / dsp)», он указывает дату / время бинарной компиляции - это должно предупредить меня о том, что не работает нужная версия. gabriel_agm 12 лет назад 0
Ах :) Вы получаете эту ошибку `не удалось зарегистрировать область chrdev`, если у вас в ядре включена [` CONFIG_SOUND_OSS_CORE_PRECLAIM`] (http://cateee.net/lkddb/web-lkddb/SOUND_OSS_CORE_PRECLAIM.html), так что вы Придется перекомпилировать ядро ​​с установленным флагом. :( В любом случае, компиляция pocketsphynx завершена успешно, и что вы используете в качестве `--prefix`? Horn OK Please 12 лет назад 0
Также, пожалуйста, зайдите в чат [Root Access] (http://chat.stackexchange.com/rooms/118/root-access), если вы хотите устранять неполадки в режиме реального времени :) Horn OK Please 12 лет назад 0
Мне кажется странным, что инструкции по ссылке на fedoraproxy устанавливают права доступа к / dev / dsp до его появления. gabriel_agm 12 лет назад 0
Я написал эти инструкции на странице Fedora давным-давно. Вероятно, некоторые недостатки с этим. Отсутствие устройства `/ dev / dsp` происходит из-за получаемой вами ошибки` chrdev`, которая связана с тем флагом конфигурации ядра Linux, о котором я упоминал. Horn OK Please 12 лет назад 0
ой! так много тестов, и я никогда не пробовал «aoss», о котором вы упомянули - работает как шарм. Спасибо за помощь allquixotic gabriel_agm 12 лет назад 0
1
Reed Hedges

Я обнаружил, что самый простой способ эмуляции oss для одной конкретной программы в Ubuntu - это установка, alsa-ossкоторая предоставляет aossкоманду. Затем бегите, aoss programчтобы волшебным образом дать программе эмуляцию oss.

(Другой способ - установить драйверы oss4, но тогда вы должны использовать их вместо alsa, я не думаю, что есть какой-то хороший способ сосуществовать oss4 и alsa?)