rk3568 Android audio 调试

news/2024/10/22 14:24:30/

rk3568 Android tiny-alsa工具

Android 平台使用audio HAL应该是Linux alsa-utils 的变种;相对后者前者更简单,但是功能基本相同;
在使用命令遍历声卡和设备时,同样支持按照序号和名字索引,这点比较赞。录音或者播放测试音频时,需要先设定音频路由;否则可能录音通道不正确,或者播放无声。 某些版本Android 并未编译 tiny-alsa工具,可自行手动比编译:mmm extranl/tiny-alsa -j16。


提示:RK Android SDK 标配 tiny-alsa 工具。

文章目录

  • rk3568 Android tiny-alsa工具
  • 圈重点 看想学
  • 1. tinycap
  • 2. tinyplay
  • 3. tinymix
  • 4. tinypcminfo
  • 5 以rk809简单讲解使用范例
    • 5.1 播放时从耳机切换到喇叭
    • 5.2 耳机录音
    • 5.3 主mic 录音
  • 总结


圈重点 看想学

a) tinycap
b) tinyplay
c) tinymix
4) tinypcminfo


1. tinycap

tinycap
Usage: tinycap file.wav [-D card] [-d device] [-c channels] [-r rate] [-b bits] [-p period_size] [-n n_periods] [-T capture time]
# -D 声卡序号/声卡名
# -d 设备名
# -c 声道数量,一般为偶数
# -r 采样率
# -b 位深
# -p 周期
# -n 跳过周期数
# -T 录音时间,单位秒;缺省后时间无限延长

Tinycap 录音格式固定为 wav, 采样率、采样深度和采样周期参照声卡属性范围;如何查看声卡属性请参考 tinypcminfo

  1. 录制44.1k 采样率音频
tinycap /sdcard/rec.wav -D 0 -d 0 –c 2 –r 44100 –b 16 –p 1024 –n 3
# Ctrl + c 暂停录制
  1. 录制48k 采样率音频 10秒
tinycap /sdcard/rec.wav -D 0 -d 0 –c 2 –r 48000 –b 16 –p 1024 –n 3 -T 10

2. tinyplay

tinyplay
Usage: tinyplay file.wav [-D card] [-d device] [-p period_size] [-n n_periods]
  1. 播放测试 test.wav 音频,缺省部分使用默认参数
tinyplay /sdcard/test.wav -D 0 -d 0 -p 1024 -n 3
Playing sample: 2 ch, 48800 hz, 32 bit
  1. rk809 声卡播放测试音频
tinyplay -D rockchip,rk809-codec -c 0 /sdcard/test.wav -D 0 -d 0 -p 1024 -n 3
Playing sample: 2 ch, 48800 hz, 32 bit

3. tinymix

控制 codec 内部的通路开关,声音增益等音频路由属性。可以认为它就是 amixer 缩减版,命令方式基本相通。

