更改“arecord”的默认录音采样率

更改“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

添加

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;它是使用此命令行标志来控制的。

相关内容