Linux音频录制和播放
Linux音频录制和播放
目标:我想在Ubuntu系统上实现音频录制、播放或者甚至在线实时检测我的说话声音
安装依赖
$ sudo apt-get install alsa-utils alsa-tools alsa-tools-gui alsamixergui -y
查看音频设备
$ cat /proc/asound/cards
查看音频输入设备
$ arecord -l
查看音频输出设备
$ aplay -l
录音
$ arecord -D "plughw:0,0" -f S16_LE -r 16000 -d 5 -t wav test.wav
指令 | 含义 | 本指令含义 |
---|---|---|
-D | 选择设备名称 | 使用系统自带声卡plughw:0,0 |
-f | 录音格式 | S16_LE代表有符号16位小端序 |
-r | 采样率 | 16000是16KHz采样 |
-d | 录音时长 | 录音X秒 |
-t | 录音格式 | wav格式 |
文件名,可以包含路径 | 文件名字叫test.wav |
播放
$ aplay test.wav
利用pyaudio模块来录音和播放
import pyaudio
audio = pyaudio.PyAudio()
print(audio.get_default_output_device_info())
但是会出现一个bug:IOError: [Errno -9996] Invalid input device (no default output device)或者OSError: No Default Output Device Available
原因:是因为使用anaconda安装pyaudio和portaudio时,通常会出现此问题。
解决方案1:
$ conda install nwani::portaudio nwani::pyaudio
解决方案2:
$ conda remove pyaudio
$ conda remove portaudio
$ pip install pyaudio