小智AI -- ESP32-S3 DIY面包板WIFI-LCD彩屏

DIY 所需硬件

  • 开发板:ESP32-S3-DevKitC-1(选择 WROOM N16R8 模组) Goouuu ESP32-S3-N16R8开发板
  • 数字麦克风:INMP441 INMP441全向麦克风模块
  • 功放:MAX98357A MAX98357 I2S 音频放大器模块
  • 腔体喇叭:8Ω 2~3W 或 4Ω 2~3W 2030腔体-4Ω3W/8Ω2WBOX蓝牙音响扬声器
  • 导线:跳线一盒,杜邦线若干 140根优质跳线 面包板线
  • 400 孔面包板 2 块 优质面包板/迷你小面包板/ 实验板
  • SPI-LCD彩屏 黄保凯中景园1.3寸 IPS液晶屏 ST7789 新款8脚
  • 6*6mm 立式 轻触开关(可选)轻触开关 中两脚 6*6*4 微动/按键开关

1. SPI-LCD彩屏(带驱动板,焊接8Pin排针)

本教程以 1.3寸 IPS LCD彩屏为例,产品参数如下:

  • 1.3寸IPS彩屏,支持 RGB 65K色显示,显示色彩丰富
  • 240X240分辨率,显示清晰
  • IPS全视角面板,超宽可视范围
  • 采用4线制SPI串行总线,需8个IO引脚即可工作

 

2. 面包板WIFI-LCD彩屏接线方案

2.1. 开发板与元件模块接线对照表

注意:接线请按照表格的引脚进行接线,对应开发板接线照片仅供参考。

  • 把下方表格中的 ESP32S3开发板的加粗的数字/字母引脚,和 麦克风、数字功放、LCD显示屏等加粗的英文字母引脚用导线连接起来,短接的意思就是也连导线在一起

ESP32S3开发板

麦克风 INMP441(I2S接口)

GPIO4

WS 数据选择

GPIO5

SCK 数据时钟

GPIO6

SD 数据输出

3V3

VDD 电源正 3.3V

GND

GND 接地 短接L/R 左/右声道

数字功放 MAX98357A

GPIO7

DIN 数字信号

GPIO15

BCLK 位时钟

GPIO16

LRC 左/右时钟

3V3 /3.3V

Vin(或VCC)电源输入短接SD 关机频道

GND

GND 接地 短接GAIN 增益和频道

音频+喇叭正极一般红线,不清楚问卖家、或用万用表测或其他方法)

音频-喇叭负极

显示屏(SPI-LCD 8Pin接口)

GND

GND 接地

3V3

VCC 电源正

GPIO21

SCL 时钟线

GPIO47

SDA 数据信号

GPIO45

RES 复位

GPIO40

DC 数据选择

GPIO41

CS 片选

GPIO42

BLK 背光

2.2. ESP32-S3-DevKitC-1 开发板版本2(GOOUUU 果云版 42 IO引脚)LCD屏接线图

  • ESP32-S3果云 42 引脚开发板面包板DIY,请参考下图接线:

3. Windows搭建 ESP IDF 5.4开发环境以及编译小智

3.1. Windows 平台工具链的标准设置

ESP32 ESP-IDF Windows 平台工具链的标准设置-CSDN博客

3.2. 编译小智

3.2.1. 下载源码

进入虾哥代码主页:https://github.com/78/xiaozhi-esp32, 点击Code - Download ZIP

电脑装了git的话,建议还是用命令

git clone git@github.com:78/xiaozhi-esp32.git #虾哥Github
git clone https://gitee.com/zexuntec/xiaozhi-esp32.git #Gitee 每周同步一次虾哥Github

