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

让 Agent 具备语音交互能力:技术突破与应用前景(16/30)

让 Agent 具备语音交互能力:技术突破与应用前景

一、引言

在当今数字化时代,人机交互方式正经历着深刻的变革。从早期的命令行界面到图形用户界面,再到如今日益普及的语音交互,人们对于与机器沟通的便捷性和自然性有了更高的追求。Agent 作为一种能够自主执行任务、与环境进行交互的智能实体,赋予其语音交互能力具有重要的现实意义和广阔的应用前景。这不仅可以提升用户体验,使人们能够更加自然、流畅地与 Agent 进行沟通,还能拓展 Agent 的应用场景,如智能家居、智能客服、智能车载系统等领域,让智能服务更加贴近人们的生活和工作。

二、语音交互技术基础

(一)语音识别技术

语音识别是将人类语音转换为文本的技术,其核心在于对语音信号的特征提取和模式匹配。通过使用深度学习算法,如卷积神经网络(CNN)和长短时记忆网络(LSTM),对大量的语音数据进行训练,模型能够学习到不同语音特征与文本之间的映射关系。例如,在智能语音助手的应用中,当用户说出 “播放音乐” 这句话时,语音识别系统能够将其准确地转换为对应的文字指令,为后续的操作提供基础。目前,市场上的语音识别技术已经取得了较高的准确率,但在面对口音、噪声等复杂情况时,仍有待进一步优化。

(二)自然语言处理技术

自然语言处理(NLP)专注于让计算机理解和生成人类语言。它包括语法分析、语义理解、语用推理等多个层面。在 Agent 的语音交互中,NLP 技术用于解析用户的语音指令,提取关键信息,并根据上下文进行语义理解。例如,当用户询问 “明天北京的天气如何?”,NLP 系统能够分析出 “明天” 是时间、“北京” 是地点、“天气” 是查询对象,从而准确地向天气查询接口发送请求并返回结果。基于规则的 NLP 方法和基于统计的 NLP 方法各有优劣,近年来,基于预训练语言模型(如 GPT 系列)的方法在语义理解和生成方面表现出了强大的能力,但也面临着模型可解释性差、数据偏见等问题。

(三)语音合成技术

语音合成是将文本转换为自然流畅的语音输出。它涉及到文本分析、韵律建模和语音生成等环节。先进的语音合成技术能够根据不同的语境和情感表达,调整语音的语调、语速和音色,使合成的语音更加逼真和生动。例如,在有声读物的生成中,语音合成系统可以根据不同的角色和情节,采用不同的音色和语调进行朗读,增强听众的沉浸感。常见的语音合成方法包括基于参数合成、基于拼接合成和基于神经网络的合成等,其中基于神经网络的方法在语音质量和自然度方面取得了显著的进展。

三、Agent 语音交互系统架构

(一)音频采集与预处理模块

该模块负责从麦克风等音频设备中采集用户的语音信号,并对其进行预处理,包括降噪、增益控制、滤波等操作,以提高语音信号的质量和清晰度。例如,在嘈杂的环境中,通过采用自适应滤波算法去除背景噪声,使后续的语音识别更加准确。

(二)语音识别引擎

语音识别引擎是 Agent 语音交互系统的核心组件之一,它将预处理后的语音信号转换为文本。目前,许多公司和研究机构都开发了自己的语音识别引擎,如百度的语音识别技术、科大讯飞的语音识别系统等。这些引擎通常基于深度学习模型,并不断进行优化和改进,以提高识别准确率和速度。

(三)自然语言理解与对话管理模块

这一模块对语音识别得到的文本进行语义理解,并根据 Agent 的任务和目标进行对话管理。它能够解析用户的意图,确定合适的回复策略,并维护对话的上下文信息。例如,在一个智能客服 Agent 中,当用户询问产品信息时,该模块能够理解用户的需求,并从知识库中查询相关的产品资料,生成准确的回复。

(四)语音合成模块

语音合成模块将 Agent 的回复文本转换为语音输出,以便用户能够通过听觉接收信息。它可以根据用户的偏好选择不同的语音音色和风格,如男声、女声、童声等,并支持多种语言的合成。

(五)交互接口与应用集成模块

该模块负责 Agent 与外部应用程序和服务的集成,使 Agent 能够根据用户的语音指令执行各种任务,如查询信息、控制设备、进行交易等。例如,在智能家居场景中,Agent 可以通过与智能灯泡、智能插座等设备的接口进行通信,实现对家居设备的语音控制。

四、实现 Agent 语音交互的关键技术挑战

(一)多模态融合问题

