我试图更改默认采样率录音和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
添加
arecord
使用PJUSA(PJSIP)时如何更改默认采样率:
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;
只需将值更改为所需的采样率(麦克风必须能够支持该采样率)。
答案1
阅读它所写的文档arecord
(请参阅参考资料man arecord
),
-r
,--rate=#<Hz>
采样率(以赫兹为单位)。默认速率为 8000 赫兹。 [...]
所以你可以看到速率不是通过控制的asound.conf
;它是使用此命令行标志来控制的。