进入终端,打开IDF 5.4或者双击桌面的ESP IDF5.4 Powershell

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.Install the latest PowerShell for new features and improvements! https://aka.ms/PSWindowsSetting PYTHONNOUSERSITE, was not set
Using Python in D:\workspace\Espressif\python_env\idf5.4_py3.11_env\Scripts
Python 3.11.2
Using Git in D:\workspace\Espressif\tools\idf-git\2.44.0\cmd
git version 2.44.0.windows.1
Activating ESP-IDF 5.4
* Checking python version ... 3.11.2
* Checking python dependencies ... OK
* Deactivating the current ESP-IDF environment (if any) ... OK
* Establishing a new ESP-IDF environment ... OK
* Identifying shell ... powershell.exe
* Detecting outdated tools in system ... Found tools that are not used by active ESP-IDF version.
For removing old versions of idf-driver, idf-python-wheels use command 'python.exe D:\workspace\Espressif\frameworks\esp-idf-v5.4\tools\idf_tools.py uninstall'
To free up even more space, remove installation packages of those tools.
Use option python.exe D:\workspace\Espressif\frameworks\esp-idf-v5.4\tools\idf_tools.py uninstall --remove-archives.Done! You can now compile ESP-IDF projects.
Go to the project directory and run:idf.py buildPS D:\workspace\Espressif\frameworks\esp-idf-v5.4>cd D:\workspace\xiaozhi-esp32\

3.2.2. 设置芯片类型

默认的编译芯片是ESP32的,所以自己的板子是S3的话一定要输入以下命令把芯片设置为S3, idf.py set-target esp32s3

 idf.py set-target esp32s3

如果你使用的芯片是ESP32C3的话,需要输入 idf.py set-target esp32c3先把芯片类型设置为C3,再去menuconfig里选择对应的板子类型。

