您尚未登录。

楼主 #1 2018-12-04 16:20:29

萧瑟
会员
注册时间: 2018-09-12
已发帖子: 22
积分: 22

怎么通过i2s_read_bytes()函数读取mic数据啊?我想读取两路mic数据,有实验过的吗?求指导

怎么通过i2s_read_bytes()函数读取mic数据啊?我想读取两路mic数据,有实验过的吗?求指导

离线

#2 2018-12-04 16:58:00

晕哥
管理员
注册时间: 2017-09-06
已发帖子: 9,348
积分: 9202

Re: 怎么通过i2s_read_bytes()函数读取mic数据啊?我想读取两路mic数据,有实验过的吗?求指导

根据你的I2S设置,如果是立体声,那么 i2s_read_bytes 应该是左右声道交替的数据, 个人猜测,具体可以用逻辑分析仪抓I2S总线数据和录音到文件,对比一下。





离线

楼主 #3 2018-12-04 17:33:13

萧瑟
会员
注册时间: 2018-09-12
已发帖子: 22
积分: 22

Re: 怎么通过i2s_read_bytes()函数读取mic数据啊?我想读取两路mic数据,有实验过的吗?求指导

我把数据保存到SD卡,用单通道和立体声打开 播放时杂音,感觉没有录到mic数据

离线

#4 2018-12-04 17:58:49

晕哥
管理员
注册时间: 2017-09-06
已发帖子: 9,348
积分: 9202

Re: 怎么通过i2s_read_bytes()函数读取mic数据啊?我想读取两路mic数据,有实验过的吗?求指导

别用 esp32 直接播放, 你都不知道是硬件问题还是软件问题。

应该把录到的文件拷贝到电脑用 cooledit 和 audacity 播放, 这两个软件可以直接看到声音的波形图, 可以打开原始数据的方式,任意调整采样声道和采样率,采样深度参数播放。





离线

楼主 #5 2018-12-05 09:23:46

萧瑟
会员
注册时间: 2018-09-12
已发帖子: 22
积分: 22

Re: 怎么通过i2s_read_bytes()函数读取mic数据啊?我想读取两路mic数据,有实验过的吗?求指导

@晕哥,我就是用cooledit 和 audacity打开的,采集的数据都是杂音。
I2S配置如下:

i2s_config_t i2s_config = {

    .mode = I2S_MODE_MASTER | I2S_MODE_RX | I2S_MODE_TX,
    .sample_rate = 48000,
    .bits_per_sample = SUPPOERTED_BITS,
    .channel_format = I2S_CHANNEL_FMT_RIGHT_LEFT,

    .communication_format = I2S_COMM_FORMAT_I2S,

    //when dma_buf_count = 3 and dma_buf_len = 300, then 3 * 4 * 300 * 2 Bytes internal RAM will be used. The multiplier 2 is for Rx buffer and Tx buffer together.
    .dma_buf_count = 3,                            /*!< amount of the dam buffer sectors*/
    .dma_buf_len = 300,                            /*!< dam buffer size of each sector (word, i.e. 4 Bytes) */
    .intr_alloc_flags = I2S_INTER_FLAG,
    .use_apll = 1,
};

离线

#6 2018-12-05 09:33:25

晕哥
管理员
注册时间: 2017-09-06
已发帖子: 9,348
积分: 9202

Re: 怎么通过i2s_read_bytes()函数读取mic数据啊?我想读取两路mic数据,有实验过的吗?求指导

试一试用逻辑分析仪抓i2s的录音数据与保存到数据比较





离线

楼主 #7 2018-12-05 11:52:53

萧瑟
会员
注册时间: 2018-09-12
已发帖子: 22
积分: 22

Re: 怎么通过i2s_read_bytes()函数读取mic数据啊?我想读取两路mic数据,有实验过的吗?求指导

我这没有仪器测试:lol,有什么例子吗?可以参考一下,

离线

#8 2018-12-05 12:01:59

晕哥
管理员
注册时间: 2017-09-06
已发帖子: 9,348
积分: 9202

Re: 怎么通过i2s_read_bytes()函数读取mic数据啊?我想读取两路mic数据,有实验过的吗?求指导

萧瑟 说:

我这没有仪器测试:lol,有什么例子吗?可以参考一下,

逻辑分析仪很便宜,最便宜的sea logic 都可以抓i2s数据, 二三十块的那种。





离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn