【STM32项目开发】离线语音控制解决方案——雷龙LSYT201B模组

AI芯片与离线语音交互 介绍离线语音交互方案,从端侧芯片功能、端侧常见技术等角度剖析方案要点 阅读详情

目录

【引言】

 一、硬件选型

二、项目实现

1.模块配置

2.硬件连接

3.软件编程

       1)串口配置

       2)指令解析

       3)设备控制

结语


【引言】

       智能家居的浪潮正席卷而来,为我们的生活带来了前所未有的便捷与乐趣。而语音识别技术,作为智能家居的重要组成部分,正逐步成为我们与家居设备交互的新方式。

       本文将利用一款性能出色且易于上手的语音识别芯片,只需利用STM32的串口通信功能,便可实现语音控制风扇的智能化应用。想象一下,只需简单的一句话,就能轻松控制风扇的开关和风速调节,这样的体验无疑将为我们的生活增添更多便捷与舒适。

市面上的智能风扇产品​图

 一、硬件选型

        在这个小项目中,我特别注重语音识别芯片的选择,经过多方比较和测试,最终选定了一款不仅识别准确率高,而且开发简单、易于上手的语音识别模块——LSYT201B模组。

       该模组集成了YT2228芯片,YT2228芯片是根据当前智能语音交互市场的迫切需求以及思必驰公司在算法领域的发展方向,精心定义并开发的一款“芯片+算法”相结合的人工智能人机语音交互解决方案。这款解决方案以其高性能、低功耗等显著特点,在众多同类产品中脱颖而出。

       该芯片采用了软硬件深度融合的创新方法,这种方法使得芯片能够快速、高效地赋予各类设备语音交互的能力。无论是智能家居设备、智能穿戴设备还是其他需要语音交互功能的电子产品,只需集成YT2228芯片,便能轻松实现语音控制,从而极大地提升了用户体验和产品使用的灵活性。

       在性能表现上,YT2228芯片支持家居环境下5米的远距离交互,确保用户在家庭各个角落都能与设备进行顺畅的语音交流。同时,该芯片在本地最多可识别150个词汇,涵盖了日常生活中的大部分常用指令和词汇,满足用户多样化的需求。此外,YT2228还具备多轮交互能力,能够与用户进行连续、自然的对话,进一步提升语音交互的流畅性和智能化水平。

该芯片的详细特性参数如下:

处理器
32 位处理器,支持 FPU (Hardware Float Point Unit)
运行频率:240MHz
内置 2MB Flash
64 向量中断
4 级别中断优先级

外设
全速 USB 设备,支持 USB1.1
四个多功能 16 位定时器,支持捕获和 PWM 模式
三个 16 位 PWM 发生器用于电机驱动
三个全双工基本 UART,UART0 和 UART1 支持 DMA 模式
两个 SPI 接口支持主机模式和设备模式
一个硬件 IIC 接口,支持主机模式和设备模式
内置 Cap Sense Key 控制器
10 位 ADC 模拟采样
所有 GPIO 支持外部唤醒/中断

音频
两通道 16-bit DAC, SNR >= 95dB
一通道 16-bit ADC , SNR >= 90dB
采样率支持:8Hz/11.025KHz/16KHz/22.05KHz/24KHz/
32KHz/44.1KHz/48KHz
一个模拟 MIC 放大器,内置 MIC 偏置发生器
在 DAC 路径上支持无输出电容模式,单端和差分模式

蓝牙
支持蓝牙 V5.3 +BR+ EDR +BLE 规范
满足 class1,class2 和 class3 输送功率的要求
支持 GFSK 和π/4 DQPSK 所有数据包类型
提供最大发射功率+6dbm
接收器最小灵敏度-90dBm
快速 ADC 增强动态范围
支持 a2dp 1.3.2\avctp 1.4\avdtp 1.3\ avrcp 1.6.2\hfp 1.8 \spp 1.2\ rfcomm 1.1\pnp 1.3\hid 1.1.1\sdp core5.3\l2cap core 5.3

电源
VBAT 主供电 DC:3.0-5.5V
VDDIO 接口电平,输出,50mA@ 2.2-3.6V

封装
SSOP28(0.635)/QSOP28

温度
工作温度: -40 ℃ to +85 ℃
存储温度 -65 ℃ to +150 ℃

二、项目实现

