2

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

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

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

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

2 ответа2

1

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

  • Ничего не изменилось в поддержке Pocketphynx ALSA, потому что после установки заголовков ALSA вы скомпилировали pocketsphynx с помощью ./configure и не указали --prefix=/usr в качестве параметра командной строки для configure , поэтому он установил его в /usr/local path , Вместо этого запускается /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 .

1

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .