0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RK3399 Ubuntu通过Python实现录音和播放功能

触觉智能 2023-11-25 08:32 次阅读

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

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

产品规格书:IDO-SBC3968 产品手册

2943521e-8b2a-11ee-9788-92fbcf53809c.jpg

2963a41a-8b2a-11ee-9788-92fbcf53809c.jpg

安装依赖库

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

#apt-getupdate
#apt-getinstall python3
#apt-getinstall portaudio19-dev python-all-dev python3-all-dev
#apt-getinstall libasound-dev libportaudio2 libportaudiocpp0
#apt-getinstall python3-pip
#pip3 install pyaudio

录音脚本

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

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

#aplay-l
**** ListofPLAYBACKHardwareDevices****
card0: rockchipes8316c[rockchip,es8316-codec], device0: ff880000.i2s-ES8316HiFiES8316HiFi-0[]
Subdevices: 1/1
Subdevice#0: subdevice#0
card1: Audio[USB Audio], device0: USBAudio[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
fori 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")
# stopRecording
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

importpyaudio
importwave


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

defplay(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)
whiledata != b'':
stream.write(data)
data = wf.readframes(CHUNK)

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

play()

播放

#python3 ./play.py

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    18288

    浏览量

    222176
  • python
    +关注

    关注

    51

    文章

    4677

    浏览量

    83473
  • RK3399
    +关注

    关注

    2

    文章

    207

    浏览量

    24381
收藏 人收藏

    评论

    相关推荐

    【OpenHarmony鸿蒙实战】在RK3399开发板实现智能门禁人脸识别

    基于RK3399开发板,使用OpenHarmony3.0-LTS开发的应用。通过定时获取摄像头数据,实现人脸识别比对等功能
    的头像 发表于 03-20 17:38 407次阅读
    【OpenHarmony鸿蒙实战】在<b class='flag-5'>RK3399</b>开发板<b class='flag-5'>实现</b>智能门禁人脸识别

    rk3399移植Linux内核

    RK3399是一款由中国厂商瑞芯微推出的高性能处理器芯片,被广泛用于嵌入式系统开发。在进行应用程序开发之前,我们需要将Linux内核移植到RK3399上,以支持硬件的驱动和功能。本文将详细介绍如何将
    的头像 发表于 01-08 09:56 346次阅读

    RK3399硬件设计指南

    RK3399是一款基于ARM架构的高性能处理器,常用于嵌入式系统和单板计算机。在进行RK3399硬件设计时,需要考虑多个方面,包括电源、封装、信号传输、外设接口等。本文将详细介绍RK3399硬件
    的头像 发表于 12-28 10:59 459次阅读

    armbian、 hdmi、 zynq、 mpsoc、 rk3399的一一解释

    armbian、 hdmi、 zynq、 mpsoc、 rk3399
    的头像 发表于 10-13 18:11 1061次阅读

    RK3399 JTAG配置指南

    电子发烧友网站提供《RK3399 JTAG配置指南.pdf》资料免费下载
    发表于 09-15 16:11 2次下载
    <b class='flag-5'>RK3399</b> JTAG配置指南

    rk3399性能评测

    rk3399性能评测  RK3399 是一种由瑞芯微(Ruijie Micro)生产的超高性能、低功耗、多核 SoC(System on a chip)处理器,它采用了 ARM 公司的大臂架构
    的头像 发表于 08-21 17:32 5974次阅读

    rk3399和晶晨s922x哪个强

    rk3399和晶晨s922x哪个强 随着智能电视、智慧家庭等智能化设备的普及,越来越多的用户开始关注芯片的性能,而RK3399和晶晨S922X都是近几年比较流行的高性能芯片,那么RK3399
    的头像 发表于 08-21 17:28 1487次阅读

    rk3399和骁龙855参数对比

    rk3399和骁龙855参数对比 在当今移动设备市场上,rk3399和骁龙855是两个非常出色的芯片,它们都赢得了消费者的信任和喜爱。但是,这两款芯片的具体参数又有什么区别呢?下面就让我们来详细对比
    的头像 发表于 08-17 10:52 960次阅读

    rk3399和骁龙650对比

    rk3399和骁龙650对比 随着智能手机和智能设备的快速发展,处理器的设计和性能变得越来越重要。这两款处理器,RK3399和骁龙650,都是市场上备受关注的处理器。它们分别由两家技术公司研发
    的头像 发表于 08-16 17:34 419次阅读

    rk3399和骁龙855参数对比

    rk3399和骁龙855参数对比 在当今移动设备市场上,rk3399和骁龙855是两个非常出色的芯片,它们都赢得了消费者的信任和喜爱。但是,这两款芯片的具体参数又有什么区别呢?下面就让我们来详细对比
    的头像 发表于 08-16 17:34 831次阅读

    rk3566和rk3399的区别

    rk3566和rk3399的区别 Rockchip是中国芯片设计企业,其旗下产品包括rk3566和rk3399芯片,这两种芯片都具有高性能和低成本的优点,但在一些细节上还是存在一定的差
    的头像 发表于 08-15 17:44 8449次阅读

    RK3588与RK3399的区别

    RK3588与RK3399的区别 RK3588和RK3399是两款常用的ARM架构芯片,它们有着各自的特点和应用场景。本文将详细介绍这两款芯片的不同之处。 一、技术细节
    的头像 发表于 08-15 17:04 4075次阅读

    rk3588和rk3399的区别

    都有着先进的设计和出色的性能,但在一些关键方面却存在一定的差异。接下来,我们将通过深入分析从各个方面比较这两种芯片的差异。 1. 制造工艺 首先,我们来看一下这两种芯片的制造工艺。RK3588使用6纳米制造工艺而RK3399则使
    的头像 发表于 08-15 16:44 1928次阅读

    亮钻发布基于瑞芯微RK3399平台核心板Y-3399

    Y系列核心板继推出RK3566及全志A133后又添加新成员,亮钻发布基于瑞芯微RK3399处理器的核心板Y-3399,核心板采用邮票孔接口
    的头像 发表于 08-02 11:48 926次阅读
    亮钻发布基于瑞芯微<b class='flag-5'>RK3399</b>平台核心板Y-<b class='flag-5'>3399</b>

    一图看懂!RK3568与RK3399怎么选?

    RK3568和RK3399都是Rockchip公司的处理器,具有不同的特点和适用场景。以下是它们的主要区别和应用场景。
    的头像 发表于 05-23 11:35 1716次阅读
    一图看懂!<b class='flag-5'>RK</b>3568与<b class='flag-5'>RK3399</b>怎么选?