在实际应用中,Agent 可能需要同时处理语音、图像、文本等多种模态的信息,以实现更加智能和自然的交互。例如,在智能车载系统中,Agent 不仅要理解驾驶员的语音指令,还要结合车辆的仪表盘信息、路况信息等进行综合决策。然而,不同模态的信息具有不同的特点和表示方式,如何有效地将它们融合在一起是一个关键问题。目前,多模态融合的方法主要包括早期融合、晚期融合和混合融合等,但每种方法都有其优缺点,需要根据具体的应用场景进行选择和优化。

(二)上下文理解与对话连贯

人类对话往往依赖于上下文信息,Agent 也需要具备理解对话上下文的能力,以保持对话的连贯性和逻辑性。这涉及到对前文提到的实体、话题、意图等信息的跟踪和推理。例如,当用户在对话中提到 “它” 时,Agent 需要能够根据上下文确定 “它” 所指代的对象,从而准确回答用户的问题。实现上下文理解需要采用有效的对话管理策略和记忆机制,如基于注意力机制的对话模型和对话状态跟踪技术等,但这些技术在复杂对话场景下仍面临着挑战。

(三)低资源语言和方言支持

虽然语音交互技术在主流语言上取得了较好的效果,但对于一些低资源语言和方言,由于缺乏足够的训练数据,其性能仍然不尽如人意。例如,一些少数民族语言或地方方言的语音识别和合成准确率较低,限制了 Agent 在这些地区的应用。解决这一问题需要采用迁移学习、半监督学习等技术,充分利用有限的标注数据和大量的未标注数据,提高低资源语言和方言的处理能力。

(四)隐私与安全问题

随着语音交互技术的普及,用户的语音数据隐私和安全问题日益凸显。语音数据包含了用户的个人信息、偏好、行为习惯等敏感内容,如果被泄露或滥用,可能会给用户带来严重的后果。因此,需要采取加密、匿名化、访问控制等技术手段,确保语音数据的安全存储和传输,同时建立严格的隐私政策和监管机制,保护用户的合法权益。

五、让 Agent 具备语音交互能力的应用案例

(一)智能家居领域

在智能家居系统中,用户可以通过语音指令控制家中的各种设备,如灯光、窗帘、电视、空调等。例如,用户说 “打开客厅的灯”,具备语音交互能力的 Agent 会识别该指令,并通过与智能灯泡的通信接口,将其打开。这不仅方便了用户的生活,还提升了家居的智能化程度和用户体验。一些智能家居平台,如小米的米家生态系统和亚马逊的 Alexa 智能家居平台,都集成了语音交互功能,用户可以通过智能音箱等设备与 Agent 进行交互,实现家居设备的自动化控制和场景联动。

(二)智能客服领域

许多企业和机构都采用了智能客服 Agent 来处理客户的咨询和投诉。这些 Agent 具备语音交互能力,能够通过电话或在线语音聊天的方式与客户进行沟通,快速解答客户的问题,提高客户服务效率和满意度。例如,银行的智能客服可以回答客户关于账户余额、转账汇款、理财产品等方面的问题;电商平台的智能客服可以处理客户的订单查询、退换货申请等业务。通过语音交互,智能客服能够更好地模拟人与人之间的对话场景,为客户提供更加个性化、便捷的服务。

(三)智能车载系统

在汽车领域,智能车载系统中的 Agent 可以通过语音交互为驾驶员提供导航、音乐播放、电话拨打、车辆信息查询等服务,使驾驶员能够更加专注于驾驶,提高行车安全性。例如,驾驶员可以说 “导航到市中心”,车载 Agent 会自动规划最佳路线并启动导航;或者说 “播放我喜欢的歌曲”,Agent 会根据用户的音乐偏好播放相应的歌曲。一些高端汽车品牌,如特斯拉、宝马等,都配备了先进的语音交互系统,提升了驾驶体验和车辆的智能化水平。

(四)教育领域

在教育领域,具备语音交互能力的 Agent 可以作为智能学习伙伴,帮助学生进行学习辅导、作业答疑、语言练习等。例如,学生可以向 Agent 提问数学问题,Agent 会通过语音回答并给出详细的解题步骤;或者学生可以与 Agent 进行英语对话练习,Agent 会纠正学生的发音和语法错误,提高学生的语言能力。一些在线教育平台也开始应用语音交互技术,为学生提供更加互动式、个性化的学习环境。

六、经典代码案例

以下是三个让 Agent 具备语音交互能力的代码案例示例:

案例一:基于 Python 的简单语音助手 Agent(使用 SpeechRecognition 和 pyttsx3 库)

