当前位置: 首页 > news >正文

人机交互系统实验三 多通道用户界面

  • 实验目的和要求

1)了解常见的多通道用户界面

2)查找资料,熟悉一种多通道用户界面并写出综述

  • 实验环境

Windows10

  • 实验内容与过程

(一) 实验内容:

要求上网查找资料,熟悉一种多通道用户界面并写出综述,可以是眼动跟踪、手势识别、

三维输入、语音识别、表情识别、手写识别等。

(二)实验步骤:

1)借助图书馆的中英文参考文献资料以及网络,确定出一种多通道用户界面;

2)完成对该多通道用户界面的综述(包括定义、发展历史、当前的应用、主要的研究方法分

类、以及发展前景以及中英文参考文献(至少各5篇))

  • 实验心得

多通道用户界面综述:语音识别

    语言是人类最原始直接的一种交流方式, 通俗易懂、便于理解. 随着科技的发展, 语言交流不再只存在于人与人之间, 如何让机器“听懂”人类的语言并做出反应成为人工智能的重要课题, 语音智能交互技术应运而生. 作为其中重要一环的语音识别技术近年来不断发展, 走出了实验室, 随着人工智能进入人们的日常生活中. 当今市场上语音识别技术相关的软件、商品涉及人类生活的方方面面, 语音识别的实用性已经得到充分的印证. 如今语音识别技术已经成为人类社会智能化的关键一步, 能够极大提高人们生活的便捷度.

1 语音识别技术的发展历程

语音识别技术始于20世纪50年代, 贝尔实验室研发了10个孤立数字的语音识别系统, 此后, 语音识别相关研究大致经历了3个发展阶段. 第1阶段, 从20世纪50年代到90年代, 语音识别仍处于探索阶段. 这一阶段主要通过模板匹配—即将待识别的语音特征与训练中的模板进行匹配—进行语音识别. 典型的方法包括动态时间规整(dynamic time warping, DTW)技术和矢量量化(vector quantification, VQ). DTW依靠动态规划(dynamic programming, DP)技术解决了语音输入输出不定长的问题; VQ则是对词库中的字、词等单元形成矢量量化的码本作为模板, 再用输入的语音特征矢量与模板进行匹配. 总体而言, 这一阶段主要实现了小词汇量、孤立词的语音识别. 20世纪80年代至21世纪初为第2阶段, 这一阶段的语音识别主要以隐马尔科夫模型(hidden Markov model, HMM)为基础的概率统计模型为主, 识别的准确率和稳定性都得到极大提升. 该阶段的经典成果包括1990年李开复等研发的SPHINX系统, 该系统以GMM-HMM (Gaussian mixture model-hidden Markov model)为核心框架, 是有史以来第一个高性能的非特定人、大词汇量、连续语音识别系统. GMM-HMM结构在相当长时间内一直占据语音识别系统的主流地位, 并且至今仍然是学习、理解语音识别技术的基石. 此外, 剑桥推出了以HMM为基础的语音识别工具包HTK (hidden Markov model toolkit). 21世纪至今是语音识别的第3阶段. 这一阶段的语音识别建立在深度学习基础上, 得益于神经网络对非线性模型和大数据的处理能力, 取得了大量成果. 2009年Mohamed等提出深度置信网络(deep belief network, DBN)与HMM相结合的声学模型在小词汇量连续语音识别中取得成功. 2012年深度神经网络与HMM相结合的声学模型DNN-HMM在大词汇量连续语音识别(large vocabulary continuous speech recognition, LVCSR)中取得成功, 掀起利用深度学习进行语音识别的浪潮. 此后, 以卷积神经网络(convolutional neural network, CNN)、循环神经网络(recurrent neural network, RNN)等常见网络为基础的混合识别系统和端到端识别系统都获得了不错的识别结果和系统稳定性. 迄今为止, 以神经网络为基础的语音识别系统仍旧是国内外学者的研究热点.

2 语音识别基础

2.1 语音识别概念

语音识别是利用机器对语音信号进行识别和理解并将其转换成相应文本和命令的技术, 涉及到心理学、信号处理、统计学、数学和计算机等多门学科. 其本质是一种模式识别, 通过对未知语音和已知语音的比较, 匹配出最优的识别结果.

根据面向的应用场景不同, 语音识别存在许多不同的类型: 从对说话人的要求考虑可分为特定人和非特定人系统; 从识别内容考虑可分为孤立词识别和连续语音识别、命令及小词汇量识别和大词汇量识别、规范语言识别和口语识别; 从识别的速度考虑还可分为听写和自然语速的识别等.

2.2 传统语音识别基本原理

通常, 语音识别过程大致分为两步: 第1步, 首先对语音信号提取特定的声学特征, 然后对声学特征进行“学习”或者说是“训练”, 即建立识别基本单元的声学模型和进行语言文法分析的语言模型; 第2步是“识别”, 根据识别系统的类型选择能够满足要求的识别方法, 采用语音分析方法分析出这种识别方法所要求的语音特征参数, 按照一定的准则和测度与系统模型进行比较, 通过判决得出识别结果.