PS D:\workspace\xiaozhi-esp32> idf.py set-target esp32s3
Adding "set-target"'s dependency "fullclean" to list of commands with default set of options.
Executing action: fullclean
Build directory 'D:\workspace\xiaozhi-esp32\build' not found. Nothing to clean.
Executing action: set-target
Set Target to: esp32s3, new sdkconfig will be created.
Running cmake in directory D:\workspace\xiaozhi-esp32\build
Executing "cmake -G Ninja -DPYTHON_DEPS_CHECKED=1 -DPYTHON=D:\workspace\Espressif\python_env\idf5.4_py3.11_env\Scripts\python.exe -DESP_PLATFORM=1 -DIDF_TARGET=esp32s3 -DCCACHE_ENABLE=1 D:\workspace\xiaozhi-esp32"...
-- Found Git: D:/workspace/Espressif/tools/idf-git/2.44.0/cmd/git.exe (found version "2.44.0.windows.1")
-- ccache will be used for faster recompilation
-- The C compiler identification is GNU 14.2.0
-- The CXX compiler identification is GNU 14.2.0
-- The ASM compiler identification is GNU
-- Found assembler: D:/workspace/Espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/xtensa-esp32s3-elf-gcc.exe
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: D:/workspace/Espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/xtensa-esp32s3-elf-gcc.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: D:/workspace/Espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/xtensa-esp32s3-elf-g++.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Building ESP-IDF components for target esp32s3
NOTICE: Dependencies lock doesn't exist, solving dependencies.
....................................NOTICE: Updating lock file at D:\workspace\xiaozhi-esp32\dependencies.lock
NOTICE: Processing 24 dependencies:
NOTICE: [1/24] 78/esp-ml307 (1.7.2)
NOTICE: [2/24] 78/esp-opus (1.0.4)
NOTICE: [3/24] 78/esp-opus-encoder (2.1.0)
NOTICE: [4/24] 78/esp-wifi-connect (2.3.1)
NOTICE: [5/24] 78/esp_lcd_nv3023 (1.0.0)
NOTICE: [6/24] 78/xiaozhi-fonts (1.3.2)
NOTICE: [7/24] espressif/button (3.5.0)
NOTICE: [8/24] espressif/cmake_utilities (0.5.3)
NOTICE: [9/24] espressif/esp-dsp (1.4.12)
NOTICE: [10/24] espressif/esp-sr (2.0.2)
NOTICE: [11/24] espressif/esp_codec_dev (1.3.4)
NOTICE: [12/24] espressif/esp_io_expander (1.0.1)
NOTICE: [13/24] espressif/esp_io_expander_tca9554 (2.0.0)
NOTICE: [14/24] espressif/esp_io_expander_tca95xx_16bit (2.0.0)
NOTICE: [15/24] espressif/esp_lcd_gc9a01 (2.0.2)
NOTICE: [16/24] espressif/esp_lcd_ili9341 (1.2.0)
NOTICE: [17/24] espressif/esp_lcd_panel_io_additions (1.0.1)
NOTICE: [18/24] espressif/esp_lcd_spd2010 (1.0.2)
NOTICE: [19/24] espressif/esp_lcd_st77916 (1.0.1)
NOTICE: [20/24] espressif/esp_lvgl_port (2.4.4)
NOTICE: [21/24] espressif/led_strip (2.5.5)
NOTICE: [22/24] lvgl/lvgl (9.2.2)
NOTICE: [23/24] waveshare/esp_lcd_sh8601 (1.0.2)
NOTICE: [24/24] idf (5.4.0)
-- Project sdkconfig file D:/workspace/xiaozhi-esp32/sdkconfig
C:\Users\ADMINI~1\AppData\Local\Temp\kconfgen_tmp42_640bb:16: warning: ignoring malformed line 'ESP_TASK_WDT_TIMEOUT_S=10'
Loading defaults file D:/workspace/xiaozhi-esp32/sdkconfig.defaults...
Loading defaults file D:/workspace/xiaozhi-esp32/sdkconfig.defaults.esp32s3...
-- Compiler supported targets: xtensa-esp-elf
-- Found Python3: D:/workspace/Espressif/python_env/idf5.4_py3.11_env/Scripts/python.exe (found version "3.11.2") found components: Interpreter
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Performing Test C_COMPILER_SUPPORTS_WFORMAT_SIGNEDNESS
-- Performing Test C_COMPILER_SUPPORTS_WFORMAT_SIGNEDNESS - Success
-- App "xiaozhi" version: 1.5.1
-- Adding linker script D:/workspace/xiaozhi-esp32/build/esp-idf/esp_system/ld/memory.ld
-- Adding linker script D:/workspace/xiaozhi-esp32/build/esp-idf/esp_system/ld/sections.ld.in
-- Adding linker script D:/workspace/Espressif/frameworks/esp-idf-v5.4/components/esp_rom/esp32s3/ld/esp32s3.rom.ld
-- Adding linker script D:/workspace/Espressif/frameworks/esp-idf-v5.4/components/esp_rom/esp32s3/ld/esp32s3.rom.api.ld
-- Adding linker script D:/workspace/Espressif/frameworks/esp-idf-v5.4/components/esp_rom/esp32s3/ld/esp32s3.rom.bt_funcs.ld
-- Adding linker script D:/workspace/Espressif/frameworks/esp-idf-v5.4/components/esp_rom/esp32s3/ld/esp32s3.rom.libgcc.ld
-- Adding linker script D:/workspace/Espressif/frameworks/esp-idf-v5.4/components/esp_rom/esp32s3/ld/esp32s3.rom.wdt.ld
-- Adding linker script D:/workspace/Espressif/frameworks/esp-idf-v5.4/components/esp_rom/esp32s3/ld/esp32s3.rom.version.ld
-- Adding linker script D:/workspace/Espressif/frameworks/esp-idf-v5.4/components/esp_rom/esp32s3/ld/esp32s3.rom.newlib.ld
-- Adding linker script D:/workspace/Espressif/frameworks/esp-idf-v5.4/components/soc/esp32s3/ld/esp32s3.peripherals.ld
-- ESP_LCD_NV3023: 1.0.0
-- BUTTON: 3.5.0
-- ESP_LCD_GC9A01: 2.0.2
-- ESP_LCD_ILI9341: 1.2.0
-- ESP_LCD_PANEL_IO_ADDITIONS: 1.0.1
-- ESP_LCD_SPD2010: 1.0.2
-- ESP_LCD_ST77916: 1.0.1
-- LVGL version: 9.2.2
-- ESP_LCD_SH8601: 1.0.2
-- Component idf::main will be linked with -Wl,--whole-archive
......
......
-- Configuring done (52.8s)
-- Generating done (3.0s)
-- Build files have been written to: D:/workspace/xiaozhi-esp32/build
PS D:\workspace\xiaozhi-esp32>

3.2.3. 更换编译板子类型

默认编译出的固件是面包板的,如果需要更换板子,需要输入idf.py menuconfig

idf.py menuconfig

进入Xiaozhi Assistant选项

选Board Type选项, 选“面包板新版接线(WiFi + LCD)”

选LCD Type选项, 选“ST7789, 分辨率240*240,8PIN”

选择需要编译的板子固件后按键盘的‘S’键保存 然后Esc退出menuconfig

