welkinchan

Results 8 issues of welkinchan

request error: HTTPSConnectionPool(host='api.openai.com', port=443): Max retries exceeded with url: /v1/chat/completions (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))) 填了自己的API-key。科学上网使用PAC连线,不管发什么,都是报这个错误。

我正在努力在这个代码的基础上,想要实现连续对话的功能以及语音打断的功能。 但是改了好久,测试下来,还是有点问题。 1. 第一次唤醒后就可以连续对话。但是如果隔20s没有对话,就进入待机模式。待机之后,必须使用唤醒词才能叫醒。但是我目前的代码测试下来,没使用唤醒词也可以继续对话。 2. tts语音输出的时候,我希望期间喊出唤醒词之后就停止tts输出。但是目前的的代码,偶尔还会播放一两句话。我的饿代码里边明明把task_ask_tts以及task_ask_gpt都给cancel了。不理解。

我最近把gpt_demo案例运行到我的es8388音频芯片的板子上, 板子原先是使用es8311芯片的,那时候程序运行都是正常的, 但是板子改成es8388芯片后(板子只有1个麦克风和2个喇叭), 唤醒的成功率非常低,大概30次才能唤醒1次,并且比较随机。 比较奇怪的是,唤醒后,我的语音每次都能准确识别(大概6,7次全都是成功的),并且TTS语音播放也都是很正常的。 现在主要的问题就是唤醒的成功率很低, 我觉得不大可能是收音的问题,因为STT的成功率很高, 所以我想咨询一下, gpt_demo中的唤醒逻辑中,对声音的处理逻辑是怎么样的? 1. 是不是只支持双麦克风?是不是因为我的板子只有1个麦克风,所以导致很难唤醒? 2. 我的es8388的驱动是直接将codec组件中的es8311的驱动直接按照lyrat开发板的es8388的驱动改的。是不是sr组件中的降噪处理的逻辑是根绝es8311写的,无法适用于es8388? 由于我刚学习嵌入式,很多都不大懂,因此非常希望能够帮忙解答。

### Board ESP32-S3-Korvo-2 V3.0 ### Hardware Description 将Korvo-2 V3.0的板子的es8311音频芯片以及es7210换成了es8388,并且使用模拟咪头作为麦克风。 另外,把板子上LCD以及摄像头相关的器件都删掉了。 ![电路图](https://github.com/espressif/esp-bsp/assets/22250803/9eeb65e4-d731-4a35-9ea9-77c6d1efe53c) ### IDE Name esp-idf 5.1.0 ### Operating System windows10 ### Description 1. 在跑如下录音与语音播放的例程的时候,功能无法正常实现。历程项目为:https://github.com/espressif/esp-bsp/tree/master/examples/audio 2. 由于korvo2配置的默认音频芯片为es8311,而我的板子用的时es8388芯片,为了实现 es8388的音频驱动,将工程代码更改为使用bsp中的esp32_lyrat中的es8388的驱动代码。 3. 例程跑起来以后,板子上只有一个麦克风能够正常播放音乐,并且录音无法正常工作。 4....

Status: Awaiting triage

