welkinchan

Results 13 comments of welkinchan

> 你这用了 ADF 的 I2S pipeline 接口? 是的。代码可见 [i2s_stream tts代码.txt](https://github.com/user-attachments/files/16487720/i2s_stream.tts.txt)

> > > 你这用了 ADF 的 I2S pipeline 接口? > > > > > > 是的。代码可见 [i2s_stream tts代码.txt](https://github.com/user-attachments/files/16487720/i2s_stream.tts.txt) > > ![企业微信截图_17228261912453](https://private-user-images.githubusercontent.com/111102666/354955425-5714ef86-6bfd-4f0b-8646-6f867587b2ee.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjI4Mjg2NjIsIm5iZiI6MTcyMjgyODM2MiwicGF0aCI6Ii8xMTExMDI2NjYvMzU0OTU1NDI1LTU3MTRlZjg2LTZiZmQtNGYwYi04NjQ2LTZmODY3NTg3YjJlZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODA1JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgwNVQwMzI2MDJaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT01MTg5ODY4MzQ3YzcyYjU3NWNjNTUwNzA0YzdmZmVkNzc3Yjg0ZmNhMjM0ZDE1ODFlYzAyYzc0NGFmMGM3Y2FhJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.bnum_pfP1DOLL-AgYdo8T7qoftCC3SJCZTPwcowLSEg) 我看你播放的音源改了 I2S 的配置,上传给 chatgpt 的录音处理有没有同步修改,是不是两边对不上了? 上传给 chatgpt 的录音处理我没有进行任何的修改,几乎是保留原来的代码。 i2s_stream这部分的代码我是参考google_translate的例程写的,我其实不是很理解这句代码的作用。...

> 给 chatgpt 的录音处理有没有同步修改,是不是两边对不 1. 我把i2s_stream改成了立体声,测试下来,还是无法唤醒。 i2s_cfg.std_cfg.slot_cfg.slot_mode = I2S_SLOT_MODE_STEREO; i2s_cfg.std_cfg.slot_cfg.slot_mask = I2S_STD_SLOT_BOTH; 2. 我把slot_mode以及slot_mask这两行代码注释掉,也是无法唤醒的。 3. 在这个阶段进行录音的代码我还没尝试。 4. 我尝试在上述更改的基础上,并且在i2s_stream的这段tts代码的末尾, 也就是执行baidu_tts_destroy(tts);后,再执行bsp_codec_set_fs(16000, 16, 2);,此时log会多出如下记录,但是此时还是无法唤醒。 W (30824) HTTP_STREAM: No more data,errno:0, total_bytes:66240, rlen =...

> 录音测试的,建议可以把二次录音buffer i2s_write 播放简单验证下。 无法唤醒,我觉得就两个原因,feed 的音频文件不对;wakenet 的模型没有 enable. 这个项目里边,我写了两个tts语音播放的处理逻辑。 一个是用这个的i2s_stream,另外一个是用audio_player_play,代码如附件所示。 当我使用audio_player_play的函数时候,语音都是可以正常唤醒的。 当我使用i2s_stream的函数的时候,语音就没办法唤醒了。 其他的代码都是一样的。 所以,肯定不是wakenet模型没有enable的问题, feed 音频文件我晚上试试看。 [tts_api.txt](https://github.com/user-attachments/files/16504419/tts_api.txt)

> 录音测试的,建议可以把二次录音buffer i2s_write 播放简单验证下。 无法唤醒,我觉得就两个原因,feed 的音频文件不对;wakenet 的模型没有 enable. 验证了一下,使用了我的i2s_stream的代码之后,录音文件确实是异常的。 看来结论确实是i2s的参数被更改了。 请问,在执行了我的i2s_stream的代码之后,应该怎么恢复原先的i2s参数,使得录音可以正常工作? 我在后续的代码里面,把bsp_board_init();以及audio_record_init();都运行了之后,录音还是不正常,无法唤醒。

> 我的i2s_stream的代码 我的i2s_stream的代码执行之后,在pipeline unlink以及destroy之后,我让代码再重新执行bsp_codec_set_fs(16000, 16, 2),录音文件一直是有问题的。 不仅仅是bsp_codec_set_fs(16000, 16, 2), bsp_board_init(),audio_record_init()这些都试了, 一直不行。 连vad检测都判断为没有检测到人声。

> > > 我的i2s_stream的代码 > > > > > > 我的i2s_stream的代码执行之后,在pipeline unlink以及destroy之后,我让代码再重新执行bsp_codec_set_fs(16000, 16, 2),录音文件一直是有问题的。 不仅仅是bsp_codec_set_fs(16000, 16, 2), bsp_board_init(),audio_record_init()这些都试了, 一直不行。 连vad检测都判断为没有检测到人声。 > > 如果需要,可以将你这部分的代码,递交一个 PR(或者你仓库的地址),我们也这看一下。 我把我的项目上传到这里了,如果可以,请帮我看一下哈。https://github.com/welkinchan/chatgpt_wgdemo 1. 项目使用的是esp32s3-box3,idf5.1.0 2. 目前此处tts调用的是这个i2s stream的函数,不知道为什么,现在连第一次tts都不能播放了,https://github.com/welkinchan/chatgpt_wgdemo/blob/main/main/main.c#L220...

> > > > 我的i2s_stream的代码 > > > > > > > > > 我的i2s_stream的代码执行之后,在pipeline unlink以及destroy之后,我让代码再重新执行bsp_codec_set_fs(16000, 16, 2),录音文件一直是有问题的。 不仅仅是bsp_codec_set_fs(16000, 16, 2), bsp_board_init(),audio_record_init()这些都试了, 一直不行。 连vad检测都判断为没有检测到人声。 > > > > > >...

fei > 1: 是不是只支持双麦克风?是不是因为我的板子只有1个麦克风,所以导致很难唤醒 这边需要匹配,目前默认是两路 mic,一路参考信号,现有 es7210 采样是两路的,回采信号目前置 0 处理。问题2 同理 > > 音频转换 > > ``` > for (int i = audio_chunksize - 1; i >= 0; i--) {...

> [@welkinchan](https://github.com/welkinchan) 可以参考 dueros 的 [example](https://github.com/espressif/esp-adf/blob/f9660e31f08d45477637c8a060a4a0ad751b0254/examples/dueros/main/duer_audio_wrapper.c#L258) 我看了下这个项目里边的代码,里边的AEC配置是关了的啊。 #ifndef RECORD_HARDWARE_AEC #warning "The hardware AEC is disabled!" #define RECORD_HARDWARE_AEC (false) #endif /* RECORD_HARDWARE_AEC */ 而且,我测试过,如果要打开AEC的话,程序会提示至少要2个MIC, 这个例程里的MIC_NUM配置的参数也是设置为1个。 还是我理解错了?