3.2.4. 开始编译

再次输入idf.py build进行编译

idf.py build
Executing action: all (aliases: build)
Running ninja in directory D:\workspace\xiaozhi-esp32\build
Executing "ninja all"...
[0/1] Re-running CMake...
-- ccache will be used for faster recompilation
-- Building ESP-IDF components for target esp32s3
NOTICE: Processing 24 dependencies:
NOTICE: [1/24] 78/esp-ml307 (1.7.2)
NOTICE: [2/24] 78/esp-opus (1.0.4)
NOTICE: [3/24] 78/esp-opus-encoder (2.1.0)
NOTICE: [4/24] 78/esp-wifi-connect (2.3.1)
NOTICE: [5/24] 78/esp_lcd_nv3023 (1.0.0)
NOTICE: [6/24] 78/xiaozhi-fonts (1.3.2)
NOTICE: [7/24] espressif/button (3.5.0)
NOTICE: [8/24] espressif/cmake_utilities (0.5.3)
NOTICE: [9/24] espressif/esp-dsp (1.4.12)
NOTICE: [10/24] espressif/esp-sr (2.0.2)
NOTICE: [11/24] espressif/esp_codec_dev (1.3.4)
NOTICE: [12/24] espressif/esp_io_expander (1.0.1)
NOTICE: [13/24] espressif/esp_io_expander_tca9554 (2.0.0)
NOTICE: [14/24] espressif/esp_io_expander_tca95xx_16bit (2.0.0)
NOTICE: [15/24] espressif/esp_lcd_gc9a01 (2.0.2)
NOTICE: [16/24] espressif/esp_lcd_ili9341 (1.2.0)
NOTICE: [17/24] espressif/esp_lcd_panel_io_additions (1.0.1)
NOTICE: [18/24] espressif/esp_lcd_spd2010 (1.0.2)
NOTICE: [19/24] espressif/esp_lcd_st77916 (1.0.1)
NOTICE: [20/24] espressif/esp_lvgl_port (2.4.4)
NOTICE: [21/24] espressif/led_strip (2.5.5)
NOTICE: [22/24] lvgl/lvgl (9.2.2)
NOTICE: [23/24] waveshare/esp_lcd_sh8601 (1.0.2)
NOTICE: [24/24] idf (5.4.0)
-- Project sdkconfig file D:/workspace/xiaozhi-esp32/sdkconfig
C:\Users\ADMINI~1\AppData\Local\Temp\kconfgen_tmpbmqhc7y0:16: warning: ignoring malformed line 'ESP_TASK_WDT_TIMEOUT_S=10'
Loading defaults file D:/workspace/xiaozhi-esp32/sdkconfig.defaults...
Loading defaults file D:/workspace/xiaozhi-esp32/sdkconfig.defaults.esp32s3...
-- Compiler supported targets: xtensa-esp-elf
-- App "xiaozhi" version: 1.5.1
......
......
-- ESP_LCD_NV3023: 1.0.0
-- BUTTON: 3.5.0
-- ESP_LCD_GC9A01: 2.0.2
-- ESP_LCD_ILI9341: 1.2.0
-- ESP_LCD_PANEL_IO_ADDITIONS: 1.0.1
-- ESP_LCD_SPD2010: 1.0.2
-- ESP_LCD_ST77916: 1.0.1
-- LVGL version: 9.2.2
-- ESP_LCD_SH8601: 1.0.2
......
......
-- Configuring done (15.6s)
-- Generating done (1.7s)
-- Build files have been written to: D:/workspace/xiaozhi-esp32/build
[5/1890] Move and Pack models...
Recommended model partition size: 285K
[11/1890] Generating ../../partition_table/partition-table.bin
Partition table binary generated. Contents:
*******************************************************************************
# ESP-IDF Partition Table
# Name, Type, SubType, Offset, Size, Flags
nvs,data,nvs,0x9000,16K,
otadata,data,ota,0xd000,8K,
phy_init,data,phy,0xf000,4K,
model,data,spiffs,0x10000,960K,
ota_0,app,ota_0,0x100000,6M,
ota_1,app,ota_1,0x700000,6M,
*******************************************************************************
......
......
[1888/1890] Generating binary image from built executable
esptool.py v4.8.1
Creating esp32s3 image...
Merged 2 ELF sections
Successfully created esp32s3 image.
Generated D:/workspace/xiaozhi-esp32/build/xiaozhi.bin
[1889/1890] C:\Windows\system32\cmd.exe /C "cd /D D:\works...on-table.bin D:/workspace/xiaozhi-esp32/build/xiaozhi.bin"
xiaozhi.bin binary size 0x360920 bytes. Smallest app partition is 0x600000 bytes. 0x29f6e0 bytes (44%) free.Project build complete. To flash, run:idf.py flash
oridf.py -p PORT flash
PS D:\workspace\xiaozhi-esp32>

