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. 全程不输出任何信息到终端(成功/失败都无提示)

相关推荐
乾元23 分钟前
如何把 CCIE / HCIE 的实验案例改造成 AI 驱动的工程项目——从“实验室能力”到“可交付系统”的完整迁移路径
大数据·运维·网络·人工智能·深度学习·安全·机器学习
不染尘.24 分钟前
Linux基本概述
linux·windows·centos·ssh
亿道电子Emdoor25 分钟前
【Altium】原理图中网络标签作用范围的设置
单片机·嵌入式硬件
lpfasd12325 分钟前
宝塔面板(BT Panel)集成雷池 SafeLine WAF(社区版)
运维
weixin_4462608527 分钟前
XPipe: 轻松访问你的服务器基础设施 [特殊字符]
运维·服务器
TTGGGFF28 分钟前
GLM-4V-9B 视觉多模态模型本地部署教程【保姆级教程】
linux·运维·服务器·图文对话
r***013828 分钟前
Nginx代理到https地址忽略证书验证配置
运维·nginx·https
消失的旧时光-194330 分钟前
函数指针 + 结构体 = C 语言的“对象模型”?——从 C 到 C++ / Java 的本质统一
linux·c语言·开发语言·c++·c
xiaobaishuoAI31 分钟前
后端工程化实战指南:从规范到自动化,打造高效协作体系
java·大数据·运维·人工智能·maven·devops·geo
风行男孩32 分钟前
stm32基础学习——串口(USART)的基本使用
stm32·嵌入式硬件·学习