import speech_recognition as sr
import pyttsx3# 初始化语音识别器和语音合成器
r = sr.Recognizer()
engine = pyttsx3.init()# 定义语音指令处理函数
def process_command(command):if "你好" in command:response = "你好!有什么我可以帮助你的?"elif "天气" in command:response = "抱歉,我无法获取天气信息。"else:response = "我不太明白你的意思。"return response# 主循环,持续监听语音指令
while True:with sr.Microphone() as source:print("请说话...")audio = r.listen(source)try:# 识别语音指令command = r.recognize_google(audio, language='zh-CN')print(f"你说的是: {command}")# 处理语音指令并获取回复response = process_command(command)# 语音合成回复engine.say(response)engine.runAndWait()except sr.UnknownValueError:print("无法识别语音")except sr.RequestError as e:print(f"请求错误: {e}")

案例二:使用 DeepSpeech 进行语音识别的 Agent(Python 示例)

import deepspeech
import numpy as np
import pyaudio# 加载 DeepSpeech 模型
model_file_path = 'deepspeech-0.9.3-models.pbmm'
model = deepspeech.Model(model_file_path)# 定义音频参数
SAMPLE_RATE = 16000
CHUNK_SIZE = 1024# 初始化 PyAudio
audio = pyaudio.PyAudio()
stream = audio.open(format=pyaudio.paInt16,channels=1,rate=SAMPLE_RATE,input=True,frames_per_buffer=CHUNK_SIZE)# 主循环,持续监听语音并识别
while True:print("正在监听...")frames = []for _ in range(0, int(SAMPLE_RATE / CHUNK_SIZE * 5)):  # 监听 5 秒data = stream.read(CHUNK_SIZE)frames.append(data)# 将音频数据转换为 numpy 数组audio_data = np.frombuffer(b''.join(frames), dtype=np.int16)# 进行语音识别text = model.stt(audio_data)print(f"识别结果: {text}")# 这里可以添加根据识别结果进行相应操作的代码# 关闭音频流和 PyAudio
stream.stop_stream()
stream.close()
audio.terminate()

案例三:基于 Dialogflow 的智能对话 Agent(Python 示例,需要安装 dialogflow 库)

import dialogflow_v2 as dialogflow
import os
from google.cloud import speech_v1p1beta1 as speech# 设置 Dialogflow 项目 ID 和语言代码
DIALOGFLOW_PROJECT_ID = 'your-project-id'
DIALOGFLOW_LANGUAGE_CODE = 'en-US'# 初始化 Dialogflow 会话客户端
session_client = dialogflow.SessionsClient()
session = session_client.session_path(DIALOGFLOW_PROJECT_ID, '123456')  # 会话 ID 可自定义# 初始化语音识别客户端
client = speech.SpeechClient()# 配置语音识别参数
config = speech.RecognitionConfig(encoding=speech.RecognitionConfig.AudioEncoding.LINEAR16,sample_rate_hertz=16000,language_code=DIALOGFLOW_LANGUAGE_CODE
)# 主循环,持续监听语音并与 Dialogflow 交互
while True:print("开始说话...")with sr.Microphone() as source:audio = r.listen(source)# 将音频数据发送到语音识别服务audio_data = speech.RecognitionAudio(content=audio.get_wav_data())response = client.recognize(config=config, audio=audio_data)if response.results:# 获取识别的文本text = response.results[0].alternatives[0].transcriptprint(f"你说的是: {text}")# 将识别的文本发送到 Dialogflow 进行意图识别和对话处理text_input = dialogflow.types.TextInput(text=text, language_code=DIALOGFLOW_LANGUAGE_CODE)query_input = dialogflow.types.QueryInput(text=text_input)response = session_client.detect_intent(session=session, query_input=query_input)# 获取 Dialogflow 的回复reply = response.query_result.fulfillment_textprint(f"Agent 回复: {reply}")# 这里可以添加语音合成代码将回复转换为语音输出else:print("没有识别到语音")

请注意,这些代码案例只是简单的示例,实际应用中需要根据具体需求进行更完善的功能扩展、错误处理和优化,并且可能需要使用相应的 API 密钥和进行更多的配置才能正常运行。同时,语音交互技术还涉及到许多复杂的方面,如语音合成的自然度、意图识别的准确性等,需要进一步的研究和改进。

七、未来展望

