orangepi-lite2 控制麦克风录音
orangepi-lite2 的MIC设置,只有在linux4.9内核下才可以正常工作,因此,请务必使用linux4.9内核的系统,5.4内核的版本下,MIC无法识别到
命令行控制录音
首先通过ssh 或者 screen连接上您的orangepi-lite2,不知道怎么做的朋友,请先看这篇文章
https://blog.csdn.net/goodboy31985/article/details/112305628
然后,使用以下命令,可以列出您lite2上所有的音频设备
arecord -l
输出以上内容,可以看到2个音频设备,card 0 就是HDMI接口,card 1 就是麦克风了
使用以下命令,录制一小段音频
arecord -D hw:1,0 -d 5 -f cd -t wav test.wav
使用1,0 设备,录制5秒钟,格式为wav的音频,保存为当前目录下 test.wav
文件
在当前目录下生成了一个音频文件 test.wav
你可以只将文件下载到pc上播放,或者是通过HDMI播放
python代码控制录音
如果只用命令行来录音,灵活性很差,下面介绍一种使用python代码来控制麦克风进行录音的方式
安装python和必要的软件包
一般情况下ubuntu系统中已经预装了python3,如果没有安装,请先安装python3
这里还需要用到一个python的包,叫 pyaudio,它提供了许多api可以控制音频设备,直接通过pip3进行安装一般很少能安装成功,可以尝试用以下方式安装
apt install python3-pyaudio
安装成功后
编写以下python代码
import pyaudio
import wave
CHUNK = 512
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
RECORD_SECONDS = 10
WAVE_OUTPUT_FILENAME = "output.wav"
p = pyaudio.PyAudio()
stream = p.open(format=FORMAT,
channels=CHANNELS,
rate=RATE,
input=True,
input_device_index=1, #一定要指定好输入设备,
frames_per_buffer=CHUNK)
print("recording...")
frames = []
for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
data = stream.read(CHUNK)
frames.append(data)
print("done")
stream.stop_stream()
stream.close()
p.terminate()
wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
wf.setnchannels(CHANNELS)
wf.setsampwidth(p.get_sample_size(FORMAT))
wf.setframerate(RATE)
wf.writeframes(b''.join(frames))
wf.close()
运行以上代码,会开始录制10秒钟的音频,并在运行目录下生产一个 output.wav 的音频文件
以上就是最基本的orangepi-lite2 麦克风操作