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

    文章

    19281

    浏览量

    229789
  • python
    +关注

    关注

    56

    文章

    4796

    浏览量

    84668
  • RK3399
    +关注

    关注

    2

    文章

    211

    浏览量

    24862
收藏 人收藏

    评论

    相关推荐

    高清电视盒子方案分享,红外遥控适配过程全解析

    应用背景 随着红外线设备的应用日益广泛,例如遥控器和红外传感器等。而RK3399作为一款高性能处理器,广泛应用于电视盒子等智能终端。通过将红外遥控功能RK3399 电视盒子结合,用
    的头像 发表于 12-17 10:46 212次阅读
    高清电视盒子方案分享,红外遥控适配过程全解析

    RK3576单板发布倒计时:RK3399RK3576对比

    好多人说RK3576是RK3399的升级版,某种程度上也可以这么说,RK3576在强大的多媒体功能的基础上,性能和接口都进行了升级 一、工艺 性能
    的头像 发表于 12-03 16:59 245次阅读
    <b class='flag-5'>RK</b>3576单板发布倒计时:<b class='flag-5'>RK3399</b>与<b class='flag-5'>RK</b>3576对比

    Air201资产定位模组LuatOS:录音播放录音功能的操作方法

    一直有小伙伴们问,迷你小巧的合宙Air201虽然有很多优点,超低功耗、精准定位,那么它是否支持录音播放录音功能
    的头像 发表于 10-16 16:22 165次阅读
    Air201资产定位模组LuatOS:<b class='flag-5'>录音</b>和<b class='flag-5'>播放</b><b class='flag-5'>录音</b><b class='flag-5'>功能</b>的操作方法

    瑞芯微RK3399开发板Android7.1修改网络优先级方法,触觉智能SBC3968开发板演示

    本文介绍Android7.1修改网络优先级方法,基于触觉智能SBC3968主板,搭载瑞芯微RK3399芯片,底板具备千兆网口、USB、HDMI、TYPE-C、音频等接口。可适用于工业主机、物联网设备、医疗健康设备、广告机、互动自助终端、教学实验平台、显示控制、车载安防和人脸识别等多个领域。
    的头像 发表于 10-09 11:37 260次阅读
    瑞芯微<b class='flag-5'>RK3399</b>开发板Android7.1修改网络优先级方法,触觉智能SBC3968开发板演示

    你要的录音&amp;播放录音功能,直接用!Air201资产定位模组LuatOS快速入门

    ​ 超低功耗、精准定位、快速量产——迷你小巧的合宙Air201,正给越来越多的行业客户带来高效开发体验。 此前有小伙伴问:是否支持录音播放录音功能? 高集成化设计的Air201自带了
    的头像 发表于 09-27 07:06 271次阅读
    你要的<b class='flag-5'>录音</b>&amp;<b class='flag-5'>播放</b><b class='flag-5'>录音</b><b class='flag-5'>功能</b>,直接用!Air201资产定位模组LuatOS快速入门

    NVF04M录音芯片在宠物喂食器的应用:录音播放功能,内置SPI闪存

    喂食器中的作用主要是提供语音提示和录音播放功能,以增强用户体验和宠物的幸福感。‌NVF04M录音芯片是一款内置SPI闪存的芯片,无需外挂存储器,能够减少外围电路和
    的头像 发表于 08-30 12:05 354次阅读
    NVF04M<b class='flag-5'>录音</b>芯片在宠物喂食器的应用:<b class='flag-5'>录音</b><b class='flag-5'>播放</b><b class='flag-5'>功能</b>,内置SPI闪存

    Firefly-RK3399产品规格书

    Firefly-RK3399产品规格书
    发表于 07-16 10:50 3次下载

    ARM架构:鸿道Intewell操作系统芯生态之·瑞芯微RK3399

    通过瑞芯微RK3399芯片与鸿道Intewell操作系统的结合,可以构建出高性能、灵活多样的嵌入式系统解决方案,满足各类复杂应用的需求。
    的头像 发表于 06-03 17:58 688次阅读

    慧视Viztra-ME025图像处理板 中端性能的RK3399Pro板卡

    的Viztra-ME025图像处理板就十分合适。Viztra-ME025图像处理板采用国内智能AI芯片RK3399pro,植入公司自主研发的智能图像算法,基于输入的可见光
    的头像 发表于 06-01 08:29 441次阅读
    慧视Viztra-ME025图像处理板  中端性能的<b class='flag-5'>RK3399</b>Pro板卡

    HarmonyOS实战开发-如何实现音频低时延录制和播放,AudioVivid音乐播放的相关功能

    介绍 本示例主要展示了音频低时延录制和播放,AudioVivid音乐播放的相关功能: 低时延录制。 低时延播放。 AudioVivid播放.
    发表于 05-11 20:26

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

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

    rk3288移植ubuntu

    rk3288是一款由瑞芯微推出的高性能ARM处理器,被广泛应用于嵌入式设备和单板计算机中。本文将介绍如何将Ubuntu操作系统移植到rk3288平台上。 移植Ubuntu操作系统到
    的头像 发表于 01-09 10:59 1931次阅读

    rk3399移植Linux内核

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

    RK3399开发版正常刷机成功后 通电开机黑屏 HDMI无图像输出

    我有个RK3399的开发版正常刷入安卓系统后通电开机黑屏 屏幕没图像不知道系统是否正常启动插网线指示灯亮开机电视HDMI也能识别但就是黑屏请问各大佬是怎么回事啊?麻烦指点下谢谢
    发表于 01-04 08:01

    RK3399硬件设计指南

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