2.2.1 特征提取

通常, 在进行语音识别之前, 需要根据语音信号波形提取有效的声学特征. 特征提取的性能对后续语音识别系统的准确性极其关键, 因此需要具有一定的鲁棒性和区分性. 目前语音识别系统常用的声学特征有梅尔频率倒谱系数(Mel-frequency cepstrum coefficient, MFCC)、感知线性预测系数(perceptual linear predictive cepstrum coefficient, PLP)、线性预测倒谱系数(linear prediction cepstral coefficient, LPCC)、梅尔滤波器组系数(Mel filter bank, Fbank)等.

2.2.2 声学模型

声学模型是对等式(1)中的P(X|W)进行建模, 在语音特征与音素之间建立映射关系, 即给定模型后产生语音波形的概率, 其输入是语音信号经过特征提取后得到的特征向量序列. 声学模型整个语音识别系统中最重要的部分, 只有学好了发音, 才能顺利和发音词典、语言模型相结合得到较好的识别性能.

2.2.3 语言模型

语言模型是用来预测字符(词)序列产生的概率, 判断一个语言序列是否为正常语句, 也就是解决如何计算等式中的P(W). 传统的语言模型n-gram是一种具有强马尔科夫独立性假设的模型, 它认为任意一个词出现的概率仅与前面有限的n–1个字出现的概率有关随着深度学习的发展, 语言模型的研究也开始引入深度神经网络. 从n-gram模型可以看出当前的词组出现依赖于前方的信息, 因此很适合用循环神经网络进行建模. Bengio等将神经网络用于语言模型建模, 提出用词向量的概念, 用连续变量代替离散变量, 利用神经网络去建模当前词出现的概率与其前n–1个词之间的约束关系. 这种模型能够降低模型参数的数量, 具有一定的泛化能力, 能够较好地解决数据稀疏带来的问题, 但其对取得长距离信息仍束手无策. 为进一步解决问题, RNN被用于语言模型建模. RNNLM中隐含层的循环能够获得更多上下文信息, 通过在整个训练集上优化交叉熵来训练模型, 使得网络能够尽可能建模出自然语言序列与后续词之间的内在联系. 其优势在于相同的网络结构和超参数可以处理任意长度的历史信息, 能够利用神经网络的表征学习能力, 极大程度避免了未登录问题; 但无法任意修改神经网络中的参数, 不利于新词的添加和修改, 且实时性不高.

2.3 端到端语音识别

传统的语音识别由多个模块组成, 彼此独立训练, 但各个子模块的训练目标不一致, 容易产生误差累积, 使得子模块的最优解并不一定是全局最优解. 针对这个问题, 学者们提出了端到端的语音识别系统, 直接对等式(1)中的概率P(W|X)进行建模, 将输入的语音波形(或特征矢量序列)直接转换成单词、字符序列. 端到端的语音识别将声学模型、语言模型、发音词典等模块被容纳至一个系统, 通过训练直接优化最终目标, 如词错误率(word error rate, WER)、字错误率(character error rate, CER), 极大地简化了整个建模过程. 目前端到端的语音识别方法主要有基于连接时序分类(connectionist temporal classification, CTC)和基于注意力机制(attention model)两类方法及其改进方法.

3 语音识别的难点与热点

语音识别作为人机交互的关键技术一直是科技应用领域的研究热点. 目前, 语音识别技术从理论研究到产品的开发都已取得了很多的成果, 然而, 相关研究及应用落地仍然面临很大挑战, 具体可归纳为以下几方面:

鲁棒性语音识别: 目前, 理想条件下(低噪声加近场)的语音识别准确率已经达到一定程度. 然而, 在实际一些复杂语音环境下, 如声源远场等情景, 低信噪比、房间混响、回声干扰以及多声源信号干扰等因素, 使得语音识别任务面临很大挑战. 因此, 针对复杂环境研究鲁棒语音识别是目前语音识别领域的研究难点和热点. 

低资源语音识别: 这是对各种小语种语言识别研究的统称. 小语种不同于方言, 有独立完整的发音体系, 各异性较强但数据资源匮乏, 难以适应以汉语、英语为主的语音识别系统, 声学建模需要利用不充分的数据资源训练得到尽可能多的声学特征. 解决这一问题的基本思路可以概括为从主流语言的丰富资源中提取共性训练出可以公用的模型, 在此基础上训练小语种模型.

语音的模糊性: 各种语言中都存在相似发音的词语, 不同的讲话者存在不同的发音习惯以及口音、方言等问题, 母语者和非母语者说同一种语言也存在不同的口音, 难以针对单独的口音构建模型. 针对多口音建模的问题, 现有的方法一般可以分为与口音无关和与口音相关两大类, 其中与口音无关的模型普遍表现更好一些. 