1.模块配置

      LSYT201B模组为离线语音识别模组,首先我们需要自定义唤醒、命令词,配置唤醒词,配置好词条后厂家会根据内容进行定制,我这里定义了以下词条,另外值得一提的是,该芯片最大可支持150个词条自定义。

      定义好所需词条后,当用户触发已有的词条指令,麦克风接收到语音信号由芯片进行处理,进行相应的语言播报,并通过串口向STM32单片机发送指令,单片机收到数据后便可进行相应的控制工作。

       比如:用户触发“你好小龙”的唤醒词,模块连接的扬声器会播报应答语“我在”,同时语音模块的串口会输出“FE 04 00 01 03 FD”,同理,当触发其他关键词时,单片机只需通过解析语音模块串口输出的字符串就可以获取到用户的指令并进行对应的操作,如开/关风扇、调高/低档位等。
        

2.硬件连接

       LSYT201B模组与STM32连接非常简单,只需要将STM32串口的信号线TX和RX与语音模块的RX和TX进行连接,便可进行通信传输。 

       LSYT201B模组实物图

       模组尺寸为 34.22*18.16 ±0.3MM

       LSYT201B模组引脚图

       

    STM32与LSY201B模组连接示意图

    本项目使用STM32C8T6最小系统板的串口2与LSY201B语音模组进行通信

    将STM32的USART2的发送信号线TXD(PA2)和LSY201B模组的接收信号线RX连接

    将STM32的串口2的发送信号线RXD(PA3)和LSY201B模组的发送信号线TX连接

3.软件编程

       代码此处不做展示,如有需要可关注后私信我获取,这里分享一下编程思路。

       1)串口配置

        配置串口2为异步通信模式,帧格式为8位数据位、1位停止位、无流控制,并开启串口中断。

       2)指令解析

         利用串口接收中断,将接收到的数据存储到数组中,并对接收到的数据进行解析。

       3)设备控制

        根据解析出来的指令结果,匹配控制动作,通过IO输出控制风扇开关或通过PWM调节风扇转速。

结语

       希望通过本项目的开发,能让大家直观感受到离线语音识别技术为日常生活带来的便捷与乐趣。 随着语音识别技术的不断进步和普及,更多的智能设备将融入我们的生活,未来为我们带来前所未有的舒适与便利。LSYT201B模组以其强大功能与易用性,也能帮助大家探索出更多有趣的应用场景,感兴趣的小伙伴快去定制一块玩玩吧。

   

【雷龙发展】使用YT2228语音芯片做一台智能台灯 * ----------------------------------- 宏定义 ----------------------------------- *//* ---------------------------------- 类型定义 ---------------------------------- */首先通过用户手册查看模块的串口通讯协议。采样率: 支持8KHz、11.025KHz、16KHz、22.05KHz、24KHz、32KHz、44.1KHz、48KHz的音频采样率。 阅读详情

相关推荐

【雷龙发展】基于YT2228语音芯片的智能台灯开发实战:从硬件选型到语音控制实现

本文详细介绍了基于雷龙发展YT2228语音芯片的智能台灯开发全过程。从选择YT2228实现离线AI语音交互的选型思路,到硬件连接、语音词条定制,再到STM32核心代码解析与调试技巧,为开发者提供了一套完整的离线语音控制智能台灯实战方案。

weixin_29185199的博客 327

【雷龙科技】使用YT2228语音模块做一台智能台灯

YT2228 是根据智能语音交互市场需求及思必驰算法的发展方向定义开发的 “芯片+算法”人工智能人机语音交互解决方案,具有高性能、低功耗等特点。架构: 32位处理器,支持硬件浮点运算单元(FPU)。运行频率: 240MHz。存储: 内置2MB闪存(FLASH)。中断系统: 提供64个中断向量,支持4级中断优先级。

m0_74401766的博客 1542

DIY智能台灯:用YT2228语音芯片实现声控调光(附完整代码)

本文详细介绍了如何利用YT2228语音芯片DIY一款智能声控调光台灯。通过剖析YT2228芯片的PWM调光原理,提供完整的硬件接线方案与STM32核心代码,实现“亮一点”、“阅读模式”等离线语音控制及平滑调光功能,并探讨了抗干扰优化与扩展玩法,为创客和硬件爱好者提供低成本、高自由度的智能家居实践指南。

tree8的博客 191

离线语音模块初步学习——LSYT201B(深圳雷龙发展)

离线语音模块——LSYT201B的学习使用

枫-琳的博客 1692

思必驰:离线语音识别芯片简介

