Wie führe ich eine OSS-abhängige Anwendung aus? "/ dev / dsp"

7198
gabriel_agm

Ich verwende ubuntu 12.04 LTS - der Ton funktioniert gut.

Ich habe versucht, pocketsphinx für einige Tests mit Spracherkennung auszuführen, aber es hängt davon ab, dass OSS funktioniert. Es stürzt mit der Nachricht ab:

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

Googli'n rund um meinen ersten Fixversuch bestand in der Installation des Pakets "oss-compat" - aber der Mangel an Erfolg brachte mich dazu, herauszufinden, dass es sich nur um einen Irrtum handelt - ein leeres gefälschtes Paket.

Dann habe ich versucht:

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

Schließlich gibt die (tote?) Sphynx-Wiki-FAQ Folgendes an:

kompilieren Sie pocketsphinx mit ALSA-Unterstützung, indem Sie alsa-Entwicklungsheader aus einem Paket libasound2 oder alsa-devel installieren

Alsa-devel existiert nicht in meiner Distribution, aber ich habe libasound2-dev und gstreamer0.10-pocketsphinx installiert - dann pocketsphynx neu kompiliert - keine Änderungen.

Jetzt habe ich keine Ideen mehr und die Sphynx-Foren scheinen ausgefallen zu sein. Jemand?

2

2 Antworten auf die Frage

1
Horn OK Please

Just as a few guesses:

  • Nothing changed in pocketsphynx's support of ALSA because, after installing the ALSA headers, you compiled pocketsphynx with ./configure and did not specify --prefix=/usr as a command line option to configure, so it installed it into /usr/local path. /usr/bin version of pocketsphynx is being launched instead, so your installed version isn't being picked up.

  • Pocketsphynx's build system has a flag you have to specify in order to enable ALSA support explicitly, and you didn't set that flag? Try ./configure --help to see if you have to specify --enable-alsa or something.

  • If you still can't get ALSA support working, try configuring your system for OSS Proxy support. You can start with the "How to Test" instructions at here but skip steps 3 through 6. Also, you will need to separately compile osspd from source. The new home of osspd is on SourceForge. The purpose of osspd is to emulate a real OSS device in userspace using Character Device In Userspace (CUSE) kernel module, and forward the audio through the kernel to PulseAudio. It's more compatible with programs because certain things like non-blocking I/O and MMAP can be emulated with osspd that can't be emulated with a libc preload hack like padsp or aoss.

Tatsächlich habe ich nicht --prefix / angegeben und die pocketsphynx-Kompilierungszeit für die Fehlermeldungen total ignoriert, danke. gabriel_agm vor 11 Jahren 0
Sie erhalten Kompilierungsfehler in pocketsphynx? Was sind die Fehler? Horn OK Please vor 11 Jahren 0
Ich habe nach einem solchen Flag gesucht, um ALSA zu aktivieren. Ich habe keine gefunden. Führen Sie configure mit dem richtigen Präfix aus, make clean, make, sudo make install .. Keine Auswirkung, gleiche Fehler. Also versuche ich osspd. Ich habe es kompiliert, den Anweisungen auf dem Link gefolgt und bin osspd gelaufen - aber syslog knallt dies: osspd: Erstellen von dsp (14: 3), adsp (14:12), Mixer (14: 0)> CUSE: Registrierung fehlgeschlagen chrdev region gabriel_agm vor 11 Jahren 0
Oh, kein Fehler beim Kompilieren - wenn ich die Binärdatei und das "Fehler beim Öffnen des Audiogeräts (/ dev / dsp)" ausführte, wird das Datum / die Uhrzeit der Binärkompilierung angezeigt - dies sollte mich warnen, dass die richtige Version nicht ausgeführt wird. gabriel_agm vor 11 Jahren 0
Ah :) Sie erhalten diese Fehlermeldung `konnte die Chrdev-Region nicht registrieren ', wenn Sie [` CONFIG_SOUND_OSS_CORE_PRECLAIM`] (http://cateee.net/lkddb/web-lkddb/SOUND_OSS_CORE_PRECLAIM.html) in Ihrem Kernel aktiviert haben ... also Ich muss den Kernel neu kompilieren, wenn dieses Flag nicht gesetzt ist. :( Wie auch immer, wird der pocketsphynx erfolgreich kompiliert, und was verwenden Sie als `--prefix`? Horn OK Please vor 11 Jahren 0
Bitte kommen Sie auch zum Chat [Root Access] (http://chat.stackexchange.com/rooms/118/root-access), wenn Sie in Echtzeit eine Problembehandlung durchführen möchten :) Horn OK Please vor 11 Jahren 0
Sieht seltsam aus, dass die Anweisungen in der Verknüpfung zu fedoraproxy die Berechtigungen für / dev / dsp festlegen, bevor es existiert. gabriel_agm vor 11 Jahren 0
Ich habe diese Anleitung vor langer Zeit auf die Fedora-Seite geschrieben. Wahrscheinlich ein paar Fehler. Das Fehlen des `/ dev / dsp`-Geräts beruht auf dem` chrdev`-Fehler, den Sie erhalten, was, wie gesagt, auf das Konfigurationsflag des Linux-Kernels zurückzuführen ist. Horn OK Please vor 11 Jahren 0
Oh! So viele Tests und ich habe das von Ihnen erwähnte "Aoss" noch nie ausprobiert - wirkt wie ein Zauber. Vielen Dank für all die Hilfe allquixotic gabriel_agm vor 11 Jahren 0
1
Reed Hedges

Ich habe den einfachsten Weg gefunden, Oss-Emulation für ein bestimmtes Programm unter Ubuntu durchzuführen, indem Sie alsa-ossdie Installation mit einem aossBefehl ausführen. Führen Sie dann aus aoss program, um das Programm magisch zu emulieren.

(Die andere Möglichkeit ist, oss4-Treiber zu installieren, aber dann müssen Sie diese anstelle von alsa verwenden. Ich glaube nicht, dass es eine gute Möglichkeit gibt, oss4 und alsa nebeneinander zu haben?)