低计算资源: 精度高效果好的神经网络模型往往需要大量的计算资源且规模巨大, 但移动设备(如手机、智能家居等)计算能力和内存有限, 难以支撑, 因此需要对模型进行压缩及加速. 目前针对深度学习模型采用的压缩方法有网络剪枝、参数量化、知识蒸馏等.

4 总结与展望4.1 总结

本文主要对语音识别的发展、系统结构研究、热点及难点进行了阐述. 目前主流的语音识别方法大多基于深度神经网络. 这些方法大体分为两类: 一类是采用一定的神经网络取代传统语音识别方法中的个别模块, 如特征提取、声学模型或语言模型等; 另一类是基于神经网络实现端到端的语音识别. 相比于传统的识别方法, 基于深度神经网络的语音识别方法在性能上有了显著的提升. 在低噪音加近场等理想环境下, 当前的语音识别技术研究已经达到了商业需求. 然而, 在实际应用中存在各种复杂情况, 如声源远场、小语种识别、说话人口音、专业语言场景等, 这些情况使得复杂场景下的语音识别应用落地仍面临挑战. 此外, 尽管当前深度学习在语音识别的应用确实提高了识别率等性能, 但效果好的模型往往规模复杂且庞大、需要的数据资源较为冗余, 不适合用于移动设备(如手机、智能穿戴设备等); 此外, 小语种、多口音、不同方言等的识别性能仍然差强人意. 总之, 当前语音识别领域已取得丰富的研究成果, 但仍有很长一段路要走.

4.2 展望

在未来很长一段时间内, 基于深度神经网络的语音识别仍是主流; 面向不同应用场景, 根据语音信号特点对现有神经网络结构进行改进仍是未来研究重点. 大体上, 未来语音识别领域的研究方向可大致归纳如下.

(1)模型压缩与加速. 尽管当前深度学习在语音识别的应用确实提高了识别率等性能, 但效果好的模型往往规模复杂且庞大、需要的数据资源较为冗余, 不适合用于移动设备(如手机、智能穿戴设备等), 因此对基于深度神经网络的语音识别系统进行网络模型压缩和加速, 将是未来语音识别的研究方向之一.

(2)数据迁移. 在面对小样本数据或复杂问题时, 迁移学习是一种有效的方式. 在语音识别领域中, 采用迁移学习的方式对小语种、方言口音或含噪语音进行识别也是未来的研究方向之一.

(3)多模态数据融合. 对于一些复杂的语音场景(高噪声、混响、多源干扰等), 可以利用语音信号和其他信号(如图像信号、振动信号等)进行融合, 以提高语音识别性能, 也是未来研究研究方向之一.

(4)多技术融合, 提高认知智能. 当前大多数语音识别算法只关注识别文字内容的正确性; 然而, 许多智能语音交互的应用(如QA问答、多轮对话等)还涉及到语义的理解. 因此, 将语音识别技术结合其他技术如自然语言处理(natural language processing, NLP)相结合以提升识别性能也是未来研究方向之一.

参考文献

[1]

Lee KF, Hon HW, Reddy R. An overview of the SPHINX speech recognition system. IEEE Transactions on Acoustics, Speech, and Signal Processing, 1990, 38(1): 35–45.

[2]

Young SJ, Young S. The HTK hidden Markov model toolkit: Design and philosophy. 1994. https://www.researchgate.net/publication/263124034

[3]

Mohamed AR, Dahl G, Hinton G. Deep belief networks for phone recognition. Nips Workshop on Deep Learning for Speech Recognition and Related Applications. 2009, 1(9): 39.

[4]

Hinton G, Deng L, Yu D, et al. Deep neural networks for acoustic modeling in speech recognition: The shared views of four research groups. IEEE Signal Processing Magazine, 2012, 29(6): 82-97. DOI:10.1109/MSP.2012.2205597

[5]

Wang D, Zhang XW. THCHS-30: A free Chinese speech corpus. arXiv: 1512.01882, 2015.

[6]

Qian YM, Bi MX, Tan T, et al. Very deep convolutional neural networks for noise robust speech recognition. IEEE/ACM Transactions on Audio, Speech, and Language Processing, 2016, 24(12): 2263-2276. DOI:10.1109/TASLP.2016.2602884

[7]

Tan T, Qian YM, Hu H, et al. Adaptive very deep convolutional residual network for noise robust speech recognition. IEEE/ACM Transactions on Audio, Speech, and Language Processing, 2018, 26(8): 1393-1405. DOI:10.1109/TASLP.2018.2825432

[8]

Hannun A, Case C, Casper J, et al. DeepSpeech: Scaling up end-to-end speech recognition. arXiv: 1412.5567, 2014.

[9]

马晗,唐柔冰,张义,等.语音识别研究综述[J].计算机系统应用,2022,31(01):1-10.DOI:10.15888/j.cnki.csa.008323.