本文主要介绍思必驰股份有限公司推出的一款离线语音识别芯片。该芯片是根据智能语音交互市场需求及思必驰算法的发展方向定义开发的“芯片+算法”人工智能人机语音交互解决方案,具有高性能、低功耗、低成本、高识别率、低误触发率、远距离唤醒、更强的抗噪能力、更快的响应时间、项目快速落地等优秀的特点。该芯片通过软硬融合的方法,具备快速赋予各类设备语音交互的能力,赋予设备“听”和“说”的能力,从用户说出命令到执行命令只需要0.2-0.6秒的时间,极大的提高了用户体验和产品灵活性。

llahlongsto的博客 1869

如何用YT2228语音芯片DIY智能台灯?从硬件选型到代码调试全流程解析

本文详细解析了如何基于YT2228离线语音芯片DIY智能台灯。从芯片选型、硬件电路设计、电源管理,到与STM32的串口通信、PWM调光实现及蓝牙功能集成,提供了全流程实战指南与深度调试技巧,帮助开发者快速打造响应灵敏、功能完备的语音控制智能台灯。

g5h6i的博客 957

深圳雷龙LSYT201B语音控制模组

今天拿到的语音控制板是LSYT201B模组,它是深圳市雷龙发展有限公司基于YT2228芯片开发的一款面向智能家居控制的离线语音控制模组,YT2228是一款单麦离线方案,需要预设词条,最多支持150天离线词条,使用这类模组的优势在于:用户可以快速了解、学习和测试模组的性能,通过开发板快速验证产品的可行性,降低了试错成本。雷龙还可以提供详细的技术文档、示例代码和技术支持,帮助用户更好地理解和使用产品。大大降低了用户的学习成本和技术门槛大大降低了用户的开发难度,缩短了产品的开发周期;

疯狂飙车的蜗牛的博客 1442

离线语音控制新方案:YT2228芯片在智能家居中的5种创新用法(附台灯案例)

本文深入探讨了YT2228语音芯片在智能家居中的创新应用,重点介绍了5种实用方案,包括智能台灯、窗帘控制、空调伴侣等。通过详细的技术解析和实际案例(如支持光感联动和情景模式的智能台灯),展示了这款离线语音芯片在多场景下的卓越性能与低功耗优势。

table的专栏 513

雷龙LSYT201B语言模块结合STM32使用(噪声环境也能高精度)

基于YT2228芯片开发的一款面向智能家居控制的离线语音控制模组,离线语音模块,集成蓝牙功能,可适配各种不同的应用场景,方便使用,减少开发周期。

llahlongsto的博客 1042

AIOps智能运维:从数据治理到故障自愈的实践指南

AIOps(智能运维)通过融合人工智能与运维管理,构建了感知-决策-执行的闭环体系。其核心技术包括多维度数据采集、机器学习算法和自动化执行,显著提升了告警治理、故障定位和容量预测的效率。在数据层,全量性、实时性的数据采集是基础,而算法层的异常检测和根因分析则依赖统计方法、孤立森林和LSTM等模型。AIOps尤其适用于处理告警风暴和复杂系统故障,如在电商大促中通过K-Means聚类减少92%的告警量。随着云原生和边缘计算的普及,AIOps正逐步实现与Service Mesh、Serverless等技术的深度集

weixin_30175731的博客 288

三、分区配置

rk3566/rk3568 修改分区

暮云星影的博客 514

AI智能语音识别模块(一)——离线模组介绍

这是一款低成本,低功耗,小体积的高性价比离线语音识别开发板。能快速学习、验证离线语音控制各种外设,如继电器、LED灯,PWM调光等。板载了Micro USB接口,CH340NUSB转串口芯片,高灵敏度咪头,8欧1w喇叭和拨动开关。插上USB线就能通过串口烧录程序。简单方便,是学习测试离线语音模块的好帮手。本开发板引出语音模组的所有10口,体积小巧,排针兼容面包板设计,可直接插于面包板上。该离线语音模块使用的是SU-03T语音识别模组。其功能框图如下所示。

优信电子的博客 6051

XC7Z010-1CLG400C开发板ADC引脚配置全攻略(附完整引脚列表)

本文详细解析了XC7Z010-1CLG400C开发板的ADC引脚配置方法,涵盖XADC模块基础、CLG400封装的引脚布局、硬件设计规范及Vivado工程配置实战。特别提供了完整的引脚列表和性能优化技巧,帮助开发者高效实现模拟信号采集,适用于Zynq-7000系列开发。

weixin_29188043的博客 465

雷龙语音模块-LSYT201B(语音控制电机)

语音模块是基于串口通讯的,所有只需要将语音模块的TX和RX和我们单片机交叉连接就可以了。

weixin_45739317的博客 650

RDM协议控制端实战:从数据包构造到高效设备发现算法

