esp32s3文心一言/豆包(即火山引擎)大模型实现智能语音对话–流式语音识别

esp32s3文心一言/豆包(即火山引擎)大模型实现智能语音对话–流式语音识别

        在之前的帖子《》中,我们介绍了如何使用Esp32S3微控制器与文心一言大模型实现基本的智能语音对话功能,但受限于语音识别技术,只能处理2-3秒的音频数据。为了提升用户体验,满足更长时间的语音聊天对话需求,本次优化采用了流式语音识别技术,并添加了语音唤醒模块,实现了语音关键词唤醒功能。

        1、arduino开发平台;

        2、所需设备:Esp32s3、inmp441、max98357、ASRPRO语音模块、ILI9488显示屏,杜邦线(接线);

        3、大模型:百度的文心一言大模型,豆包的火山引擎大模型;

        4、语音识别(STT)和语音合成(TTS):使用百度语音识别和语音合成;

        5、使用语言:C/C++;

esp32s3文心一言/豆包(即火山引擎)大模型实现智能语音对话--流式语音识别

        1、esp32s3:

        2、inmp441:

        3、max98357:

        4、ASRPRO语音模块:

        5、扬声器:文心一言 ERNIE Bot 教程

        6、杜邦线:

        7、ILI9488显示屏

1、INMP441与Esp32S3接线        

        1.1、inmp44介绍         

        INMP441是一款高性能,低功耗,数字输出,带底部端口的全向MEMS麦克风。该完整的INMP441解决方案由一个MEMS传感器,信号组成调节,模数转换器,抗混叠滤波器,电源管理和行业标准的24位I²S接口。I²S接口允许INMP441直接连接到数字处理器,如DSP和微控制器,无需使用用于系统中的音频编解码器。INMP441具有高信噪比,是一款出色的选择近场应用。 INMP441具有扁平宽带频率响应,导致自然声音高清晰度。

        1.2、inmp441接口定义
        1.3、实物图

                                 esp32s3文心一言/豆包(即火山引擎)大模型实现智能语音对话--流式语音识别

        1.4、接线
Esp32S3  INMP441 GPIO 8引脚 WS GPIO 46引脚 SCK GPIO 9引脚 SD GND引脚 L/R 和GND 3.3V引脚 VDD

2、MAX98357与Esp32S3接线

        2.1、max98357介绍 

       这是一个采用标准的I2S作为数字音频输入,内置解码器,可将数字音频信号解码为模拟信号,并拥有内置放大器,可以直接驱动扬声器的D类放大器。因其工作效率高,可以以2.7V~5.5V的直流电压运行,因此非常适合便携式及电池供电的音频播放项目

       2.2、max98357接口定义
        2.3、实物图

                                esp32s3文心一言/豆包(即火山引擎)大模型实现智能语音对话--流式语音识别


        2.4、接线
Esp32S3 MAX98357 GPIO 19引脚 DIN GPIO 20引脚 BCLK GPIO 21引脚 LRC GND引脚 GND 3.3V引脚 VIN


3、ASRPRO与Esp32S3接线

        3.1、ASRPRO语音模块介绍

        ASRPRO是一款高性能、低功耗的语音识别芯片,在使用过程中可以设置唤醒词和命令词。唤醒词用于将模块从待机状态切换到工作状态,防止误触发;命令词则用于执行具体的语音指令。本文中主要是借用了唤醒词的功能,使得esp32s3板子可以依赖语音唤醒。

        3.2、接口定义        

                该模块接口可自行查资料了解。

        3.3、实物图

                esp32s3文心一言/豆包(即火山引擎)大模型实现智能语音对话--流式语音识别           

         3.4、接线               
Esp32S3     ASRPRO GPIO 10引脚 PA_2 GPIO 11引脚 PA_3

4、扬声器与MAX98357接线

        这个接线比较简单,自己看着接就行。

文件目录如下:

esp32s3文心一言/豆包(即火山引擎)大模型实现智能语音对话--流式语音识别

1、ASRPRO语音模块上的代码

1.1、拖拉式编程如下:

esp32s3文心一言/豆包(即火山引擎)大模型实现智能语音对话--流式语音识别esp32s3文心一言/豆包(即火山引擎)大模型实现智能语音对话--流式语音识别

1.2、字符编程如下:

2、INMP441与MAX98357初始化接口

在my_inmp441_max98357.h文件中,实现初始化inmp441与max98357的接口。


2、STT和TTS(语音识别和语音合成接口)

在my_stt_tts.h文件中通过百度语音识别和语音合成API接口实现语音与文字互转功能。


3、通过API接口访问文心一言大模型

在my_ErnieBot.h文件中实现访问文心一言大模型API接口获取响应结果。


4、通过API接口访问豆包(火山引擎)大模型

在my_Doubao.h文件中实现访问文心一言大模型API接口获取响应结果。


5、WiFi模块

在my_wifi.h文件中初始化wifi功能。


6、common文件

在my_common.h文件中定义各个模块共同调用的参数。


7、核心逻辑代码文件

        在esp32_ai_llm.h文件中编码实现调用各个模块接口代码,把各个模块功能串联起来实现最终语音唤醒以及连续对话的功能。

        流式语音识别逻辑目前在该文件中,后续会摘出来单独作为一个模块。

整体流程已经基本调通,效果展示后面拍好视频后补上来。

各模块源码无保留在第五章节,loop()函数各位老铁自己调用模块接口实现。

从无到有实现目前的效果,有参考其他大佬的帖子,也有自己摸索实现的部分,知识劳动成果,实属不易。

如果需要技术支持,欢迎骚扰(+v:Sw-striving)!

文章来源于互联网:esp32s3文心一言/豆包(即火山引擎)大模型实现智能语音对话–流式语音识别

相关推荐: ESP32开发进阶:1.接入文心一言

一、百度智能控制台         网址:百度智能云控制台 (baidu.com)         首先,创建应用        其它什么都不要点,就把“应用名称”和”应用描述”填了就行,然后“确认”         接着,选API文档           弹…

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:Ai探索者,转载请注明出处:https://javaforall.net/266896.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月12日 下午6:33
下一篇 2026年3月12日 下午6:33


相关推荐

关注全栈程序员社区公众号