随着人工智能、机器学习、语音处理等技术的不断发展,Agent 的语音交互能力将不断提升,应用场景也将更加广泛和深入。未来,我们有望看到更加智能、自然、个性化的 Agent 语音交互系统,能够更好地理解人类的语言和意图,提供更加精准、高效的服务。同时,随着 5G 等通信技术的普及,语音交互将更加流畅和实时,为 Agent 在更多领域的应用提供有力支持。然而,我们也需要清醒地认识到,在技术发展的过程中,仍然面临着诸多挑战,如隐私保护、伦理道德、技术可靠性等问题,需要政府、企业、科研机构和社会各界共同努力,制定相关的规范和标准,确保语音交互技术健康、可持续地发展,为人类的生活和社会的进步带来更多的福祉。

总之,让 Agent 具备语音交互能力是当前人工智能领域的一个重要研究方向和应用热点,具有巨大的潜力和价值。通过不断地技术创新和应用实践,我们相信 Agent 的语音交互系统将在未来的智能世界中发挥更加重要的作用,成为人们生活和工作中不可或缺的智能助手。

博主还写了与本文相关文章,欢迎批评指正: 

AI Agent实战30篇目录集绵: 

第一章 Agent基本概念【共7篇】

1、AI Agent 介绍(1/30)

2、AI Agent:重塑业务流程自动化的未来力量(2/30)

3、AI Agent 实战:三步构建,七步优化,看智能体如何进入企业生产(3/30)

4、探秘 AI Agent 之 Coze 智能体:从简介到搭建全攻略(4/30)

5、探秘多AI Agent模式:机遇、应用与未来展望(5/30)

6、探秘 AI Agent 之 Coze 智能体:工作流模式(6/30)

7、探秘 AI Agent 之 Coze 智能体:插件创建与使用(7/30)

第二章 Agent案例分析 【共8篇】

1、AI Agent案例全解析:百度营销智能体(8/30)

2、AI Agent案例与实践全解析:字节智能运维(9/30)

3、Agent 案例分析:金融场景中的智能体-蚂蚁金服案例(10/30)

4、华为 AI Agent:企业内部管理的智能变革引擎(11/30)

5、微众银行金融场景 Agent:创新实践与深度剖析(12/30)

6、京东物流营销 Agent:智能驱动,物流新篇(13/30)

7、数势科技:解锁数据分析 Agent 的智能密码(14/30)

8、南方电网场景中 Agent 的智慧赋能与创新实践(15/30)

第三章 AI Agent应用开发【6篇】

1、让 Agent 具备语音交互能力:技术突破与应用前景(16/30)

后期文章正在努力创作中,敬请期待......

2.AI agent 实现知识图谱自动生成

3.构建AI Agent实现信息收集、摘要和报告生成

4.让Agent具备数据分析能力

5.LLaMA3_1-8B-Instruct WebDemo 部署

6.Llama3_1-8B-Instruct FastApi 部署调用 

第四章 多Agent框架【7篇】

1.MetaGPT简介

2.单智入门

3.多智能体

4.AutoGen框架介绍与基础环境安装

5.AutoGen模型配置与代码执行

6.AutoGen工具使用

7.AutoGen控制退出代理对话

第五章 Agent与应用系统【1篇】

1.AI Agent 在客户关系管理系统的整合应用

第六章 智能体工具【1篇】

1.Text2Sql

相关文章:

让 Agent 具备语音交互能力:技术突破与应用前景(16/30)

让 Agent 具备语音交互能力:技术突破与应用前景 一、引言 在当今数字化时代,人机交互方式正经历着深刻的变革。从早期的命令行界面到图形用户界面,再到如今日益普及的语音交互,人们对于与机器沟通的便捷性和自然性有了更高的追求…...

代理IP助力VR行业革新,小派科技引领技术潮流

随着VR行业的新一轮技术升级,更高分辨率、更宽视场角以及更舒适的佩戴体验已成为各大厂商竞争的核心。在这一浪潮中,小派科技凭借其最新发布的视网膜级VR头显——Crystal Super,成功吸引了市场的目光。而在这场技术革新的背后,代理…...

C#Halcon图像处理畸变校正之曲面校正

图像校正场景一般有两种,其一由镜头本身或安装角度引起,其二是被拍摄物品本身引起 理论处理流程 我的处理处理流程 1,加载网格校正图像 2,确定符合条件的网格区域 3,显示网格鞍点 4,显示网格线 5&#xff…...

JSON结构快捷转XML结构API集成指南

JSON结构快捷转XML结构API集成指南 引言 在当今的软件开发世界中,数据交换格式的选择对于系统的互操作性和效率至关重要。JSON(JavaScript Object Notation)和XML(eXtensible Markup Language)是两种广泛使用的数据表…...

Coroutine 基础四 —— CoroutineScope 与 CoroutineContext