本文深入探讨了RDM协议控制端的核心开发流程,涵盖从数据包构造、发送到响应解析的全过程。重点解析了如何利用二分搜寻算法高效实现网络设备发现,并分享了组包、解包中的关键代码实现与常见调试技巧,为舞台灯光与智能硬件领域的嵌入式开发提供实战指导。

week9的博客 457

【RDMA】13. RDMA之用户态与内核态交互

原文:https://zhuanlan.zhihu.com/p/346708569 在“RDMA之Verbs”一文中我们说道,Verbs API分为用户态和内核态,分别以ibv_和ib_作为前缀。RDMA技术的最大的优势就在于用户态可以绕过内核,直接控制硬件收发数据,减少了系统调用和内存拷贝次数,所以大部分的RDMA应用都是用户态应用,即使用以ibv_为前缀的用户态Verbs API。 但是并非所有的用户态Verbs API都可以完全绕开内核,本文中我来讲解一下哪些API依赖于内核RDMA子系统(包括驱

我的笔记本 4285

离线语音识别芯片对比

离线语音识别芯片对比 前言 本文关注的重点是语音识别的硬件载体:语音识别芯片,特别是离线语音识别芯片。 一、 语音识别技术的原理 定义:语音识别技术(ASR Automatic SpeechRecognition),让智能设备听懂人类的语音。语音识别的工作流程,可以分为三大步骤:前端语音处理、模型训练、后端识别处理。 1.前端处理 前端处理,即将语音的模拟信号,转换成机器能读懂的数字信号,并做信号优化处理。前端处理关联硬件:麦克风、Codec/ADC、PDM\I2S、音频处理能力(NPU或DSP)以下是前端

lhh_qrsly的博客 7342

局域网tcp通信实验

IPv4 地址 . . . . . . . . . . . . : 192.168.92.79。IPv4 地址 . . . . . . . . . . . . : 192.168.92.59。子网掩码 . . . . . . . . . . . . : 255.255.255.0。子网掩码 . . . . . . . . . . . . : 255.255.255.0。使用这篇文章的小工具。

weixin_51883798的博客 433

离线语音识别芯片-开发指南及芯片规格介绍

离线语音识别芯片-开发指南及芯片规格介绍

ljs07的博客 1万+

重回童年的经典系列☀️| 【坦克大战3D版】游戏制作+解析

带你重回童年的经典系列——坦克大战3D版制作,感兴趣的可以看看呀~

努力前行,总会成为自己心中的那道光 5万+

基于 PID 算法的 STM32 步进电机高精度位置控制系统设计与实现(工业自动化应用)

硬件层面:选用 STM32F103C8T6+A4988 + 欧姆龙编码器的组合,兼顾工业可靠性与成本,接线需注意强弱电分离和信号抗干扰;软件层面:核心为位置式 PID 闭环控制,Mermaid 流程图清晰展现 “采集 - 运算 - 驱动” 的闭环逻辑,代码模块化易移植;性能层面:无负载定位误差≤±1 脉冲,带载误差≤±3 脉冲,满足工业自动化高精度位置控制需求。

weixin_42300449的博客 194

STM32入门教程:语音识别

b. 在Keil MDK的“Options for Target”菜单中,选择“C/C++”选项卡,然后添加以下代码到“Preprocessor Symbols”中: -DUSE_GPIOA c. 在Keil MDK的“Options for Target”菜单中,选择“Target”选项卡,然后选择正确的GPIO引脚(例如GPIOA)。由于语音识别的具体实现涉及到音频处理和机器学习等复杂的技术,这里无法给出完整的代码。进行语音识别: a. 根据已知的语音模型或训练好的模型,将提取到的特征与模型进行比对。

吃不胖. 1403

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

高性价比模块:LSYT201B语音模块学习使用

最近想做个语音的项目,于是我找到了这么一款模块:来自深圳雷龙发展的LSYT201B,某宝官方售价仅为19.9元,却有着很好的性能

m0_73677866的博客 1353

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

关于正点原子STM32的MDK例程移植到IAR中遇到的错误解决方法 __use_no_semihosting

在移植过程中,估计大部分人应该都又遇到这类问题,主要是usart.c和sys.c这两个文件。 现贴出修改之前和修改之后的代码: usart.c: 之前的代码: #include "sys.h" #include "usart.h" ///////////////////////////////////////////////////////////////////////////////

sean 1万+

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

上一篇: 【STM32新手扫盲】深度剖析STM32与ARM的关系
下一篇: 【STM32新手扫盲】常用库比较及使用建议(HAL库、标准库、LL库)
程亦寻
博客等级 码龄10年 5473粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程亦寻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值