arecord[linux下的录音工具]命令的用法

下面这条命令是Linux系统下使用arecord工具录制音频的指令,用于指定音频设备录制一段WAV格式的音频,并将过程中的输出/错误信息全部丢弃

复制代码
/usr/bin/arecord -D hw:0,0 -d 10 -f cd -r 16000 -c 2 -t wav /tmp/mic_test/test.wav 1>/dev/null 2>&1

核心命令:

/usr/bin/arecord:调用录音程序,属于ALSA音频套件,这个是arecord工具的绝对路径,直接调用绝对路径可避免环境变量冲突,确保执行的是系统自带的arecord

| 参数 | 全称/含义 | 说明 |
| -D hw:0,0 | -D = --device(指定录音设备) | hw:0,0 是ALSA音频设备的标识: - hw:表示硬件设备(区别于虚拟设备); - 0,0:第一个0是声卡编号(系统第一块声卡),第二个0是该声卡下的设备编号(第一路录音设备) 作用:指定从系统第一块声卡的第一路硬件设备采集音频 |
| -d 10 | -d = --duration(录制时长) | 10表示录制时长为10秒,到达时长后自动停止录制; 若省略该参数,会一直录制直到手动按ctrl + c终止 |
| -f cd | -f = --format(音频格式) | cd是预设的CD级音频格式,等价于16位深度、44100Hz采样率、立体声; 注意:此处和后面的-r 16000冲突(-r 会覆盖采样率),最终采样率以-r 16000为准。可改用显式格式参数:-f S16_LE(16位小端格式) |
| -r 16000 | -r = --rate(采样率) | 16000表示采样率为16000Hz(16kHz),即每秒采集16000个音频样本; 常见取值:8000Hz(电话音质)、16000Hz(语音识别常用)、44100Hz(CD音质)、48000Hz(专业音频) |
| -c 2 | -c = --channels(声道数) | 2表示录制立体声(双声道) 若设为1则是单声道(mono),适合语音录制,节省存储空间。 |
| -t wav | -t = --file-type(输出文件格式) | wav指定输出文件为WAV格式(无损音频格式); arecord支持的其他格式:raw、voc、au等,WAV是最通用的格式。 |
| /tmp/mic_test/test.wav | 输出文件格式 | 录制的音频将保存到/tmp/mic_test/目录下,文件名为test.wav; 注意:若/tmp/mic_test/目录不存在,命令会执行失败(需提前用mkdir -p /tmp/mic_test创建) |
| 1>/dev/null | 标准输出重定向 | 1代表"标准输出(stdout)",>/dev/null表示将录制过程中的正常输出信息(如进度、采样信息)全部丢弃 /dev/null是Linux的"空设备",写入的数据会被直接丢弃。 |

2>&1 标准错误重定向 2代表"标准错误(stderr)",>&1表示将标准错误信息重定向到"标准输出" 的目标(即/dev/null) 最终效果:录制过程中无论正常输出还是报错信息,都不会显示在终端,也不会留存。

命令的整体逻辑

  1. 调用系统arecord工具,从第一块声卡的第一路硬件设备采集音频

  2. 以16kHz采样率、16位深度、立体声格式,录制10秒音频

  3. 将音频保存为/tmp/mic_test/test.wav(WAV格式)

  4. 全程不输出任何信息到终端(成功/失败都无提示)

相关推荐
镜子AI5 小时前
镜子AI 技术复盘:三条自动化链路上的“停止条件“设计
运维·人工智能·自动化
tianyuanwo5 小时前
NetBox 数据库详解:当“关系型数据库”被装进一个网络运维的领域模型里
运维·数据库·netbox
HideF6 小时前
Linux sudo
linux
FlightYe6 小时前
视界原理之3D视频(四):裸眼、眼镜和头显
android·linux·c++·3d·ffmpeg·音视频
蹊黎7 小时前
Linux 下用 C 语言实现进度条
linux·c语言·单片机
知已难寻7 小时前
03 · OpenStack的计算管理 Nova
运维·服务器·开发语言·云原生·云计算·openstack·开源软件
huainingning8 小时前
Windows syslog日志服务器搭建与模拟器对接
运维·服务器·智能路由器
牛马鸡niumasi8 小时前
【Linux】C语言文件操作
linux
say_fall8 小时前
【Linux系统编程】Ext 文件系统:磁盘与存储、文件与目录、现代计算机究竟如何寻找文件
linux·运维·服务器·数据库·c++
wacsii9 小时前
【Linux进程(一)】Linux 进程初探:操作系统如何管理进程?fork() 为什么返回两次?
linux·运维·服务器