3.2.5. 如何修改唤醒词

输入idf.py menuconfig进入配置界面

键盘上下选择“ESP Speech Recognition”

选择“Load Multiple Wake Words”

选择任意唤醒词后按Enter确定后按键盘的'S'保存退出

3.2.6. 如何修改websocket api接口

输入idf.py menuconfig进入配置界面

键盘上下选择“Xiaozhi Assistant”

选择“Websocket”确定

输入自己的api地址后保存退出重新编译

3.3. 配网步骤

(1)连接Xiaozhi-XXXX热点

使用手机或电脑连接到设备的 WiFi 网络,通常以 Xiaozhi-XXXX 命名。选中并连接,等待几秒wifi热点连接成功,将自动进入选择界面,请勿提前手动关闭界面,如下图示:

注意:

如果程序没有自动打开浏览器访问 http://192.168.4.1/,请在确保无线局域网(WIFI)连接的网络是 Xiaozhi-XXXXXX 不要切换,使用浏览器 地址栏输入网址 http://192.168.4.1/ 进入设备的网络配置页面。

(2)选择并配置WIFI

请在小智热点扫描到的2.4G网络中,选择用户自己家或办公室的WIFI网络(不用手动输入wifi名称SSID),选择名称后会自动填写。

在密码输入框中输入当前选择的wifi密码,点击 连接 按钮提交即可(如果是手机已经保存过的密码会自动提交)。

注意:打开wifi扫描页面会有点慢,请等待5秒左右,请勿取消或关闭页面。

(3)连接并重启设备

在网络配置页面上,选择 WiFi 名称(仅支持 2.4G,iPhone 热点要打开“最大兼容性”选项),SSID将会自动填写,在下方输入密码,然后点击 “连接” 按钮(如上图所示)。

如果 WiFi 名称和密码正确,设备将自动连接到 Wi-Fi,并显示 登录 成功标志,表示已经配置网络成功,设备将在 3 秒后自动重启。

重新启动后设备将会自动连接刚才配置的WIFI网络。

如果配置失败,请检查 WiFi 名称和密码是否正确,或者尝试重新配置

3.4. 如何添加新设备到管理后台

你的设备在WI-FI或4G联网后,需要到 小智AI聊天机器人-控制面板 添加设备验证通过,才能正常使用设备进行AI语音聊天,请按照以下步骤操作:

请先确保设备已连接到互联网,通过“你好,小智”唤醒,并出现要求添加设备的提示语6位设备验证码(可以重复唤醒重听)。

如使用不带离线唤醒的设备,如esp32-C3系列开发板或产品,请使用按键唤醒设备,进行通信,根据语音播报或屏幕显示的6位验证码,到小智AI控制面板添加设备。

注意:如果用户没有听到语音播报,喇叭没有发声,面包板方案用户请检查功放和喇叭接线是否正常,使用第三方开发板用户请检查固件是否匹配且正常运行。

电脑浏览器访问 小智AI聊天机器人-控制面板 后台:https://xiaozhi.me ,如未注册请先注册账号。

第一步:先创建智能体

智能体说明:是指具备人工智能(AI)能力的自主实体,能够感知环境、处理信息、做出决策并执行行动,以完成特定目标或任务。通常具备交互能力、感知能力、学习和适应能力、自主性、目标性等特征。

小智AI智能体是物理实体(设备终端及固件)+虚拟实体(后台服务端)结合体,目前主要用于AI聊天机器人、IOT物联网设备控制、学习教育、智能助手等领域。

注意:一个小智AI智能体可以在多个设备终端中连接使用,比如你放在家里的小智AI设备和放在公司的小智AI设备共用一个智能体,对应相同的AI角色和配置以及记忆体等。

