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

    文章

    20148

    浏览量

    246946
  • python
    +关注

    关注

    57

    文章

    4856

    浏览量

    89549
  • RK3399
    +关注

    关注

    2

    文章

    215

    浏览量

    26527
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    速通音频处理:掌握TTS播放、文件播放录音核心,实现完整功能

    这三大模块的核心逻辑,助你高效打通从核心功能到完整功能实现路径。 一、概述   本文档详细介绍了基于 Air8000 开发板或者 Air8000 核心板的音频功能开发,涵盖音频
    的头像 发表于 11-21 19:27 79次阅读
    速通音频处理:掌握TTS<b class='flag-5'>播放</b>、文件<b class='flag-5'>播放</b>与<b class='flag-5'>录音</b>核心,<b class='flag-5'>实现</b>完整<b class='flag-5'>功能</b>

    新手速成:掌握TTS/文件播放/录音核心,构建完整音频处理功能

    刚接触音频开发时,TTS播放、文件播放录音功能看似复杂,实则是实现完整音频处理的基础。本文从新手视角出发,拆解这三大
    的头像 发表于 11-21 19:26 44次阅读
    新手速成:掌握TTS/文件<b class='flag-5'>播放</b>/<b class='flag-5'>录音</b>核心,构建完整音频处理<b class='flag-5'>功能</b>

    33A66-B1 rk3399开发板规格书

    信步 33A66-B1 rk3399开发板规格书 包括各种接口每个引脚的说明
    发表于 10-13 16:10 1次下载

    RK3399:性能与能效的嵌入式先锋,解锁多场景应用潜力

    在寻求卓越性能与出色能效平衡的嵌入式计算和智能设备领域,瑞芯微(Rockchip)推出的RK3399处理器无疑是一个耀眼的明星。这款基于ARM架构的旗舰级SoC(System-on-Chip),凭借
    的头像 发表于 09-26 14:30 510次阅读
    <b class='flag-5'>RK3399</b>:性能与能效的嵌入式先锋,解锁多场景应用潜力

    系统适配 | RK3588 Ubuntu22.04正式发布

    前言:为了满足广大开发者与嵌入式爱好者的需求!眺望电子正式宣布,已完成基于瑞芯微RK3588的开发板对Ubuntu22.04LTS操作系统的深度适配与优化。此次适配不仅成功移植了
    的头像 发表于 09-05 12:06 1511次阅读
    系统适配 | <b class='flag-5'>RK</b>3588 <b class='flag-5'>Ubuntu</b>22.04正式发布

    如何调用mpp硬解+ffmpeg本地播放视频,RK3576

    我往rk3576上部署了一个ubuntu系统,想测试rkmpp+ffmpeg或者rkmpp+gstreamer硬解,实现本地播放视频,有什么思路或者案例可以供我参考吗? 目前遇到了很多
    发表于 08-23 10:05

    系统适配 | RK3576适配Ubuntu20.04正式发布

    前言:为了满足广大开发者与嵌入式爱好者的需求!眺望电子正式宣布,已完成基于瑞芯微RK3576的开发板对Ubuntu20.04LTS操作系统的深度适配与优化。此次适配不仅成功移植了
    的头像 发表于 07-31 08:32 1447次阅读
    系统适配 | <b class='flag-5'>RK</b>3576适配<b class='flag-5'>Ubuntu</b>20.04正式发布

    迅为RK3562开发板 Ubuntu系统功能测试

    迅为RK3562开发板 Ubuntu系统功能测试
    的头像 发表于 07-10 13:46 1009次阅读
    迅为<b class='flag-5'>RK</b>3562开发板 <b class='flag-5'>Ubuntu</b>系统<b class='flag-5'>功能</b>测试

    干货分享 | RK3588 Ubuntu系统Docker容器使用指南

    前言:在瑞芯微RK3588高性能AIoT平台上运行Ubuntu系统时,Docker容器技术能极大提升开发部署效率。通过轻量级虚拟化实现环境隔离与快速迁移,本文将从零开始详解
    的头像 发表于 06-27 12:01 3177次阅读
    干货分享 | <b class='flag-5'>RK</b>3588 <b class='flag-5'>Ubuntu</b>系统Docker容器使用指南

    技术分享|iTOP-RK3588开发板Ubuntu20系统旋转屏幕方案

    技术分享|iTOP-RK3588开发板Ubuntu20系统旋转屏幕方案
    的头像 发表于 04-18 15:19 1051次阅读
    技术分享|iTOP-<b class='flag-5'>RK</b>3588开发板<b class='flag-5'>Ubuntu</b>20系统旋转屏幕方案

    HZ-EVM-RK3399-技术规格说明书

    电子发烧友网站提供《HZ-EVM-RK3399-技术规格说明书.pdf》资料免费下载
    发表于 04-17 17:04 1次下载

    RK3399处理器:高性能多核异构计算平台

    RK3399是一款高性能的多核异构计算平台,集成了强大的CPU、GPU以及丰富的多媒体和接口功能。其独特的双Cortex-A72+四Cortex-A53大小核CPU结构,使得RK3399在处理复杂
    的头像 发表于 02-08 18:04 2383次阅读

    RK3399Pro处理器:高性能与AI加速的完美结合

    RK3399Pro是一款高性能处理器,专为需要强大计算能力和人工智能加速的应用场景而设计。其主要特性如下: 高性能CPU核心:搭载双核Cortex-A72处理器,主频高达1.8GHz,以及四核
    的头像 发表于 02-07 18:11 1382次阅读

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

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

    RK3588核心板多媒体功能一览

    (正面)一、播放/录音测试1.1HDMI屏播放声音将HDMI屏与EVM-RK3588底板的HDMITX进行连接,使用如下指令播放音频:$gs
    的头像 发表于 12-12 08:31 3155次阅读
    <b class='flag-5'>RK</b>3588核心板多媒体<b class='flag-5'>功能</b>一览