[10]

Sriram A, Jun H, Satheesh S, et al. Cold fusion: Training Seq2Seq models together with language models. arXiv: 1708.06426v1, 2017.

[11]

Zhang WD, Zhang F, Chen W, et al. Fault state recognition of rolling bearing based fully convolutional network. Computing in Science & Engineering, 2019, 21(5): 55-63.

[12]

Zhang SL, Lei M, Yan ZJ, et al. Deep-FSMN for large vocabulary continuous speech recognition. 2018 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). Calgary: IEEE, 2018. 5869–5873.

[13]

张学工. 模式识别. 3版. 北京: 清华大学出版社, 2010.

[14]

Graves A, Mohamed AR, Hinton G. Speech recognition with deep recurrent neural networks. 2013 IEEE International Conference on Acoustics, Speech and Signal Processing. Vancouver: IEEE, 2013. 6645–6649.

[15]

Abdel-Hamid O, Mohamed AR, Jiang H, et al. Convolutional neural networks for speech recognition. IEEE/ACM Transactions on Audio, Speech, and Language Processing, 2014, 22(10): 1533-1545. DOI:10.1109/TASLP.2014.2339736

[16]

王澳回,张珑,宋文宇,等.端到端流式语音识别研究综述[J].计算机工程与应用,2023,59(02):22-33.

[17]

Peddinti V, Povey D, Khudanpur S. A time delay neural network architecture for efficient modeling of long temporal contexts. Proceedings of Interspeech 2015, 2015. 3214–3218.

[18]

Sainath TN, Vinyals O, Senior A, et al. Convolutional, long short-term memory, fully connected deep neural networks. 2015 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). South Brisbane: IEEE, 2015. 4580–4584.

[19]

Li J, Lavrukhin V, Ginsburg B, et al. Jasper: An end-to-end convolutional neural acoustic model. arXiv: 1904.03288v3, 2019.

[20]

Pundak G, Sainath TN. Highway-LSTM and recurrent highway networks for speech recognition. Proceedings of Interspeech 2017. 2017. 1303–1307.

[21]

Xiang HY, Ou ZJ. CRF-based single-stage acoustic modeling with CTC topology. 2019 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). Brighton: IEEE, 2019. 5676–5680.

[22]

Bahl LR, Jelinek F, Mercer RL. A maximum likelihood approach to continuous speech recognition. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1983, PAMI-5(2): 179-190. DOI:10.1109/TPAMI.1983.4767370

[23]

Bengio Y, Ducharme R, Vincent P, et al. A neural probabilistic language model. Journal of Machine Learning Research, 2003, 3: 1137-1155.

[24]

王庆洁. 基于拼音建模的中文语音识别算法的研究[D].电子科技大学,2024.DOI:10.27005/d.cnki.gdzku.2023.002318.

[25]

Graves A, Fernández S, Gomez F, et al. Connectionist temporal classification: Labelling unsegmented sequence data with recurrent neural networks. Proceedings of the 23rd International Conference on Machine Learning. Pittsburgh: Association for Computing Machinery, 2006. 369–376.

[26]

Bahdanau D, Cho KH, Bengio Y. Neural machine translation by jointly learning to align and translate. 3rd International Conference on Learning Representations, ICLR 2015. arXiv: 1409.0473v6, 2015.

[27]

时小虎,袁宇平,吕贵林,等.自动语音识别模型压缩算法综述[J].吉林大学学报(理学版),2024,62(01):122-131.DOI:10.13413/j.cnki.jdxblxb.2023058.

[28]

Chan W, Jaitly N, Le Q, et al. Listen, attend and spell: A neural network for large vocabulary conversational speech recognition. 2016 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). Shanghai: IEEE, 2016. 4960–4964.

[29]

Pang RM, Sainath TN, Prabhavalkar R, et al. Compression of end-to-end models. Proceedings of Interspeech 2018. Hyderabad, 2018. 27–31.

[30]

Chiu CC, Sainath TN, Wu YH, et al. State-of-the-art speech recognition with sequence-to-sequence models. 2018 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). Calgary: IEEE, 2018. 4774–4778.

实验总结

  1. 对多通道用户界面的理解
    • 通过此次实验,我系统地了解了多通道用户界面的概念和各种输入方式的特点。这些技术不仅能够提高用户体验,还可以解决一些传统交互方式中的问题。例如,语音识别可以解放用户的双手,使交互更加自然和便捷。
  2. 研究语音识别的收获
    • 在研究语音识别的过程中,我学到了其技术实现的基本流程,包括语音信号的采集、预处理、特征提取、模式匹配和后处理等。这些知识不仅让我理解了语音识别的工作原理,还使我认识到其中存在的技术挑战,如环境噪音、口音差异和数据隐私保护等。
  3. 资料查找和整合能力的提升
    • 在查找和整理资料的过程中,我学会了如何高效地获取和筛选信息,并将零散的知识整合成一篇结构清晰的综述文章。这对我今后的学习和研究工作有很大帮助。
  4. 撰写技术综述的经验
    • 撰写综述文章让我了解了如何构建一篇技术文献,从引言、技术原理、应用领域、优势与挑战到未来发展方向,层层递进,逻辑清晰。这不仅提升了我的写作能力,还增强了我的逻辑思维和表达能力。

