Alsa
更改“arecord”的預設錄音採樣率
我正在嘗試在使用
arecord
.目前,執行
arecord test.wav
速率為 8000 Hz:arecord test.wav Recording WAVE 'test.wav' : Unsigned 8 bit, Rate 8000 Hz, Mono
我可以使用速率標誌更改採樣率
--rate 44100
:arecord --format S16_LE --rate 44100 test.wav Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Mono
但是當我改變速率時
asound.conf
,它對錄製沒有影響(速率保持在 8000 Hz)。我錯過了什麼嗎?我的
asound.conf
:# The IPC key of dmix or dsnoop plugin must be unique # If 555555 or 666666 is used by other processes, use another one # use samplerate to resample as speexdsp resample is bad defaults.pcm.rate_converter "samplerate" pcm.!default { type asym playback.pcm "playback" capture.pcm "capture" } pcm.playback { type plug slave.pcm "dmixed" } pcm.capture { type plug slave.pcm "array" } pcm.dmixed { type dmix slave.pcm "hw:wm8960soundcard" ipc_key 555555 } pcm.array { type dsnoop slave { pcm "hw:1,0" format S16_LE rate 44100 channels 1 } ipc_key 666666 }
的輸出
arecord -L
null Discard all samples (playback) or generate zero samples (capture) jack JACK Audio Connection Kit pulse PulseAudio Sound Server default eci eco usbstream:CARD=Headphones bcm2835 Headphones USB Stream Output sysdefault:CARD=wm8960soundcard wm8960-soundcard, bcm2835-i2s-wm8960-hifi wm8960-hifi-0 Default Audio Device dmix:CARD=wm8960soundcard,DEV=0 wm8960-soundcard, bcm2835-i2s-wm8960-hifi wm8960-hifi-0 Direct sample mixing device dsnoop:CARD=wm8960soundcard,DEV=0 wm8960-soundcard, bcm2835-i2s-wm8960-hifi wm8960-hifi-0 Direct sample snooping device hw:CARD=wm8960soundcard,DEV=0 wm8960-soundcard, bcm2835-i2s-wm8960-hifi wm8960-hifi-0 Direct hardware device without any conversions plughw:CARD=wm8960soundcard,DEV=0 wm8960-soundcard, bcm2835-i2s-wm8960-hifi wm8960-hifi-0 Hardware device with all software conversions usbstream:CARD=wm8960soundcard wm8960-soundcard USB Stream Output
添加
使用 PJUSA(PJSIP) 時如何更改預設
arecord
採樣率:PJUSA 在啟動時初始化 ALSA:
11:56:12.951 alsa_dev.c ..ALSA driver found 32 devices 11:56:12.951 alsa_dev.c ..ALSA initialized
alsa_dev.c
位於pjproject/pjmedia/src/pjmedia-audiodev/alsa_dev.c
預設採樣率在第 270 行設置:
/* Set the default sample rate */ adi->default_samples_per_sec = 8000;
只需將值更改為所需的採樣率(麥克風必須能夠達到該採樣率)。
閱讀它所寫的
arecord
(參見)文件,man arecord
-r
,--rate=#<Hz>
以赫茲為單位的採樣率。預設速率為 8000 赫茲。$$ … $$
所以你可以看到速率不是通過控制的
asound.conf
;它是使用這個命令行標誌控制的。