OSS 종속 응용 프로그램을 실행하는 방법? “/ dev / dsp”


2

우분투 12.04 LTS를 사용하고 있습니다-소리가 잘 작동합니다.

음성 인식이있는 일부 테스트에서는 pocketsphinx를 실행하려고했지만 작동하는 OSS에 따라 다릅니다. 다음 메시지와 충돌합니다 :

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

Googli의 첫 번째 수정 시도는 "oss-compat"패키지를 설치하는 것이었지만 성공이 없었기 때문에 빈 가짜 패키지라는 오해의 소지가 있음을 알게되었습니다.

그런 다음 시도했습니다.

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

마지막으로, (dead?) sphynx wiki FAQ 는 다음과 같이 말합니다.

패키지 libasound2 또는 alsa-devel에서 alsa 개발 헤더를 설치하여 ALSA를 지원하는 pocketsphinx 컴파일

Alsa-devel은 내 배포판에 존재하지 않지만 libasound2-dev 및 gstreamer0.10-pocketsphinx를 설치 한 다음 다시 컴파일 된 pocketsphynx를 변경하지 않았습니다.

이제 아이디어가없고 sphynx 포럼이 다운 된 것 같습니다. 누군가?

답변:


1

몇 가지 추측처럼 :

  • 로 ALSA 헤더를 설치 한 후, 당신은 pocketsphynx을 컴파일하기 때문에 아무것도 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 장치의 사용자 공간에서 캐릭터 장치 (CUSE) 커널 모듈, 및 펄스 오디오 커널을 통해 오디오를 전달. 비 블록 I / O 및 MMAP 같은 어떤 일이 같은 해킹 libc의 예압 에뮬레이트 할 수없는 osspd로 에뮬레이트 할 수 있기 때문에이 프로그램에 더 호환 padsp또는 aoss.


실제로 --prefix /를 지정하지 않았으며 오류 메시지에서 pocketsphynx 컴파일 시간을 완전히 무시했습니다.
gabriel_agm

pocketsphynx에서 컴파일 타임 오류가 발생합니까? 오류는 무엇입니까?
allquixotic

ALSA를 활성화하기 위해 이러한 종류의 o 플래그를 검색했습니다. 올바른 접두사를 사용하여 configure를 실행하고, 정리하고, make하고, sudo make install을 실행하십시오. 효과는 없습니다. 동일한 오류가 발생했습니다. 그래서 나는 osspd를 시도하고 있습니다. 컴파일하고 링크의 지침에 따라 osspd를 실행했지만 syslog는 다음과 같이 나타납니다. chrdev region
gabriel_agm

오, 컴파일 오류가 없습니다-바이너리를 실행할 때 "오디오 장치 (/ dev / dsp)를 열지 못했습니다"와 함께 바이너리 컴파일 날짜 / 시간이 나타납니다. 그러면 올바른 버전이 실행되지 않는다는 경고 메시지가 표시됩니다.
gabriel_agm

Ah :) 커널에서 활성화 failed to register chrdev region하면 오류가 발생 합니다 CONFIG_SOUND_OSS_CORE_PRECLAIM. 따라서이 플래그를 설정하지 않은 상태에서 커널을 다시 컴파일해야합니다. :( 어쨌든, pocketsphynx이 성공적으로 완료 컴파일 않습니다, 당신은으로 사용하고있는 --prefix?
allquixotic

1

우분투에서 하나의 특정 프로그램에 대해 oss 에뮬레이션을 수행하는 가장 쉬운 방법 alsa-ossaoss명령 을 제공하는 설치 하는 것 입니다. 그런 다음 aoss program마술처럼 프로그램 운영 체제 에뮬레이션을 제공하십시오.

(다른 방법은 oss4 드라이버를 설치하는 것이지만 alsa 대신 해당 드라이버를 사용해야합니다. oss4와 alsa가 공존 할 수있는 좋은 방법이 없다고 생각합니까?)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.