【技术分享】RK3399 Ubuntu通过Python实现录音和播放功能

​本文基于IDO-SBC3968 Ubuntu 系统通过Python脚本实现录音和播放功能。

IDO-SBC3968采用RK3399国产六核64位CPU高性能处理器,支持4K HDMI2.0显示,接口丰富,拥有千兆以太网,全协议TypeC接口,USB3.0 ,eDP 和 双通道LVDS 屏幕接口,支持4G/5G模块和WIFI蓝牙,支持6轴G-Sensor,支持Linux/Android系统,适用于高端商显,银行自助终端,工业计算机,机器人等诸多行业。

产品规格书可查看深圳触觉智能官网产品中心

安装依赖库

配置前需要安装好相应的依赖库。

#apt-get update
#apt-get install python3
#apt-get install portaudio19-dev python-all-dev python3-all-dev
#apt-get install libasound-dev libportaudio2 libportaudiocpp0
#apt-get install python3-pip
#pip3 install pyaudio

录音脚本

在编辑脚本前需要知道使用的是哪个声卡。

可以通过“aplay -l ”获取。

#aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: rockchipes8316c [rockchip,es8316-codec], device 0: ff880000.i2s-ES8316 HiFi ES8316 HiFi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Audio [USB Audio], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

由上面的打印可知USB声卡是Card1。

编辑python 录音脚本。

#vi record.py
import pyaudio
import wave
import os

CHUNK = 44100                                #采样频率
FORMAT = pyaudio.paInt16
CHANNELS = 1                                 #声卡通道
RATE = 44100                                
RECORD_SECONDS = 5                          #时长
WAVE_OUTPUT_FILENAME = "output.wav"         #导出的音频文件

audio = pyaudio.PyAudio()

# start Recording
stream = audio.open(format=FORMAT, channels=CHANNELS,
        rate=RATE, input=True,
        input_device_index = 1,
        frames_per_buffer=CHUNK)
print("recording...")
frames = []

count=0
for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
#for i in range(0, 5):
#while count < 5:
    data = stream.read(CHUNK)
    frames.append(data)
# count += 1

print("finished recording")
# stop Recording
stream.stop_stream()
stream.close()
audio.terminate()
waveFile = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
waveFile.setnchannels(CHANNELS)
waveFile.setsampwidth(audio.get_sample_size(FORMAT))
waveFile.setframerate(RATE)
waveFile.writeframes(b''.join(frames))
waveFile.close()

录音

#python3 ./record.py

录音结束后我们就可以得到 output.wav 录音文件了。

播放脚本

编辑python 播放脚本。

#vi play.py
import pyaudio
import wave


CHUNK = 44100
FILENAME = './output.wav'

def play(filename = FILENAME):
    wf = wave.open(filename, 'rb')
    p = pyaudio.PyAudio()
    stream = p.open(format=p.get_format_from_width(wf.getsampwidth()),
        channels=wf.getnchannels(),
        rate=wf.getframerate(),
        output_device_index=0,
        output=True)
    data = wf.readframes(CHUNK)
    while data != b'':
        stream.write(data)
        data = wf.readframes(CHUNK)

    stream.stop_stream()
    stream.close()
    p.terminate()

play()

播放

#python3 ./play.py

通过以上指令,就可以播放刚录的音频文件了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
RK3399是一款高性能的嵌入式处理器,而YOLOv5是一种目标检测算法,它可以在图像或视频中实时地检测出多个目标物体。Python是一种流行的编程语言,可以用于开发各种应用程序。 如果你想在RK3399上运行YOLOv5算法,你可以使用Python编写代码,并使用RK3399的硬件加速功能来提高算法的运行速度。以下是一些步骤来实现这个目标: 1. 首先,你需要在RK3399上安装Python环境。你可以通过在终端中运行以下命令来安装Python: ``` sudo apt-get install python3 ``` 2. 接下来,你需要安装YOLOv5库。你可以使用pip命令来安装: ``` pip install yolov5 ``` 3. 然后,你需要下载YOLOv5的预训练模型。你可以从YOLOv5的官方GitHub仓库中下载模型文件。 4. 一旦你有了模型文件,你可以使用Python代码来加载模型并进行目标检测。以下是一个简单的示例代码: ```python import torch from PIL import Image # 加载模型 model = torch.hub.load('ultralytics/yolov5', 'yolov5s') # 加载图像 image = Image.open('image.jpg') # 进行目标检测 results = model(image) # 打印检测结果 print(results.pandas().xyxy[0]) # 显示检测结果 results.show() ``` 在这个示例中,我们使用了`torch.hub.load`函数来加载YOLOv5模型,然后使用`Image.open`函数加载图像。最后,我们使用模型对图像进行目标检测,并打印和显示检测结果。 以上是关于在RK3399上使用Python运行YOLOv5算法的简要介绍。如果你有更具体的问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Industio_触觉智能

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值