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 麦克风操作

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值