我最近在尝试开发语音对话。 当我使用audio_player_play从http连接缓存下来的语音文件时,语音唤醒可以正常工作。 但是,其他代码都不改动的情况下,使用i2s_stream的pipeline播放http语音文件链接后,就无法再唤醒设备了。 所以我想确认一下,是不是i2s_stream的pipeline播放http语音链接后,会导致sr语音唤醒失效? 附件是我的audio_player_play的log,audio_player_play的播放代码 i2s_stream的pipeline播放log,以及i2s_stream的pipeline播放代码, 从我个人分析来看,当使用i2s的pipeline进行tts语音的播放后,audio_feed_task 以及audio_detect_task 都是正常在执行的。 但是i2s_stream的pipeline只要执行一遍,就无法唤醒。 audio_player_play的代码以及log [tts_api.txt](https://github.com/user-attachments/files/16504419/tts_api.txt) [http tts可以多次唤醒.txt](https://github.com/user-attachments/files/16487718/http.tts.txt) i2s_stream的pipeline播放代码以及log [i2s tts第二次无法唤醒.txt](https://github.com/user-attachments/files/16487719/i2s.tts.txt) [i2s_stream tts代码.txt](https://github.com/user-attachments/files/16487720/i2s_stream.tts.txt)

我最近在尝试给gpt_demo的tts语音增加i2s_stream的流式语音播放功能, 但是测试下来,发现一个问题,就是i2s_stream的代码执行一次之后,就无法再用唤醒指令唤醒设备了。 具体说明如下: 1. 我当前的代码中,当使用http tts的功能,通过http协议请求到tts的完整语音包后,再播放tts语音,程序可以多次语音唤醒设备,功能没有异常。请见附件的http tts的log。 2. 但是,当我使用i2s_stream,通过i2s的pipeline来进行流式播放tts的语音后,当语音播放完毕后,就无法再语音唤醒设备了,无论我在tts语音播放后是否清除pipeline,都无法唤醒设备。i2s_stream方案的代码以及调试log请见附件。 从我个人分析来看,当使用i2s的pipeline进行tts语音的播放后,audio_feed_task 以及audio_detect_task 都是正常在执行的。 使用http tts思路的代码,tts语音播放后,如下log中的i2s_if以及adev_codec的这几行代码会执行; 而使用i2s_pipeline tts的代码,log中的这几行代码就不会执行了。 所以,请问: 1. 能否帮忙分析一下,是什么原因导致无法唤醒的? 2. 我的i2s_pipeline tts的代码能否怎么修改后可以不影响语音唤醒功能? 3. 以下log中的几行代码是在哪个地方控制运行的?是不是由于缺少了相关函数的调用执行,所以导致无法唤醒? 4. 如果i2s_pipeline tts与语音唤醒冲突,请问是否有别的思路可以实现tts语音播放的流式处理? I (20373) I2S_IF:...

### Board ESP32-S3-Korvo-2 V3.0 ### Hardware Description 将Korvo-2 V3.0的板子的es8311音频芯片以及es7210换成了es8388,并且使用模拟咪头作为麦克风。 另外,把板子上LCD以及摄像头相关的器件都删掉了。 ![电路图](https://github.com/espressif/esp-adf/assets/22250803/9eeb65e4-d731-4a35-9ea9-77c6d1efe53c) ### IDE Name esp-idf 5.1.0 ### Operating System windows10 ### Description 1. 在跑如下录音与语音播放的例程的时候,功能无法正常实现。历程项目为:https://github.com/espressif/esp-bsp/tree/master/examples/audio 2. 由于korvo2配置的默认音频芯片为es8311,而我的板子用的时es8388芯片,为了实现 es8388的音频驱动,将工程代码更改为使用bsp中的esp32_lyrat中的es8388的驱动代码。 3. 例程跑起来以后,板子上只有一个麦克风能够正常播放音乐,并且录音无法正常工作。 4....

Status: Awaiting triage

我有一个项目,使用的是korvo2的开发板, 当将sr_cfg设置成单个麦克风的时候,可以正常工作。 由于开发板上有2个麦克风以及1个喇叭, 所以我想把AEC打开,测试下AEC的效果,但是测试下来,录音就彻底失效了。 原本可以进行语音唤醒,结果AEC打开的配置后,完全无法唤醒。 所以: 1. 想咨询下,打开AEC的话,除了下面的这些设置参数以外,是否还需要对其他的参数进行设置? recorder_sr_cfg.afe_cfg.aec_init = true; recorder_sr_cfg.afe_cfg.memory_alloc_mode = AFE_MEMORY_ALLOC_MORE_PSRAM; recorder_sr_cfg.afe_cfg.agc_mode = AFE_MN_PEAK_NO_AGC; recorder_sr_cfg.multinet_init = true; recorder_sr_cfg.fetch_task_core = 0; recorder_sr_cfg.feed_task_core = 1; recorder_sr_cfg.afe_cfg.pcm_config.mic_num = 2; recorder_sr_cfg.afe_cfg.pcm_config.ref_num...