tinymix --help
tinymix [options] [control name/#] [value to set]options:--device|-D <card#>   - use the given card # instead of 0.--all-values|-a       - show all possible values/ranges for control.--tabs-only|-t        - separate all output columns/values with tabs.--value-only|-v       - show only the value for the selected control.
  1. 读取路由属性
tinymix -a                                                     
Mixer name: 'rockchip,rk809-codec'
Number of controls: 2
ctl     type    num     name                                     valuerange/values
0       ENUM    1       Playback Path                            >OFF RCV SPK HP HP_NO_MIC BT SPK_HP RING_SPK RING_HP RING_HP_NO_MIC RING_SPK_HP
1       ENUM    1       Capture MIC Path                         >MIC OFF Main Mic Hands Free Mic BT Sco Mic
  1. 读取指定声卡,指定控制器
tinymix -D rockchip,rk809-codec 0
# 按名字索引
tinymix -D rockchip,rk809-codec "Capture MIC Path"
Playback Path: >OFF RCV SPK HP HP_NO_MIC BT SPK_HP RING_SPK RING_HP RING_HP_NO_MIC RING_SPK_HP
  1. 设定声卡音频路由属性
# 设定rk809 声卡播放路由
tinymix -D rockchip,rk809-codec "Playback Path" "SPK"
# 按序号索引
tinymix -D rockchip,rk809-codec 0 SPK# 回读后声卡已经是设定的参数
tinymix -D rockchip,rk809-codec "Playback Path" "SPK"
Playback Path: OFF RCV >SPK HP HP_NO_MIC BT SPK_HP RING_SPK RING_HP RING_HP_NO_MIC RING_SPK_HP

4. tinypcminfo

查询声卡支持的采样率,格式,声道数。

  1. tinypcminfo使用方式如下
tinypcminfo
Usage: tinypcminfo -D card -d device
  1. 可按设备序号或声卡名查找信息
cat /proc/asound/cards0 [rockchiprk809co]: rockchip_rk809- - rockchip,rk809-codecrockchip,rk809-codec
# tinypcminfo -D rockchiprk809co
# tinypcminfo -D 0
Info for card 0, device 0:PCM out:Access:   0x000009Format[0]:   0x000444Format[1]:   00000000Format Name:   S16_LE, S24_LE, S32_LESubformat:   0x000001Rate:   min=8000Hz      max=96000HzChannels:   min=2           max=8Sample bits:   min=16          max=32Period size:   min=8           max=65536
Period count:   min=2           max=16384PCM in:Access:   0x000009Format[0]:   0x000444Format[1]:   00000000Format Name:   S16_LE, S24_LE, S32_LESubformat:   0x000001Rate:   min=8000Hz      max=96000HzChannels:   min=2           max=8Sample bits:   min=16          max=32Period size:   min=8           max=65536
Period count:   min=2           max=16384

5 以rk809简单讲解使用范例

从 tinypcminfo 中可知播放和录音设备各有一个,序列号都为0。

5.1 播放时从耳机切换到喇叭

$ tinyplay -D rockchip,rk809-codec -c 0 /sdcard/test.wav -D 0 -d 0 -p 1024 -n 3 &
Playing sample: 2 ch, 48800 hz, 32 bit
# 切换到喇叭声道
$ tinymix -D rockchip,rk809-codec "Playback Path" "SPK"
# 切换到耳机声道+功放的喇叭
$ tinymix -D rockchip,rk809-codec "Playback Path" "SPK_HP"

5.2 耳机录音

录音前须先适配耳机音频路由,然后再录音。

#切换到耳机麦克风
tinymix -D rockchip,rk809-codec "Capture MIC Path" "Hands Free Mic"
tinycap -D rockchip,rk809-codec -c 0 /sdcard/hp.wav -D 0 -d 0 –c 2 –r 48000 –b 16 –p 1024 –n 3 -T 10
# 播放录音
tinymix -D rockchip,rk809-codec "Playback Path" "HP"
tinyplay -D rockchip,rk809-codec 0 /sdcard/hp.wav -D 0 -d 0 -p 1024 -n 3

5.3 主mic 录音

录音前须先适配主mic音频路由,然后再录音。

#切换到主麦克风
tinymix -D rockchip,rk809-codec 1 “Main Mic”
tinycap -D rockchip,rk809-codec -c 0 /sdcard/mic.wav -D 0 -d 0 -p 1024 -n 3 -T 5
# 播放录音,播放路由切到外设喇叭
tinymix -D rockchip,rk809-codec 0 SPK_HP
tinyplay -D rockchip,rk809-codec 0 /sdcard/mic.wav -D 0 -d 0 -p 1024 -n 3

总结

活学活用,做个合格的搬运工。


http://www.ppmy.cn/news/39322.html

相关文章

leetcode:验证回文串(详解)

前言&#xff1a;内容包括&#xff1a;题目&#xff0c;代码实现&#xff0c;大致思路 题目&#xff1a; 如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后&#xff0c;短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。 字母和数字都属于字母…

PX4从放弃到精通(二十七):固定翼姿态控制

文章目录前言一、roll/pitch姿态/角速率控制二、偏航角速率控制三、主程序前言 固件版本 PX4 1.13.2 欢迎交流学习&#xff0c;可加左侧名片 一、roll/pitch姿态/角速率控制 roll/pitch的姿态控制类似&#xff0c;这里只介绍roll姿态控制&#xff0c; 代码位置&#xff1a; …

left join 中 的on的使用和on后加where 和 and 的区别

一、left join on on条件是在生成临时表时使用的条件&#xff0c;它不管on中的条件是否为真&#xff0c;都会返回左边表中的记录。 注意&#xff1a;on 后面跟的是关联表的查询条件 二、left join on and &#xff08;1&#xff09;如果and语句是对左表进行过滤的&#xff0c;…

Pandas玩转文本处理

数据处理&#xff0c;也是风控非常重要的一个环节&#xff0c;甚至说是模型成败的关键环节。因此&#xff0c;娴熟简洁的数据处理技巧&#xff0c;是提高建模效率和建模质量的必要能力。 向量化操作的概述 对于文本数据的处理(清洗)&#xff0c;是现实工作中的数据时不可或缺的…

KaiwuDB 成为中国信通院数据库应用创新实验室-汽车行业工作组副组长单位

3月29日&#xff0c;中国通信标准化协会大数据技术标准推进委员会在杭州召开本年度第一次全体工作会议。 KaiwuDB 自成为中国通信标准化协会大数据技术标准推进委员会成员单位并加入大数据技术与产品工作组&#xff08;WG1&#xff09;、数据库与存储工作组&#xff08;WG4&…

[element-ui] el-table行添加阴影悬浮效果

问题: 在el-table每一行获得焦点与鼠标经过时&#xff0c;显示一个整行的阴影悬浮效果 /*其中&#xff0c;table-row-checkd是我自定义的焦点行添加类名&#xff0c;大家可以自己起名*/ .el-table tbody tr:hover,.el-table tbody tr.table-row-checked{box-shadow: 0px 3px …

AI大模型已经出现不可预测的能力

编者按&#xff1a;日前&#xff0c;非盈利组织生命未来研究所发布了一封《暂停大型人工智能研究》的公开信&#xff0c;马斯克等千名科技人士进行了签名。虽然部分签署人的真实性存疑&#xff0c;但是大型语言模型&#xff08;LLMs&#xff09;的“涌现”能力确实可能会导致突…

【MATLAB】matlab遗传算法工具使用

目录 matlab遗传算法工具使用 matlab遗传算法工具使用 % matlab遗传算法工具使用 %学习测试求解 f x*sin(y)y*sin(x) 在x,y属于0-10之间的最大值% ga,gaoptimset为核心函数 %使用工具箱&#xff0c;能够操作的最多的为适应度函数&#xff0c;这也是我们平常能用到的最多的 %…