1、定位 CoroutineContext,协程上下文。协程用到的所有信息都属于协程上下文,根据功能不同,划分成了不同的分类。管理流程用的是 Job,管理线程用的是 ContinuationInterceptor,等等。 CoroutineScope 的定位有两点&a…...

科技云报到:洞见2025年科技潮流,技术大融合开启“智算时代”

科技云报到原创。 随着2024年逐渐接近尾声,人们不禁开始展望即将到来的2025年。这一年,被众多科技界人士视为开启新纪元的关键节点。站在新的起点上,我们将亲眼目睹未来科技如何改变我们的世界。从人工智能到量子计算,从基因编辑…...

MySQL有哪些锁?

1.MySQL有哪些锁? 全局锁表级锁 表锁元数据锁意向锁 行级锁 记录锁间隙锁临键锁临时意向锁 我了解的是MySQL的锁可以分为全局锁、表级锁、行级锁。 我比较熟悉的是表级锁和行级锁,如果我们对表结构进行修改时,MySQL就会对这个表结构加一个…...

通过交叉实现数据触底分页效果new IntersectionObserver()(html、react、vue2、vue3)中使用

react中用法 import React, { useState, useEffect, useRef } from react;const InfiniteScroll () > {const [items, setItems] useState([]);const [loading, setLoading] useState(false);const [page, setPage] useState(1);const loaderRef useRef(null);// 模拟…...

DeepSeek-V3-Base 模型技术解析

DeepSeek-V3-Base 模型技术解析 目录 引言DeepSeek-V3-Base 模型概述模型架构 3.1 Transformer 基础3.2 DeepSeek-V3-Base 的改进 训练过程 4.1 数据预处理4.2 训练策略4.3 优化器与学习率调度 模型性能评估 5.1 基准测试5.2 实际应用案例 模型优化与调参 6.1 超参数调优6.2 …...

Qt5 中 QGroupBox 标题下沉问题解决

我们设置了QGroupBox 样式之后,发现标题下沉了,那么如何解决呢? QGroupBox {font: 12pt "微软雅黑";color:white;border:1px solid white;border-radius:6px; } 解决后的效果 下面是解决方法: QGroupBox {font: 12pt "微软雅黑";color:white;bo…...

Linux Debian安装ClamAV和命令行扫描病毒方法,以及用Linux Shell编写了一个批量扫描病毒的脚本

ClamAV是一个开源的跨平台病毒扫描引擎,用于检测恶意软件、病毒、木马等安全威胁。 一、Linux Debian安装ClamAV 在Linux Debian系统上安装ClamAV,你可以按照以下步骤进行: 更新软件包列表: 打开终端并更新你的软件包列表&#…...

数据结构与算法之动态规划: LeetCode 53. 最大子数组和 (Ts版)

最大子数组和 https://leetcode.cn/problems/maximum-subarray/description/ 描述 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和子数组是数组中的一个连续部分 示例 1 …...

活动预告 | Microsoft Azure 在线技术公开课:使用 Azure OpenAI 服务构建生成式应用

课程介绍 通过 Microsoft Learn 免费参加 Microsoft Azure 在线技术公开课,掌握创造新机遇所需的技能,加快对 Microsoft Cloud 技术的了解。参加我们举办的“使用 Azure OpenAI 服务构建生成式应用”活动,了解如何使用包括 GPT 在内的强大的…...

Python爬虫(二)- Requests 高级使用教程

文章目录 前言一、Session 对象1. 简介2. 跨请求保持 Cookie3. 设置缺省数据4. 方法级别参数不被跨请求保持5. 会话作为上下文管理器6. 移除字典参数中的值 二、请求与响应1. 请求与响应对象1.1 获取响应头信息1.2 获取发送到服务器的请求头信息 三、SSL 证书验证1. 忽略 SSL 证…...

协议幻变者:DeviceNet转ModbusTCP网关开启机器手臂智能新纪元

技术背景DeviceNet是一种广泛应用于工业自动化领域的现场总线标准,它能够实现控制器与现场设备之间的高效通信,常用于连接各种传感器、执行器以及其他工业设备,如机器人、电机驱动器等,具有实时性强、可靠性高的特点。而ModbusTCP…...

自定义有序Map

package cn.ziqirj.common.utils;import lombok.Getter; import lombok.Setter;import java.util.ArrayList; import java.util.List;/*** 模拟Map集合&#xff0c;key不可重复&#xff0c;按插入顺序排序* author zhangji** param <T>*/ public class CustomOrderlyMap&…...

CA系统的设计(CA证书生成,吊销,数字签名生成)

CA系统概述 CA认证系统是一种基于公钥密码基础设施&#xff08;PKI&#xff09;的信息安全技术&#xff0c;它可以为网络通信双方提供身份认证、数据加密、数字签名等功能。CA认证系统的核心是证书授权机构&#xff08;CA&#xff09;&#xff0c;它负责为用户&#xff08;节点…...

流计算需要框架吗?SPL 可能是更好的选择

流数据源通常是动态、无界的&#xff0c;看起来与静态、有限的批数据源区别较大&#xff0c;传统的数据库技术在架构上难以直接处理流数据源&#xff0c;只能让位于后来者。heron\samza\storm\spark\flink等计算框架最先完成突破&#xff0c;在流计算技术中占得先发优势。这些框…...

Vue-Router之嵌套路由

在路由配置中&#xff0c;配置children import Vue from vue import VueRouter from vue-routerVue.use(VueRouter)const router new VueRouter({mode: history,base: import.meta.env.BASE_URL,routes: [{path: /,redirect: /home},{path: /home,name: home,component: () &…...

MySQL 读写分离

MySQL 读写分离 一、配置主库(Master) 1.修改主库的配置文件 修改主库的 my.cnf 配置文件&#xff0c;生成二进制日志 (binary log) 和服务器唯一ID&#xff0c;这是实现主从复制的必要配置 [mysqld] # skip-grant-tables userroot port3306 basedir/usr/local/mysql datad…...

记一次音频无输出的解决方案

啊啊啊&#xff0c;刷个抖音就发现个死电脑死都不出声&#xff0c;捣鼓了一天才解决 打开wav文件时&#xff0c;提示错误找不到音频播放设备 0xc00d36fa 起初以为是声卡坏了&#xff0c;就到官网下载、更新了声卡驱动。无用什么驱动精灵也检测了&#xff0c;但也测不出啥来。…...

3D数学基础2

矩阵的行列式 在任意方阵中都存在至少一个标量&#xff0c;称作该方阵的行列式。在线性代数中&#xff0c;行列式有很多有用的性质 线性运算法则 方阵 M M M的行列式记作 ∣ M ∣ |M| ∣M∣或“det M”。非方阵矩阵的行列式是未定义的。 注意&#xff0c;在书写行列式时&…...

Java开发生态2024年度总结报告

1 关键要点 尽管数据显示 Java 17 是最常用 JDK&#xff0c;但其用户占比并未超过半数。根据 New Relic 2024 Java 生态系统状态报告&#xff0c;Java 17、11 和 8 的用户比例分别为 35%、33% 和 29%。New Relic 数据中所谓“快速采用”指 Java 21 的采用率仅为 1.4%。虽相较 J…...

1月第三讲:Java子线程无法获取Attributes的解决方法

在Java多线程编程中&#xff0c;开发者经常会遇到子线程无法获取主线程设置的Attributes的问题。Attributes通常用于存储与当前线程相关的数据&#xff0c;尤其在Web应用中&#xff0c;它们常用于请求上下文的管理。然而&#xff0c;由于Java线程是独立运行的&#xff0c;每个线…...

更新金碟云星空单据供应商和币别

--应付单 select FSUPPLIERID from [dbo].[T_AP_PAYABLE] where FBILLNO=AP2024121670 select FSUPPLIERID,FCURRENCYID,* from [dbo].[T_AP_PAYABLE] where FBILLNO=AP2024121670 -- update T_AP_PAYABLE set FSUPPLIERID=100567 where FBILLNO=AP2024121670 -- update T_…...

from memory cache 修复记录

背景 浏览器的页签图标&#xff0c;不想要了 改代码&#xff1a;设置浏览器页签的代码 本地环境测试&#xff0c;没有问题&#xff0c;一次性修改成功 于是打包&#xff0c;部署到测试环境&#xff0c;然而&#xff0c;还是有 接下的解决方法&#xff1a; 1、清除浏览器缓…...

spring入门程序

安装eclipse https://blog.csdn.net/qq_36437991/article/details/131644570 新建maven项目 安装依赖包 pom.xml <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation&quo…...

用于实现无缝滚动效果的vue-seamless-scroll插件

它通常用于在网页或应用中实现内容的自动滚动效果&#xff0c;如新闻公告、图片轮播等&#xff0c;支持横向和纵向滚动&#xff0c;并且可以自定义滚动速度、方向等参数&#xff0c;适合展示一些需要持续循环展示的信息。 在Vue2项目中使用vue-seamless-scroll插件的步骤如下&…...

借助 FinClip 跨端技术探索鸿蒙原生应用开发之旅

在当今数字化浪潮汹涌澎湃的时代&#xff0c;移动应用开发领域正经历着深刻的变革与创新。鸿蒙操作系统的崛起&#xff0c;以其独特的分布式架构和强大的性能表现&#xff0c;吸引了众多开发者的目光。而FinClip 跨端技术的出现&#xff0c;为开发者涉足鸿蒙原生应用开发提供了…...

【机器学习】机器学习的基本分类-自监督学习-对比学习(Contrastive Learning)

对比学习是一种自监督学习方法&#xff0c;其目标是学习数据的表征&#xff08;representation&#xff09;&#xff0c;使得在表征空间中&#xff0c;相似的样本距离更近&#xff0c;不相似的样本距离更远。通过设计对比损失函数&#xff08;Contrastive Loss&#xff09;&…...

python之eval函数

功能&#xff1a;将字符串str当成有效的表达式来求值并返回计算结果 语法&#xff1a;eval(source,[,globals[,locals]])->value 参数&#xff1a; source&#xff1a;一个python表达式或函数compile()返回的代码对象globals&#xff1a;可选。必须是dictionarylocals&am…...

NXP i.MX8系列平台开发讲解 - 5.3 调试篇(二) - 掌握Dynamic debug调试

专栏文章目录传送门&#xff1a;返回专栏目录 Hi, 我是你们的老朋友&#xff0c;主要专注于嵌入式软件开发&#xff0c;有兴趣不要忘记点击关注【码思途远】 文章目录 目录 掌握Dynamic debug调试 1. 认识Dynamic debug 2. 内核配置 3. 使用Dynamic debug 3.1 查看当前的…...

QT----------常用界面组件的使用

一、QComboBox 类 主要功能&#xff1a;提供一个下拉列表&#xff0c;用户可以从中选择一个或多个选项。 #include <QApplication> #include <QComboBox> #include <QVBoxLayout> #include <QWidget> #include <QMessageBox>int main(int argc…...

重新整理机器学习和神经网络框架

本篇重新梳理了人工智能&#xff08;AI&#xff09;、机器学习&#xff08;ML&#xff09;、神经网络&#xff08;NN&#xff09;和深度学习&#xff08;DL&#xff09;之间存在一定的包含关系&#xff0c;以下是它们的关系及各自内容,以及人工智能领域中深度学习分支对比整理。…...

AJAX详解

AJAX是前后端交互的重要工具 结合前后端交互基础理解&#xff1a;前后端交互详解(建议收藏)-CSDN博客 1. AJAX - 到底什么是Ajax? ajax 全名 async javascript and XML(异步JavaScript和XML)&#xff0c;是一种用于向服务器异步发送 HTTP 请求并接收响应的技术。 XML 指可扩…...

golang中的异常处理机制

今天是2024最后一天&#xff0c;祝大家新年梦想成真&#xff0c;继续我的魅力golang&#xff0c;昨天发的错误处理&#xff0c;是明显的可预见、可恢复的问题&#xff0c;然而&#xff0c;不可预见的问题&#xff0c;往往更多&#xff0c;golang也有自己的一套&#xff0c;完全…...

HTML5 开关(Toggle Switch)详细讲解

HTML5 开关&#xff08;Toggle Switch&#xff09;详细讲解 1. 任务概述 开关&#xff08;Toggle Switch&#xff09;是一种用于表示二元状态&#xff08;如开/关&#xff09;的用户界面控件。用户可以通过点击开关来切换状态&#xff0c;常见于设置选项、开关功能等场景。 2…...

【前端】Node.js使用教程

目录 一、?Node.js开发环境和编译 1.1 安装Node.js 1.2 创建一个Node.js项目 1.3 编写Node.js程序 1.4 运行Node.js程序 1.5 使用Node.js模块 二、高级的Node.js编程概念和示例 2.1 异步编程 2.2 错误处理 2.3 网络请求 2.4 构建Web服务器 2.5 数据库交互 三、No…...

在CodeBlocks搭建SDL2工程构建TFT彩屏模拟器虚拟TFT彩屏幕显示

在CodeBlocks搭建SDL2工程构建TFT彩屏模拟器虚拟TFT彩屏幕显示 参考文章源码下载地址一、SDL2的创建、初始化、退出二、系统基本Tick、彩屏刷新、按键事件三、彩屏获取与设置颜色四、彩屏填充颜色及清屏五、彩屏显示中文和英文字符串六、彩屏显示数字七、彩屏初始化八、主函数测…...

BurstAttention:高效的分布式注意力计算框架

BurstAttention&#xff1a;高效的分布式注意力计算框架 在现代大型语言模型&#xff08;LLMs&#xff09;的应用中&#xff0c;提升注意力机制的计算效率已成为研究的热点。当前&#xff0c;提升计算效率主要有两种方法&#xff1a;一种是优化单设备的计算和存储能力&#xf…...

sentinel集成nacos启动报[check-update] get changed dataId error, code: 403错误排查及解决

整合nacos报403错误 因为平台写的一个限流代码逻辑有问题&#xff0c;所以准备使用sentinel来限流。平台依赖里面已经引入了&#xff0c;之前也测试过&#xff0c;把sentinel关于nacos的配置加上后&#xff0c;启动一直输出403错误 [fixed-10.0.20.188_8848-test] [check-upda…...

[TOTP]android kotlin实现 totp身份验证器 类似Google身份验证器

背景&#xff1a;自己或者公司用一些谷歌身份验证器或者microsoft身份验证器&#xff0c;下载来源不明&#xff0c;或者有广告&#xff0c;使用不安全。于是自己写一个&#xff0c;安全放心使用。 代码已开源&#xff1a;shixiaotian/sxt-android-totp: android totp authenti…...

IDEA+Docker一键部署项目SpringBoot项目

文章目录 1. 部署项目的传统方式2. 前置工作3. SSH配置4. 连接Docker守护进程5. 创建简单的SpringBoot应用程序6. 编写Dockerfile文件7. 配置远程部署 7.1 创建配置7.2 绑定端口7.3 添加执行前要运行的任务 8. 部署项目9. 开放防火墙的 11020 端口10. 访问项目11. 可能遇到的问…...

【发票提取明细+发票号改名】批量提取PDF电子发票明细导出Excel表格并改名技术难点,批量PDF多区域内容识别提取明细并用内容改名的小结

1、图片版的发票提取表格改名 【批量图片发票识别表格】批量图片发票的提取Excel表格和提取字段改名&#xff0c;扫描发票识别表格&#xff0c;拍照发票识别表格&#xff0c;图片发票识别改名我们在工作中很多扫描发票&#xff0c;拍照发票&#xff0c;需要整理成excel表格&am…...

pyQT + OpenCV相关练习

一、设计思路 1、思路分析与设计 本段代码是一个使用 PyQt6 和 OpenCV 创建的图像处理应用程序。其主要功能是通过一个图形界面让用户对图片进行基本的图像处理操作&#xff0c;如灰度化、翻转、旋转、亮度与对比度调整&#xff0c;以及一些滤镜效果&#xff08;模糊、锐化、边…...

石岩路边理发好去处

周末带娃去罗租公园玩&#xff0c;罗租公园旁边就是百佳华和如意豪庭小区&#xff0c;发现如意豪庭小区对面挺多路边理发摊点 理发摊点聚焦在这里的原因是刚好前面城管来了暂时避避&#xff0c;例如还有一个阿姨剪到一半就跟着过来。这里的城管只是拍了一处没有摊位的地方&…...

音视频入门基础:MPEG2-PS专题(2)——使用FFmpeg命令生成ps文件

一、错误的命令 通过FFmpeg命令可以将mp4文件转换为ps文件&#xff0c;PS文件中包含PS流数据。 由于PS流/PS文件对应的FFInputFormat结构为&#xff1a; const FFInputFormat ff_mpegps_demuxer {.p.name "mpeg",.p.long_name NULL_IF_CONFIG_SMALL…...

整合版canal ha搭建--基于1.1.4版本

开启MySql Binlog&#xff08;1&#xff09;修改MySql配置文件&#xff08;2&#xff09;重启MySql服务,查看配置是否生效&#xff08;3&#xff09;配置起效果后&#xff0c;创建canal用户&#xff0c;并赋予权限安装canal-admin&#xff08;1&#xff09;解压 canal.admin-1…...

[python SQLAlchemy数据库操作入门]-15.联合查询,跨表获取股票数据

哈喽,大家好,我是木头左! 在开始探讨如何利用SQLAlchemy实现复杂的联合查询之前,首先需要深入理解其核心组件——对象关系映射(ORM)。ORM允许开发者使用Python类来表示数据库中的表,从而以一种更直观、面向对象的方式来操作数据库。 SQLAlchemy中的JOIN操作详解 在SQLA…...

PTA数据结构作业一

6-1 链表的插入算法 本题要求实现一个插入函数&#xff0c;实现在链表llist中的元素x之后插入一个元素y的操作。 函数接口定义&#xff1a; int InsertPost_link(LinkList llist, DataType x, DataType y); 其中 llist是操作的链表&#xff0c;x是待插入元素y的前驱节点元素…...