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

Я использую 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 ответа

Решение

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

  • Ничто не изменилось в поддержке 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,

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

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

Другие вопросы по тегам