我在终端中使用 arecord 命令得到了一些混合结果。我使用的硬件包括用于 Raspberry Pi 的 Cirrus 音频卡。我正在尝试将 24 位 192kHz 声音(来自板载 MIC)录制到 WAV 文件中,然后播放(通过耳机)。首先,我确保启用 MIC 和耳机:
$ ./Record_from_DMIC.sh
$ ./Playback_to_Headset.sh
然后我尝试了多个命令,得到了不同的结果。
$ arecord -f S24_LE -r 192 -d 20 test.wav
Recording WAVE 'test.wav' : Signed 24 bit Little Endian, Rate 192000 Hz, Mono
$ arecord: set_params:1087: Channels count non available
# So I set the number of channels to 1 (even though it is that, by default)
$ arecord -c 1 -f S24_LE -r 192 -d 20 test.wav
Recording WAVE 'test.wav' : Signed 24 bit Little Endian, Rate 192000 Hz, Mono
arecord: set_params:1087: Channels count non available
仍然得到同样的错误。我去掉了速率(192kHz),并让它默认:
$ arecord -d 10 -c 1 -f S24_LE -t wav test.wav
Recording WAVE 'test.wav' : Signed 24 bit Little Endian, Rate 8000 Hz, Mono
$ arecord: set_params:1087: Channels count non available
仍然遇到同样的错误。所以我只是使用了我在网上找到的命令的示例运行(http://linux.die.net/man/1/arecord):
$ arecord -d 10 -f cd -t wav test.wav
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
这奏效了。但显然使用了与我想要的不同的值。我在 192kHz 下演奏时也遇到了问题:
$ aplay -c 1 -r 192000 test.wav
Playing WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
我尝试以 192kHz 播放,但它降到了 44.1kHz。有谁知道为什么我会收到所有这些奇怪的错误和结果?
答案1
我发现问题出在哪里了。该命令采用默认值,因为我没有指定 2 通道(立体声)192kHz 音频输入。这是一个有效的命令示例:
$ arecord -f S24_LE -c 2 -r 192000 -d 20 test.wav
这-c 2
就是固定我的命令的原因。