3.3 Audio 模块API手册
前言
概述
此文档介绍CanMV音频模块,用以指导开发人员如何调用python api接口实现音频采集及播放功能。
读者对象
本文档(本指南)主要适用于以下人员:
- 技术支持工程师
- 软件开发工程师
缩略词定义
简称 | 说明 |
---|---|
media | k230 media包,包含多媒体相关模块 |
media.pyaudio | 音频处理模块 |
media.wave | wav文件处理模块 |
修订记录
文档版本号 | 修改说明 | 修改者 | 日期 |
---|---|---|---|
V1.0 | 初版 | 孙小朋 | 2023-09-18 |
V1.1 | 修改audio模块内存分配方式:所有模块统一由media.media分配内存,详见示例程序中的修改:media.buffer_init() | 孙小朋 | 2023/10/12 |
1. 概述
此文档介绍CanMV音频模块,用以指导开发人员如何调用python api接口实现音频采集及播放功能。
2. API描述
2.1 mpp.wave
wave模块提供了一种简单的方式来读取和处理WAV文件。使用wave.open函数可以打开wav文件并返回以下类对象。 wave.Wave_read类提供获取WAV文件的元数据(如采样率、采样点、声道和采样精度)及从文件读取wav音频数据方法。 wave.Wave_write类提供设置WAV文件的元数据(如采样率、采样点、声道和采样精度)及保存pcm音频数据到wav文件的方法。 该模块与pyaudio模块配合会很容易实现播放wav文件音频和采集并保存wav音频文件。
2.1.1 open
【描述】
打开wave文件,用以读取或写入音频数据。
【语法】
def open(f, mode=None)
【参数】
参数名称 | 描述 | 输入/输出 |
---|---|---|
f | 文件名称 | 输入 |
mode | 打开模式(‘r’,’rb’,’w’,’wb’) | 输入 |
【返回值】
返回值 | 描述 |
---|---|
Wave_read或Wave_write类对象 | 成功。 |
其他 | 失败,抛出异常 |
2.1.2 wave.Wave_read
Wave_read类提供获取WAV文件的元数据(如采样率、采样点、声道和采样精度)及从文件读取wav音频数据方法。
2.1.2.1 get_channels
【描述】
获取声道数。
【语法】
def get_channels(self)
【参数】
无
【返回值】
返回值 | 描述 |
---|---|
>0 | 成功。 |
0 | 失败 |
2.1.2.2 get_sampwidth
【描述】
获取采样字节长度。
【语法】
def get_sampwidth(self)
【参数】
无
【返回值】
返回值 | 描述 |
---|---|
>0 有效范围[1,2,3,4]分别对应采样精度[8,16,24,32] | 成功。 |
0 | 失败 |
2.1.2.2 get_framerate
【描述】
获取采样频率。
【语法】
def get_framerate(self)
【参数】
无
【返回值】
返回值 | 描述 |
---|---|
>0 有效范围(8000~192000) | 成功。 |
0 | 失败 |
2.1.2.3 read_frames
【描述】
读取帧数据。
【语法】
def read_frames(self, nframes)
【参数】
参数名称 | 描述 | 输入/输出 |
---|---|---|
nframes | 读取的帧长度(声道数*每个采样点的 采样精度/8) | 输入 |
【返回值】
返回值 | 描述 |
---|---|
bytes字节序列 |
2.1.3 wave.Wave_write
Wave_write为类对象,提供设置WAV文件的元数据(如采样率、采样点、声道和采样精度)及保存pcm音频数据到wav文件的方法。
2.1.3.1 set_channels
【描述】
设置声道数。
【语法】
def set_channels(self, nchannels)
【参数】
参数名称 | 描述 | 输入/输出 |
---|---|---|
nchannels | 声道数 | 输入 |
【返回值】
无
2.1.3.2 set_sampwidth
【描述】
设置采样字节长度。
【语法】
def set_sampwidth(self, sampwidth)
【参数】
参数名称 | 描述 | 输入/输出 |
---|---|---|
sampwidth | 采样字节长度,有效范围[1,2,3,4]分别对应采样精度[8,16,24,32] | 输入 |
【返回值】
无