此次实验使我对多通道用户界面有了全面的认识,特别是对语音识别技术有了深入的理解。通过查找资料和撰写综述,我不仅掌握了相关技术知识,还提升了信息整合和技术写作的能力。未来,我将继续关注多通道用户界面的发展动态,深入研究其在不同领域的应用和发展前景。

 

相关文章:

人机交互系统实验三 多通道用户界面

实验目的和要求 1)了解常见的多通道用户界面 2)查找资料,熟悉一种多通道用户界面并写出综述 实验环境 Windows10 实验内容与过程 (一) 实验内容: 要求上网查找资料,熟悉一种多通道用户界面并写出综述,可以是眼动跟踪、手势识别、 三维…...

Python(Pandas)数据分析学习

1.Pandas基本构成 引入Pandas import pandas as pd 1.Series 行 对应Excel中的一行数据,一维数据 定义Series # 第一个参数是具体数据 # 第二个参数的对应的索引下标 # 第三个参数的行名称 data pd.Series([1,2,3,4,5], index[a,b,c,d,e], namedata) print(d…...

JavaScript系列(53)--内存管理与垃圾回收机制详解

JavaScript内存管理与垃圾回收机制详解 🧹 今天,让我们深入探讨JavaScript的内存管理与垃圾回收机制。理解这些机制对于编写高性能、无内存泄漏的JavaScript应用至关重要。 内存管理基础概念 🌟 💡 小知识:JavaScrip…...

每日一题——用两个栈实现队列

用两个栈实现队列 题目描述数据范围示例 代码实现1. 代码思路push 操作:pop 操作: 2. 代码实现3. 代码解析4. 时间复杂度与空间复杂度 总结 题目描述 用两个栈来实现一个队列,使用 n 个元素来完成 n 次在队列尾部插入整数(push)和 n 次在队列…...

DeepSeek与OpenAI:谁是AI领域的更优选择?

在人工智能领域,DeepSeek和OpenAI是两个备受瞩目的玩家。尽管OpenAI凭借其强大的GPT系列模型在全球范围内获得了广泛的认可,但DeepSeek凭借其独特的技术优势和创新理念,正在逐渐成为许多企业和开发者的新选择。本文将对DeepSeek和OpenAI进行详…...

【爬虫】JS逆向解决某药的商品价格加密

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ 🐴作者:秋无之地 🐴简介:CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作,主要擅长领域有:爬虫、后端、大数据开发、数据分析等。 🐴欢迎小伙伴们点赞👍🏻、收藏⭐️、…...

deepseek v3 搭建个人知识库

目录 deepseek-r1本地部署,这个比较好,推荐 Chatbox连接ollama服务 知乎教程,需要注册: deepseek-r1本地部署,这个比较好,推荐 公司数据不泄露,DeepSeek R1本地化部署web端访问个人知识库搭建…...

ETCD集群证书生成

安装cfssl工具配置CA证书请求文件创建CA证书创建CA证书策略配置etcd证书请求文件生成etcd证书 继续上一篇文章《负载均衡器高可用部署》下面介绍一下etcd证书生成配置。其中涉及到的ip地址和证书基本信息请替换成你自己的信息。 安装cfssl工具 下载cfssl安装包 https://github…...

【软件测试项目实战】淘宝网订单管理功能

