Audio

setlistener:jack 和 alsa 的錯誤

  • January 30, 2021

聲音新手在這裡。我正在嘗試配置偵聽器,但收到很多錯誤。我的目標是使用該工具從網路攝像頭中的外部 USB 麥克風錄製聲音。所以,我有X執行 Raspbian 10 的無頭(沒有執行)Raspberry Pi 模型 B+,沒有實時優先級,因為我無法在這個作業系統上設置它,老實說,我不確定我是否需要它:如果記錄將在時間上有所偏移。

我已經 建立libsndfileportaudio``apt install -y jackd2 pulseaudio-module-jack jack-tools libasound2-dev libbjack-ocaml libbjack-ocaml-dev libjack-jackd2-0 libjack-jackd2-dev

我確實看到了該設備,並且能夠通過以下方式錄製聲音

arecord -D hw:C525,0 -d 5 -f dat test.wav -c 1

通過插入和拔出設備,我發現它被映射為/dev/media2,/dev/video0/dev/video1(當網路攝像頭被拔出時這些消失)所以我嘗試執行setlistener /dev/media2但它失敗並出現錯誤(與上面的連結相同)。

我試過(老實說不完全理解它的作用):

[as user] pulseaudio --start
[below as root]
export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/dbus/system_bus_socket 
# the file above does exist
export DISPLAY=":0"

jackd -r -d alsa
jackdmp 1.9.12
...
xcb_connection_has_error() returned true
JACK server starting in non-realtime mode
self-connect-mode is "Don't restrict self connect requests"
audio_reservation_init
dbus_bus_request_name() failed. (1)
Failed to acquire device name : Audio0 error : Connection ":1.23" is not allowed to own the service "org.freedesktop.ReserveDevice1.Audio0" due to security policies in the configuration file
Audio device hw:0 cannot be acquired...
Cannot initialize driver
JackServer::Open failed with -1
Failed to open server

is not allowed令人困惑,因為我以 root 身份執行它。也試過 了jackd -r -d C525jackd -r -d hw:C525jackd -r -d hw:C525,0這三個都回來了

xcb_connection_has_error() returned true
Unknown driver "[the name]"

我究竟做錯了什麼?或者,我正在尋找僅在聲音大於某個 dB 級別時才錄製音頻的工具。

部分答案:

我從未使用過listener,您的連結似乎不包含手冊頁。但它說有一個 ALSA 版本的listener.

因此,既然您無論如何都在無頭執行:刪除 PulseAudio,刪除 JACK,刪除 DBUS(除非您需要其他東西)。下載 ALSA 版本listener,將其直接指向您的hw:C525,0設備(或者plughw,如果您需要格式轉換,也可以使用它)。

這應該消除 PulseAudio 和 JACK 同時執行的所有麻煩(首先是個壞主意),它們中的任何一個都佔用了實際的硬體,其中一個試圖通過有趣的依賴項訪問 X。

引用自:https://unix.stackexchange.com/questions/631747