在页面左侧导航下方点击 “+新建智能体”

确定提交后,新建智能体完成后,出现在智能体列表中,如下图示:

第二步:添加新设备

首次添加设备:请在智能体模块上选择“添加设备”按钮,点击进入“添加新设备”入口。

输入提示语中告知6位数字的设备 ID,然后点击“添加设备”按钮,如下图示。

已经添加过设备:请点击对应智能体模块下方 “设备管理” 进入设备列表页面,再通过右侧 “+添加设备” 按钮添加新设备,如下图示:

设备添加后将自动激活,并显示在“设备管理”列表页面上,如上图示,就可以正常使用了,目前测试服务器暂时免费。你可以和你的智能AI 女友聊天了。

3.5. 常见问题

乱码~2级菜单有重叠

按照下面顺序:时间和语言->语言和区域->管理语言设置->更改系统区域设置->勾选Beta版本->确认->重启

 4. 参考文献

GitHub - 78/xiaozhi-esp32: An MCP-based chatbot | 一个基于MCP的聊天机器人

小智 AI 聊天机器人百科全书 - 飞书云文档

面包板ESP32-S3 DIY教程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/88435.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/88435.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

家用网络进行DNS优选

家用网络进行DNS优选的好处主要体现在以下几个方面: 提升网络访问速度: DNS优选通过选择响应时间更快的DNS服务器,减少域名解析的延迟,从而加快网页加载和应用访问速度。尤其在访问国内外网站时,选择合适的DNS服务器可…

刷题 | 牛客 - js中等题-下 (更ing)45/54知识点解答

JS45 数组去重 描述 为 Array 对象添加一个去除重复项的方法 示例1 输入: [false, true, undefined, null, NaN, 0, 1, {}, {}, a, a, NaN] 复制输出: [false, true, undefined, null, NaN, 0, 1, {}, {}, a] Array.prototype.uniq function () …

vue3使用krpano1.22

官方文档链接 https://krpano.com/docu/js/#top 例子 https://krpano.com/releases/1.22/viewer/examples/javascript-interface/js-api-examples.html https://krpano.com/viewsource.html?releases/1.22/viewer/examples/javascript-interface/js-api-examples.html 注…

2025年AI面试推荐榜单,数字化招聘转型优选

一、AI面试为何成为2025招聘标配? 2025年企业对AI面试的需求从“效率工具”升级为“战略级招聘伙伴”。数据显示,超7成企业计划年内全面引入AI面试,其中技术岗、全球化招聘及蓝领用工场景需求增速显著。以下以综合技术实力、行业口碑及落地能…

人机协作新篇章:艾利特按摩机器人如何重塑健康生活

引言:按摩机器人的需求爆发 在快节奏的现代生活中,亚健康人群比例持续攀升。据《全球健康产业白皮书》显示: 85%的都市人群存在肌肉劳损问题专业理疗师供需缺口达1:3200精准按摩服务成本年均增长18% 这一背景下,按摩…

从代码学习深度学习 - 情感分析:使用循环神经网络 PyTorch版

文章目录 前言1. 加载与预处理数据集数据读取与词元化构建词汇表截断、填充与数据迭代器2. 构建循环神经网络模型双向RNN模型(BiRNN)详解权重初始化3. 加载预训练词向量构建词向量加载器将预训练向量注入模型4. 训练与评估模型定义训练函数可视化训练过程5. 模型预测编写预测…

化于无形的 lambda 语法

针对数据集合的每个成员进行计算是很常见的任务,用循环语句当然能实现,但比较麻烦,算个简单的求和都要写很多句代码。 编程语言经常把这些运算封装成函数,比如 Python 的 sum 函数,求订单价格总和是这样写的&#xff…

day42

1. 回调函数:把一个函数当成“任务清单”交给另一个函数,等后者干完活,就按清单执行这个函数。比如点外卖后留电话,骑手送到了就打电话(执行回调)通知你。 2. lambda函数:临时写的超短函数&…

百度日志中台前端重构实践

日志中台是百度内部针对打点数据的全生命周期管理平台,作为公司日志数据的唯一入口,承担以下核心职能:1.功能覆盖:提供从数据采集、传输、存储到查询分析的一站式服务,支持产品运营分析、研发性能监控、运维管理等多元…

