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

    文章

    20339

    浏览量

    255294
  • python
    +关注

    关注

    58

    文章

    4889

    浏览量

    90326
  • RK3399
    +关注

    关注

    2

    文章

    216

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    通话录音功能实现:自动接听 + 自动录音开源方案

    AirUI 可视化方案仍在优化中,其轻量化、低成本、高可靠的特性在工业场景具备一定应用价值。针对用户对通话录音功能的需求,本文提供一套可直接落地的实现方案,支持自动接听与自动录音,适用
    的头像 发表于 04-13 13:36 730次阅读
    通话<b class='flag-5'>录音</b><b class='flag-5'>功能</b><b class='flag-5'>实现</b>:自动接听 + 自动<b class='flag-5'>录音</b>开源方案

    Ubuntu 25升级全解析!即将移植RK系列芯片,技术实践抢先预告

    能、开发工具等维度实现了全方位突破。更重磅的是 —— 我已启动将 Ubuntu 25 移植到 RK 系列芯片的计划,后续会持续分享实践细节,各位敬请期待!
    的头像 发表于 02-06 17:07 3541次阅读
    <b class='flag-5'>Ubuntu</b> 25升级全解析!即将移植<b class='flag-5'>RK</b>系列芯片,技术实践抢先预告

    Ubuntu系统音频调试指南:解决录音异常问题

    在网安产品出货国外的过程中,我们在 x86 平台上遇到了 Ubuntu 系统录音异常的情况 —— 安装 Windows 系统时录音正常,但切换到 Ubuntu 24.04.3 版本后
    的头像 发表于 02-05 13:41 438次阅读
    <b class='flag-5'>Ubuntu</b>系统音频调试指南:解决<b class='flag-5'>录音</b>异常问题

    RK3399 Android12自动调节屏幕亮度问题排查与解决

    在嵌入式设备开发中,屏幕自动亮度调节功能直接影响用户体验与功耗控制。近期在 RK3399 芯片 + Android12 系统的设备上,遇到了自动亮度调节的异常问题 —— 系统自动调节时亮度最低只能
    的头像 发表于 02-04 17:36 1885次阅读
    <b class='flag-5'>RK3399</b> Android12自动调节屏幕亮度问题排查与解决

    一文打通Rockchip DP调试:从原理到实战,覆盖RK3399/RK3576/RK3588全平台

    嵌入式开发中,DisplayPort(DP)接口的调试常让工程师头疼 —— 不同芯片特性差异大、Type-C 与标准口配置不同、高分辨率输出异常、MST 多屏适配难… 尤其是 Rockchip RK3399RK3576、RK3
    的头像 发表于 02-04 16:14 1020次阅读
    一文打通Rockchip DP调试:从原理到实战,覆盖<b class='flag-5'>RK3399</b>/<b class='flag-5'>RK</b>3576/<b class='flag-5'>RK</b>3588全平台

    基于rk3576开发debian、ubuntu、android

    RK3576芯片是一款功能强大、全面支持多媒体处理、高速连接和外部扩展的嵌入式处理器。它适用于多种应用场景,如高清视频播放、嵌入式开发、智能家居、汽车电子等。
    的头像 发表于 01-30 17:53 2905次阅读
    基于<b class='flag-5'>rk</b>3576开发debian、<b class='flag-5'>ubuntu</b>、android

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

    这三大模块的核心逻辑,助你高效打通从核心功能到完整功能实现路径。 一、概述   本文档详细介绍了基于 Air8000 开发板或者 Air8000 核心板的音频功能开发,涵盖音频
    的头像 发表于 11-21 19:27 438次阅读
    速通音频处理:掌握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 440次阅读
    新手速成:掌握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 3次下载

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

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

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

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

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

    迅为RK3562开发板 Ubuntu系统功能测试
    的头像 发表于 07-10 13:46 1556次阅读
    迅为<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 4263次阅读
    干货分享 | <b class='flag-5'>RK</b>3588 <b class='flag-5'>Ubuntu</b>系统Docker容器使用指南