Как запустить 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?)