一、测试功能模块分析 选择淘宝网订单管理功能进行测试,核心子功能包含: 订单创建(商品结算、地址选择)订单状态变更(待付款、已付款、已发货、已收货、退款中)订单修改(地址修改、商品数量修…...

扩散模型(一)

在生成领域,迄今为止有几个主流的模型,分别是 GAN, VAE,Flow 以及 Diffusion 模型。 GAN:GAN 的学习机制是对抗性学习,通过生成器和判别器的对抗博弈来进行学习,这种竞争机制促使生成器不断提升生成能力&a…...

EF Core与ASP.NET Core的集成

目录 分层项目中EF Core的用法 数据库的配置 数据库迁移 步骤汇总 注意: 批量注册上下文 分层项目中EF Core的用法 创建一个.NET类库项目BooksEFCore,放实体等类。NuGet:Microsoft.EntityFrameworkCore.RelationalBooksEFCore中增加实…...

深入解析“legit”的地道用法——从俚语到正式表达:Sam Altman用来形容DeepSeek: legit invigorating(真的令人振奋)

深入解析“legit”的地道用法——从俚语到正式表达 一、引言 在社交媒体、科技圈甚至日常对话中,我们经常会看到或听到“legit”这个词。比如最近 Sam Altman 在 X(原 Twitter)上发的一条帖子中写道: we will obviously deliver …...

玩转ChatGPT:DeepSeek测评(科研思路梳理)

一、写在前面 DeepSeek-R1出圈了,把OpenAI的o3-mini模型都提前逼上线了(还免费使用)。 都号称擅长深度推理,那么对于科研牛马的帮助有多大呢? 我连夜试一试。 二、科研思路梳理 有时候我们牛马们做了一堆结果以后&…...

实验9 JSP访问数据库(二)

实验9 JSP访问数据库(二) 目的: 1、熟悉JDBC的数据库访问模式。 2、掌握预处理语句的使用 实验要求: 1、使用Tomcat作为Web服务器 2、通过JDBC访问数据库,实现增删改查功能的实现 3、要求提交实验报告,将代…...

CMake项目编译与开源项目目录结构

Cmake 使用简单方便,可以跨平台构建项目编译环境,尤其比直接写makefile简单,可以通过简单的Cmake生成负责的Makefile文件。 如果没有使用cmake进行编译,需要如下命令:(以muduo库echo服务器为例)…...

PyCharm中使用Ollama安装和应用Deepseek R1模型:完整指南

引言 人工智能和大型语言模型正在改变我们与技术交互的方式。Deepseek R1是一个强大的AI模型,而Ollama则是一个让我们能够轻松在本地运行这些模型的工具。本文将指导您如何使用Ollama安装Deepseek R1模型,并在PyCharm中创建一个简单的聊天应用。 © ivwdcwso (ID: u0121…...

编程AI深度实战:大模型知识一文打尽

系列文章: 编程AI深度实战:私有模型deep seek r1,必会ollama-CSDN博客 编程AI深度实战:自己的AI,必会LangChain-CSDN博客 编程AI深度实战:给vim装上AI-CSDN博客 编程AI深度实战:火的编程AI&…...

012-51单片机CLD1602显示万年历+闹钟+农历+整点报时

1. 硬件设计 硬件是我自己设计的一个通用的51单片机开发平台,可以根据需要自行焊接模块,这是用立创EDA画的一个双层PCB板,所以模块都是插针式,不是表贴的。电路原理图在文末的链接里,PCB图暂时不选择开源。 B站上传的…...

基于springboot+vue的哈利波特书影音互动科普网站

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…...

MySQL5.5升级到MySQL5.7

【卸载原来的MySQL】 cmd打开命令提示符窗口(管理员身份)net stop mysql(先停止MySQL服务) 3.卸载 切换到原来5.5版本的bin目录,输入mysqld remove卸载服务 测试mysql -V查看Mysql版本还是5.5 查看了环境变量里的…...

列表标签(无序列表、有序列表)

无序列表 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </head><…...

【数据结构】_链表经典算法OJ:分割链表(力扣—中等)

目录 1. 题目描述及链接 2. 解题思路 2.1 思路1 2.2 思路2 2.3 思路3&#xff08;本题采取该解法&#xff09; 3. 题解程序 1. 题目描述及链接 题目链接&#xff1a;面试题 02.04. 分割链表 - 力扣&#xff08;LeetCode&#xff09; 题目描述&#xff1a; 给你一个链表…...

深入核心:一步步手撕Tomcat搭建自己的Web服务器

介绍&#xff1a; servlet&#xff1a;处理 http 请求 tomcat&#xff1a;服务器 Servlet servlet 接口&#xff1a; 定义 Servlet 声明周期初始化&#xff1a;init服务&#xff1a;service销毁&#xff1a;destory 继承链&#xff1a; Tomcat Tomcat 和 servlet 原理&#x…...

ASP.NET Core与配置系统的集成

目录 配置系统 默认添加的配置提供者 加载命令行中的配置。 运行环境 读取方法 User Secrets 注意事项 Zack.AnyDBConfigProvider 案例 配置系统 默认添加的配置提供者 加载现有的IConfiguration。加载项目根目录下的appsettings.json。加载项目根目录下的appsettin…...

在 Ubuntu 上安装 Node.js 23.x

在 Ubuntu 上安装 Node.js 23.x 前提条件安装步骤1. 下载设置脚本2. 运行设置脚本3. 安装 Node.js4. 验证安装 参考链接总结 在现代 web 开发中&#xff0c;Node.js 是一个不可或缺的工具。它提供了一个强大的 JavaScript 运行时环境&#xff0c;使得开发人员可以在服务器端使用…...

《 C++ 点滴漫谈: 二十五 》空指针,隐秘而危险的杀手:程序崩溃的真凶就在你眼前!

摘要 本博客全面解析了 C 中指针与空值的相关知识&#xff0c;从基础概念到现代 C 的改进展开&#xff0c;涵盖了空指针的定义、表示方式、使用场景以及常见注意事项。同时&#xff0c;深入探讨了 nullptr 的引入及智能指针在提升代码安全性和简化内存管理方面的优势。通过实际…...

SpringBoot中Excel表的导入、导出功能的实现

文章目录 一、easyExcel简介二、Excel表的导出2.1 添加 Maven 依赖2.2 创建导出数据的实体类4. 编写导出接口5. 前端代码6. 实现效果 三、excel表的导出1. Excel表导入的整体流程1.1 配置文件存储路径 2. 前端实现2.1 文件上传组件 2.2 文件上传逻辑3. 后端实现3.1 文件上传接口…...

CodeGPT使用本地部署DeepSeek Coder

目前NV和github都托管了DeepSeek&#xff0c;生成Key后可以很方便的用CodeGPT接入。CodeGPT有三种方式使用AI&#xff0c;分别时Agents&#xff0c;Local LLMs&#xff08;本地部署AI大模型&#xff09;&#xff0c;LLMs Cloud Model&#xff08;云端大模型&#xff0c;从你自己…...

SpringBoot 整合 SpringMVC:配置嵌入式服务器

修改和 server 相关的配置(ServerProperties)&#xff1a; server.port8081 server.context‐path/tx server.tomcat.uri‐encodingUTF‐8 注册 Servlet 三大组件&#xff1a;Servlet、Fileter、Listener SpringBoot 默认是以 jar 包的方式启动嵌入式的 Servlet 容器来启动 Spr…...

浅谈Linux 权限、压缩、进程与服务

概述 放假回家&#xff0c;对Linux系统的一些知识进行重新的整理&#xff0c;做到温故而知新&#xff0c;对用户权限管理、文件赋权、压缩文件、进程与服务的知识进行了一次梳理和总结。 权限管理 Linux最基础的权限是用户和文件&#xff0c;先了解基础的用户权限和文件权限…...

LeetCode 0040.组合总和 II:回溯 + 剪枝

【LetMeFly】40.组合总和 II&#xff1a;回溯 剪枝 力扣题目链接&#xff1a;https://leetcode.cn/problems/combination-sum-ii/ 给定一个候选人编号的集合 candidates 和一个目标数 target &#xff0c;找出 candidates 中所有可以使数字和为 target 的组合。 candidates…...

springCload快速入门

原作者&#xff1a;3. SpringCloud - 快速通关 前置知识&#xff1a; Java17及以上、MavenSpringBoot、SpringMVC、MyBatisLinux、Docker 1. 分布式基础 1.1. 微服务 微服务架构风格&#xff0c;就像是把一个单独的应用程序开发为一套小服务&#xff0c;每个小服务运行在自…...

实现使用K210单片机进行猫脸检测,并在检测到猫脸覆盖屏幕50%以上时执行特定操作

要实现使用K210单片机进行猫脸检测&#xff0c;并在检测到猫脸覆盖屏幕50%以上时执行特定操作&#xff0c;以及通过WiFi上传图片到微信小程序&#xff0c;并在微信小程序中上传图片到开发板进行训练&#xff0c;可以按照以下步骤进行&#xff1a; 1. 硬件连接 确保K210开发板…...

FlashAttention v1 论文解读

论文标题&#xff1a;FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness 论文地址&#xff1a;https://arxiv.org/pdf/2205.14135 FlashAttention 是一种重新排序注意力计算的算法&#xff0c;它无需任何近似即可加速注意力计算并减少内存占用。…...

Kafka 副本机制(包含AR、ISR、OSR、HW 和 LEO 介绍)

文章目录 Kafka 副本机制&#xff08;包含AR、ISR、OSR、HW 和 LEO 介绍&#xff09;1. 副本的基本概念2. 副本同步和一致性2.1 AR&#xff08;Assigned Replicas&#xff09;2.2 ISR&#xff08;In-Sync Replicas&#xff09;2.3 OSR&#xff08;Out-of-Sync Replicas&#xf…...

QtCreator在配置Compilers时,有一个叫ABI的选项,那么什么是ABI?

问题提出 QtCreator在配置Compilers时,有一个叫ABI的选项,那么什么是ABI&#xff1f; ABI&#xff08;Application Binary Interface&#xff09;介绍 ABI&#xff08;Application Binary Interface&#xff0c;应用二进制接口&#xff09;是指应用程序与操作系统或其他程序…...

ResNet--深度学习中的革命性网络架构

一、引言 在深度学习的研究和应用中&#xff0c;网络架构的设计始终是一个关键话题。随着计算能力和大数据的不断提升&#xff0c;深度神经网络逐渐成为解决复杂任务的主流方法。然而&#xff0c;随着网络层数的增加&#xff0c;训练深度神经网络往往面临梯度消失或梯度爆炸的…...

【 软件测试项目实战】 以淘宝网购物车管理功能为例

一、测试功能模块分析 选择淘宝网购物车管理功能进行测试&#xff0c;核心子功能包含&#xff1a; 单商品添加/删除购物车商品数量修改多商品勾选与批量删除失效商品识别与处理 二、测试用例设计方法论应用 1. 等价类划分法&#xff08;商品添加操作&#xff09; 分析&…...

Go 中 defer 的机制

文章目录 Go 语言中 defer 的底层机制与实战解析一、defer 的执行顺序&#xff1a;后进先出&#xff08;LIFO&#xff09;示例 &#xff1a;多个 defer 的执行顺序 二、defer 的参数预计算&#xff1a;值拷贝的陷阱示例 &#xff1a;参数预计算的影响 三、defer 与闭包&#xf…...

智能小区物业管理系统推动数字化转型与提升用户居住体验

内容概要 在当今快速发展的社会中&#xff0c;智能小区物业管理系统的出现正在改变传统的物业管理方式。这种系统不仅仅是一种工具&#xff0c;更是一种推动数字化转型的重要力量。它通过高效的技术手段&#xff0c;将物业管理与用户居住体验紧密结合&#xff0c;无疑为社区带…...

【memgpt】letta 课程4:基于latta框架构建MemGpt代理并与之交互

Lab 3: Building Agents with memory 基于latta框架构建MemGpt代理并与之交互理解代理状态,例如作为系统提示符、工具和agent的内存查看和编辑代理存档内存MemGPT 代理是有状态的 agents的设计思路 每个步骤都要定义代理行为 Letta agents persist information over time and…...

HTML DOM 对象

HTML DOM 对象 引言 HTML DOM(文档对象模型)是现代网页开发的核心技术之一。DOM 将 HTML 或 XML 文档结构化,使其成为可编程的对象。通过 DOM,开发者可以轻松地操作网页内容、样式和结构。本文将详细介绍 HTML DOM 对象的相关知识,包括其概念、结构、操作方法以及在实际…...

高温环境对电机性能的影响与LabVIEW应用

电机在高温环境下的性能可能受到多种因素的影响&#xff0c;尤其是对于持续工作和高负荷条件下的电机。高温会影响电机的效率、寿命以及可靠性&#xff0c;导致设备出现过热、绝缘损坏等问题。因此&#xff0c;在设计电机控制系统时&#xff0c;特别是在高温环境下&#xff0c;…...

【09-电源线布线与覆铜 GND与转孔】

走线 从接触点处走线 TYPEC画线-加铜皮 1.关闭不需要的层(锡膏层和阻焊层和机械层) 紫色阻焊层 L: 顶层锡膏 底层锡膏 顶层阻焊 底层阻焊 2.修改线框或者贴铜 3.顶层走不过去:打四个孔 核心:走线-打孔-贴铜皮 设置孔的参数:大小和人为盖有 挨一下其他才会有网络 4个孔也要贴…...

算法题(48):反转链表

审题&#xff1a; 需要我们将链表反转并返回头结点地址 思路&#xff1a; 一般在面试中&#xff0c;涉及链表的题会主要考察链表的指向改变&#xff0c;所以一般不会允许我们改变节点val值。 这里是单向链表&#xff0c;如果要把指向反过来则需要同时知道前中后三个节点&#x…...

C++ 泛型编程指南02 (模板参数的类型推导)

文章目录 一 深入了解C中的函数模板类型推断什么是类型推断&#xff1f;使用Boost TypeIndex库进行类型推断分析示例代码关键点解析 2. 理解函数模板类型推断2.1 指针或引用类型2.1.1 忽略引用2.1.2 保持const属性2.1.3 处理指针类型 2.2 万能引用类型2.3 传值方式2.4 传值方式…...

穷举vs暴搜vs深搜vs回溯vs剪枝系列一>单词搜索

题解如下 题目&#xff1a;解析决策树&#xff1a;代码设计&#xff1a; 代码&#xff1a; 题目&#xff1a; 解析 决策树&#xff1a; 代码设计&#xff1a; 代码&#xff1a; class Solution {private boolean[][] visit;//标记使用过的数据int m,n;//行&#xff0c;列char…...

9 点结构模块(point.rs)

一、point.rs源码 use super::UnknownUnit; use crate::approxeq::ApproxEq; use crate::approxord::{max, min}; use crate::length::Length; use crate::num::*; use crate::scale::Scale; use crate::size::{Size2D, Size3D}; use crate::vector::{vec2, vec3, Vector2D, V…...

基于vue船运物流管理系统设计与实现(源码+数据库+文档)

船运物流管理系统目录 目录 基于springboot船运物流管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、管理员登录 2、货运单管理 3、公告管理 4、公告类型管理 5、新闻管理 6、新闻类型管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考…...

海思ISP开发说明

1、概述 ISP&#xff08;Image Signal Processor&#xff09;图像信号处理器是专门用于处理图像信号的硬件或处理单元&#xff0c;广泛应用于图像传感器&#xff08;如 CMOS 或 CCD 传感器&#xff09;与显示设备之间的信号转换过程中。ISP通过一系列数字图像处理算法完成对数字…...