测试环境 ubuntu12 与其他linux 系统大同小异
高级Linux声音体系(英语:Advanced Linux Sound Architecture,缩写为ALSA)是Linux内核中,为声卡提供的驱动组件,以替代原先的OSS(开放声音系统)。 一部分的目的是支持声卡的自动配置,以及完美的处理系统中的多个声音设备,这些目的大多都已达到。另一个声音框架JACK使用ALSA提供低延迟的专业级音频编辑和混音能力。
ALSA是一个完全开放源代码的音频驱动程序集,除了像OSS那样提供了一组内核驱动程序模块之外,ALSA还专门为简化应用程序的编写提供了相应的函数库,与OSS提供的基于ioctl的原始编程接口相比,ALSA函数库使用起来要更加方便一些。利用该函数库,开发人员可以方便快捷的开发出自己的应用程序,细节则留给函数库内部处理。当然ALSA也提供了类似于OSS的系统接口,不过ALSA的开发者建议应用程序开发者使用音频函数库而不是驱动程序的API。
Linux 下查看声卡型号命令
lspci -v | grep Audi
返回:2:02.0 Multimedia audio controller: Ensoniq ES1371 [AudioPCI-97] (rev 02)
Subsystem: Ensoniq Creative Sound Blaster AudioPCI64V, AudioPCI128
linux下查看音频设备
cat /proc/asound/cards
返回:0 [AudioPCI ]: ENS1371 - Ensoniq AudioPCI
Ensoniq AudioPCI ENS1371 at 0x2040, irq 16
安装适用ALSA的音频工具,查看测试Linux 音频设备
安装软件包:
apt-get install alsa-utils alsa-tools alsa-tools-gui alsamixergui -y
列出音频设备:
arecord -l
返回:
**** CAPTURE 硬體裝置清單 ****
card 0: AudioPCI [Ensoniq AudioPCI], device 0: ES1371/1 [ES1371 DAC2/ADC]
子设备: 1/1
子设备 #0: subdevice #0
录音测试:
录制一个几秒的声音
arecord -D "plughw:0,0" -f S16_LE -r 16000 -d 5 -t wav file.wav
指令 含义 本指令含义 -D 选择设备名称 使用系统自带声卡plughw:0,0 -f 录音格式 S16_LE代表有符号16位小端序 -r 采样率 16000是16KHz采样 -d 录音时长 录音5秒 -t 录音格式 wav格式 file.wav 文件名,可以包含路径 文件名字叫 file.wav
播放测试:
aplay file.wav