資訊安全 (Information Security)3大 “CIA“要素

資訊安全之3大要素,業界慣用"CIA"稱之,包括機密性 (Confidentiality)、完整性(Integrity)與可用性(Availability);更應增加諸如鑑別性、可歸責性、不可否認性與可靠性。 1.機密性 (Confidentiality) 機密性是指採用適當的安全機制…

php后台增加权限控制

背景 最近在对接某大厂,部署差不多了,但是在漏洞扫描环节有问题,前端是用vue代码写的。后端是php。发现前端路由可以拦截未登录的url。但是后端php接口不用登录就能访问,很危险 解决方法 一、创建 Auth 中间件 首先创建一个专门…

跨平台后端编程ASP.NET CORE Razor新一代Web开发框架C#

asp.net core Razor动态语言编程代替asp.net .aspx更高级吗? https://blog.csdn.net/xiaoyao961/article/details/148846065 C#Blazor应用-跨平台WEB开发VB.NET-CSDN博客 https://blog.csdn.net/xiaoyao961/article/details/148846437 Products.razor文件,Blazor和…

Storm-Pulse 全国强对流预报接口深度解析:从技术原理到防灾应用(附API接入示例)

2025年6月14日安徽省气象台发布的强对流黄色预警中,合肥、阜阳等地出现了小时雨量 30-50 毫米的短时强降水和8-10级雷暴大风,局地甚至观测到云闪现象。强对流天气是指由强烈上升气流引发的突发性、高破坏力天气现象,涵盖了短时强降水、雷暴大…

2024中国科学技术大学计算机保研上机真题

中国科学技术大学计算机保研上机真题 在线测评链接:https://pgcode.cn/problem 运动会比赛日程安排 题目描述 某运动会设立 M M M 个比赛项目,每个运动员(共 N N N 个运动员)可以参加多个项目,每个项目的比赛时长…

(LeetCode 面试经典 150 题) 122. 买卖股票的最佳时机 II (贪心)

题目&#xff1a;122. 买卖股票的最佳时机 II 思路&#xff1a;贪心&#xff0c;时间复杂度0(n)。 当天比前一天值大&#xff0c;就进行卖出的交易。购入是默认前一天已购入。 C版本&#xff1a; class Solution { public:int maxProfit(vector<int>& prices) {int…

一篇文章了解XML

一、什么是 XML&#xff1f; XML 是一种结构化数据的标记语言&#xff0c;用来存储、传输和描述数据。 它和 HTML 很像&#xff0c;但它的标签是自定义的&#xff0c;不限定格式和外观&#xff0c;而是强调数据的结构和含义。 XML不是用来展示数据的&#xff0c;HTML是用来展…

react经验:i18n配置换行的富文本

应用场景 调用"useTranslations().rich"输出换行的文本。 实施步骤 1.翻译文件 例如:zh.json {"home":"第一行<br></br>第二行<font>加粗文本</font>" }2.调用rich处理标签 t.rich(home, { br: () > <br /&g…

Wpf中控件作为Binding的源

1、Xaml代码 Slider 滑动控件&#xff0c;设置了最小值0和最大值100&#xff0c;TextBox作为Binding的目标对象&#xff0c;它的Text属性作为Binding目标的属性&#xff0c;Binding的源的Source就是slider_test这个Slider滑动控件&#xff0c;Binding的源的Path就是slider_test…

【机器学习深度学习】典型的模型训练过程

目录 一、模型训练直观图 二、核心目标 三、训练过程详解 3.1 训练阶段 1、准备起点&#xff1a;输入数据 初始参数权重 2、模型尝试预测&#xff1a;变换计算 (前向传播) 3、检查错误&#xff1a;计算损失值 4、学习的关键&#xff1a;反向传播 梯度下降法 (调整权…

Mysql8.0版本未卸载干净如何重新下载

Mysql8.0版本未卸载干净如何重新下载 安装前准备 清理现有安装&#xff08;确保干净环境&#xff09; :: 停止并卸载现有MySQL服务 net stop MySQL >nul 2>&1 sc delete MySQL >nul 2>&1:: 删除旧数据目录 rd /s /q "C:\ProgramData\MySQL" &…