python-将文本生成音频
将文本生成音频通常需要结合 文本转语音(TTS,Text-to-Speech) 工具或库来实现,比如 Google TTS (gtts)、Amazon Polly、Microsoft Azure TTS 等。
一、使用 Google TTS (gtts) 将文本生成音频
gtts 是一个简单易用的 Python 库,它使用 Google Translate 的 TTS API,将文本转化为音频。
安装gtts:
pip install gtts
将文本转换为音频文件
以下是使用 gtts 将一段文本保存为音频文件的代码:
from gtts import gTTS
# 定义文本和语言
text = "你好,欢迎使用文本转语音功能。这是一个示例。"
language = "zh" # 中文
# 转换文本为音频
tts = gTTS(text=text, lang=language)
tts.save("text_to_audio.mp3") # 保存为音频文件
print("音频文件已保存为 text_to_audio.mp3")
二、使用 pyttsx3 来支持离线 TTS
如果需要离线处理文本转语音,可以使用 pyttsx3 库,它支持多种 TTS 引擎。
安装 pyttsx3
pip install pyttsx3
使用 pyttsx3 转换文本
以下是示例代码:
import pyttsx3
# 初始化 TTS 引擎
engine = pyttsx3.init()
# 设置语音属性
engine.setProperty('rate', 130) # 语速
engine.setProperty('volume', 1.0) # 音量
# 定义文本内容
text = "这是一个离线文本转语音的示例,我们使用 pyttsx3 来完成。"
engine.save_to_file(text, "offline_text_to_audio.wav") # 保存音频文件
# 执行生成语音
engine.runAndWait()
print("离线音频文件已保存为 offline_text_to_audio.wav")
pyttsx3与gtts 库的介绍
1、pyttsx3 是一个 Python 库,用来实现 文本转语音(TTS, Text-to-Speech) 的功能,支持多种不同的 TTS 引擎,可以离线运行,且操作简单易用。它可以用来生成音频文件或直接播放语音。以下是 pyttsx3 的常用使用方式和操作技巧。
- 安装 pyttsx3
在使用 pyttsx3 之前,需要安装它。可以通过以下命令安装:
pip install pyttsx3
- 常用用法
(1) 基本文本转语音
pyttsx3 默认会使用操作系统支持的语音引擎来播放语音,以下是最简单的使用方式:
import pyttsx3# 初始化 TTS 引擎
engine = pyttsx3.init()
# 输入需要转化的文本
text = "这是一个简单的文本转语音示例。谢谢使用 pyttsx3 库!"
# 使用说话功能
engine.say(text) # 通过 TTS 播放音频
# 执行语音合成任务
engine.runAndWait() # 等待语音播放完成
运行这段代码后,会直接播放一段语音。
(2) 保存语音到文件
如果需要将语音保存到音频文件(如 .wav),可以使用 save_to_file() 方法:
import pyttsx3
# 初始化 TTS 引擎
engine = pyttsx3.init()
# 输入需要转化的文本
text = "这是保存语音到文件的示例,请注意文件格式是 .wav。"
# 保存语音到文件
engine.save_to_file(text, 'output.wav') # 保存为 .wav 文件
# 执行语音合成任务
engine.runAndWait()
print("语音文件已保存为 output.wav")
(3) 设置语音属性
pyttsx3 允许设置语速、音量和语音类型(如男性或女性声音)等属性。
设置语速
默认语速可能较快,可以通过 setProperty(‘rate’, value) 来调整速度:
import pyttsx3
engine = pyttsx3.init()
# 设置语速,默认值约为 200,值越小语速越慢
engine.setProperty('rate', 150)
engine.say("语速已调慢,这是调整后的语速示例。")
engine.runAndWait()
设置音量
音量值范围为 0.0 到 1.0,可以通过 setProperty(‘volume’, value) 来设置:
engine = pyttsx3.init()
# 设置音量,范围在 0.0 至 1.0
engine.setProperty('volume', 0.8)
engine.say("这是设置音量的示例,现在的音量是 80%。")
engine.runAndWait()
设置语音类型(男性或女性)
通过获取 voices 属性来选择不同的语音(男性或者女性):
voices = engine.getProperty('voices')
# 设置为男性声音
engine.setProperty('voice', voices[0].id) # 声音库第一个索引通常为男性
engine.say("这是男性语音的示例。")
# 设置为女性声音
engine.setProperty('voice', voices[1].id) # 声音库第二个索引通常为女性
engine.say("这是女性语音的示例。")
engine.runAndWait()
(4) 获取引擎属性
可以通过 pyttsx3 的属性查询功能,获取当前语音引擎的状态:
print("当前语速:", engine.getProperty('rate'))
print("当前音量:", engine.getProperty('volume'))
voices = engine.getProperty('voices')
print("支持的语音类型:")
for i, voice in enumerate(voices):print(f"{i}: {voice.name}")
这段代码会输出当前语速、音量以及所有支持的语音类型。例如:
当前语速: 200
当前音量: 1.0
支持的语音类型:
0: Microsoft David Desktop - English (United States)
1: Microsoft Zira Desktop - English (United States)
可以选择合适的语音类型进行设置。
(5) 多段文本连续播放
如果需要播放多段文本,可以将多个 engine.say() 放在一起,让它依次播放:
engine.say("第一个文本")
engine.say("第二个文本")
engine.say("第三个文本")
engine.runAndWait() # 按顺序播放所有文本
- 异常处理
(1) 引擎初始化失败问题
如果 .init() 方法报错,可能是语音引擎未正确安装,可以尝试:
确保你的操作系统支持TTS引擎(例如 Windows 内置的语音支持)。
在 Linux 上可以安装 espeak 作为语音引擎:
sudo apt-get install espeak
pip install pyttsx3
(2) 输出不支持指定格式
默认保存文件格式为 .wav,如果需要保存为其他格式(如 .mp3),需要额外工具(如 ffmpeg)来转化。
4. 使用场景
pyttsx3 可以应用于以下场景:
文本播报:自动朗读文章、通知等。
生成语音文件:可以批量生成语音,从而服务于语料生成场景。
多语言支持:虽然库本身支持多语言,但不同系统配置可能限制语言类型(例如中文播报需要配置相应的 TTS 引擎)。
离线语音处理:不依赖在线 API,适合高安全性需求的场景。
5. 注意事项
pyttsx3 是离线语音库,因此适合简单的场景,如果需要更自然的语音,建议尝试在线 TTS 服务(例如 Google Cloud Text-to-Speech、Amazon Polly 等)。
在多语言场景下:
如果系统设置的语音引擎不支持某些语言,可能需要安装其他引擎。
可以尝试切换语音类型,或者改用支持更广泛语言的工具(如 gTTS)。
通过pyttsx3 可以快速实现离线文本转语音,具有高度的灵活性。你可以根据实际需求调整语速、音量和语音类型,同时能够将语音保存到文件中以供后续使用。如果有进一步的定制需求,可以结合其他音频处理工具(如 ffmpeg)完成一些高级效果。
gtts (Google Text-to-Speech) 是一个 Python 库,它调用 Google Translate 的 TTS API,将输入文本转换为语音,并生成 .mp3 文件或直接播放音频。它简单易用,且支持多种语言,非常适合轻量级的文本到语音转换需求。
以下是 gtts 的常用使用方式及详细说明
- 安装 gtts
可以通过 pip 安装 gtts:
pip install gtts
- 常用用法
(1) 将文本转换为语音并保存为文件
这段代码演示了如何将一段文本转换为语音并保存为 .mp3 文件:
from gtts import gTTS
# 定义文本内容
text = "你好,欢迎使用 gtts 进行文本转语音。希望你喜欢这个示例!"
# 定义语言(中文为 "zh")
language = "zh"
# 创建 TTS 对象
tts = gTTS(text=text, lang=language)
# 保存为 MP3 文件
tts.save("output.mp3")
print("语音已保存为 output.mp3 文件")
运行后,音频文件 output.mp3 会保存到当前目录。
(2) 播放生成的语音
可以直接播放生成的语音。如果使用其他库(比如 playsound)播放 gtts 生成的音频:
from gtts import gTTS
from playsound import playsound # 安装 playsound:pip install playsound
# 定义文本内容
text = "你好,这是一个直接播放音频的示例。"
# 定义语言(中文为 "zh")
language = "zh"
# 创建 TTS 对象
tts = gTTS(text=text, lang=language)
# 保存为临时的 MP3 文件
tts.save("temp_audio.mp3")
# 播放 MP3 文件
playsound("temp_audio.mp3")
在运行后,语音文件会直接播放。
- 高级使用
(1) 支持不同语言
gtts 支持 Google Translate 提供的多种语言。以下是切换不同语言的示例:
from gtts import gTTStext_en = "Welcome to use gtts. This is an English example." # 英文文本
text_fr = "Bonjour, ceci est un exemple en français." # 法文文本
# 分别定义语言
language_en = "en" # 英文
language_fr = "fr" # 法文
# 转换文本为语音
tts_en = gTTS(text=text_en, lang=language_en)
tts_fr = gTTS(text=text_fr, lang=language_fr)
# 保存音频
tts_en.save("english.mp3")
tts_fr.save("french.mp3")
print("英语和法语语音文件已保存")
(2) 拼接多个文本段生成语音
如果需要为多个段落生成一个音频,可以拼接文本并统一转换语音:
from gtts import gTTS# 多段文本
text1 = "这是第一段文字。"
text2 = "这是第二段文字,我将它们合并生成语音。"# 拼接文本
final_text = text1 + " " + text2
# 定义语言
language = "zh"
# 转换为语音
tts = gTTS(text=final_text, lang=language)
tts.save("merged_audio.mp3")
print("拼接文本的语音文件已保存为 merged_audio.mp3")
(3) 更改声音的速度
gtts 本身不支持直接调整语速,但可以使用 ffmpeg 或其他工具对生成的音频文件进行后处理以降低或提高速度。
降低语速:
ffmpeg -i output.mp3 -filter:a "atempo=0.8" slower_output.mp3
提高语速:
ffmpeg -i output.mp3 -filter:a "atempo=1.5" faster_output.mp3
(4) 从文件读取文本并生成语音
有时需要从文本文件中读取内容,将其转化成语音:
from gtts import gTTS
# 从文件中读取文本
with open("input.txt", "r", encoding="utf-8") as file:text = file.read()
# 定义语言
language = "zh"
# 转换为语音
tts = gTTS(text=text, lang=language)
tts.save("file_audio.mp3")
print("从文本文件生成的音频已保存为 file_audio.mp3")
(5) 设置 TTS 的慢速模式
gtts 允许使用 slow=True 参数对语音进行慢速设置:
from gtts import gTTS
text = "这是一个慢速语音播放示例。"
language = "zh"
# 将语速设置为慢速
tts = gTTS(text=text, lang=language, slow=True)
tts.save("slow_audio.mp3")
print("慢速语音文件已保存为 slow_audio.mp3")
- 获取支持的语言列表
可以使用 gtts.lang.tts_langs() 来获取所有支持的语言列表:
from gtts.lang import tts_langs
languages = tts_langs()
print("支持的语言列表:")
for lang_code, lang_name in languages.items():print(f"{lang_code}: {lang_name}")
部分输出示例:
en: English
zh: Chinese
fr: French
de: German
es: Spanish
- 常见问题与解决办法
(1) 网络连接问题
gtts 依赖 Google Translate TTS API,需要联网。如果提示 ConnectionError 或 Timeout,请检查网络连接。
(2) 中文语音生成问题
若生成的中文语音无法正常播报:
确保语言代码为 “zh”,即使用简体中文。
检查输入文本是否为有效的 UTF-8 编码。
(3) 播放音频的问题
如果音频保存成功,但无法播放,可以使用 ffmpeg 或其他音频播放器检查音频文件是否损坏。
6. 使用场景扩展
(1) 为应用程序生成提示音
将简短的提示消息转化为语音,用于应用程序的欢迎页面、错误提示等。
(2) 批量生成语音
遍历多个文本文件或文本段,批量生成语音文件。
示例:
texts = ["欢迎使用我们的程序。", "读取完毕,请执行下一步操作。", "已完成处理。"]for i, text in enumerate(texts):tts = gTTS(text=text, lang="zh")tts.save(f"audio_{i+1}.mp3")print("批量语音文件已生成")
(3) 自定义背景音
与 ffmpeg 结合,将语音文件与背景声音混合:
ffmpeg -i text_audio.mp3 -i background_music.mp3 -filter_complex amix=inputs=2:duration=shortest mixed_audio.mp3
相关文章:
python-将文本生成音频
将文本生成音频通常需要结合 文本转语音(TTS,Text-to-Speech) 工具或库来实现,比如 Google TTS (gtts)、Amazon Polly、Microsoft Azure TTS 等。 一、使用 Google TTS (gtts) 将文本生成音频 gtts 是一个简单易用的 Python 库&a…...
【虚幻C++笔记】接口
目录 概述创建接口 概述 简单的说,接口提供一组公共的方法,不同的对象中继承这些方法后可以有不同的具体实现。任何使用接口的类都必须实现这些接口。实现解耦解决多继承的问题 创建接口 // Fill out your copyright notice in the Description page o…...
白酒制造主数据管理全链路解析:业务重塑与AI赋能
作为中国消费领域的支柱产业之一,白酒行业在消费升级、渠道多元化的浪潮下,企业正面临库存积压、串货乱价、质量追溯难等核心痛点。如何通过主数据管理实现业务全链路的标准化与智能化,已成为行业数字化转型的关键命题。 01政策背景与行业现…...
Java与C在典型场景下的性能对比深度剖析
🎁个人主页:User_芊芊君子 🎉欢迎大家点赞👍评论📝收藏⭐文章 🔍系列专栏:AI 【前言】 在计算机编程领域,Java和C语言都是举足轻重的编程语言。Java以其跨平台性、自动内存管理和丰富…...
基于springboot+vue的数码产品抢购系统
开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:Maven3.3.9 系统展示 系统首页 商品信…...
芯片封装制造技术分析
封装技术正由单一防护功能向集成化系统发展,核心需统筹电气参数、热耗散能力与生产成本之间的关系。 一、技术定义与基础功能 芯片封装指通过特定制程将半导体晶片封装于保护结构内的技术,核心作用包括: 环境隔离:阻隔机械冲击、…...
Linux:Makefile
编译器gcc 使用方式:gcc [ 选项 ] 要编译的⽂件 [ 选项 ] [ ⽬标⽂件 ] 编译分为以下几个步骤: 1.预处理(进⾏宏替换) 预处理功能主要包括宏定义,⽂件包含,条件编译,去注释等。 预处理指令是以#号开头的代码⾏。 实例: gcc –E hello.c –o hello…...
下篇:《高阶排序算法:分治思想与性能突破》
个人主页:strive-debug 1. 堆排序(Heap Sort) - **核心思想**:利用 **大根堆(升序)** 或 **小根堆(降序)** 进行选择排序。 - **关键步骤**: 1. **建堆**(…...
5G时代,视频分析设备平台EasyCVR实现通信基站远程安全便捷管控
一、背景介绍 随着移动通信行业的快速发展,各大运营商不断建设越来越多的无人值守通信基站。这些基站大多位于偏远地区,人烟稀少且交通不便,给日常维护带来了许多不便。特别是安装在空旷地带的基站设备,如空调、蓄电池等…...
第 4 篇:Motion 拖拽与手势动画(交互篇)—— 打造直觉化交互体验
Framer Motion 的拖拽与手势系统让实现复杂交互变得异常简单。本文将深入解析核心 API,并通过实战案例演示如何创造自然流畅的交互体验。 🧲 拖拽动画基础 1. 启用拖拽 使用 drag 属性即可开启拖拽能力。支持的值有:true(全方向…...
TDengine 语言连接器(R语言)
简介 R 语言是一种用于统计分析、绘图和数据挖掘的编程语言和软件环境 。 TDengine 支持 R 语言访问 TDengine 数据库,通过 R 语言中的 RJDBC 库可以使 R 语言程序支持访问 TDengine 数据。 以下是安装过程、配置过程以及 R 语言示例代码。 安装过程 在开始之前&…...
Vue Router(3)- 历史记录模式、路由元信息
历史记录模式 Vue Router 支持多种历史管理模式,主要区别在于 URL 的表现形式和页面刷新/直接访问时的处理方式。 如果需要最好的兼容性或没有服务器配置权限,使用 Hash 模式 如果需要干净的 URL 并能配置服务器,使用 History 模式ÿ…...
android studio 运行java main报错
运行某个带main函数的java文件报错 Could not create task :app:Test.main(). > SourceSet with name main not found. 解决办法:在工程的.idea/gradle.xml 文件下添加: <option name"delegatedBuild" value"false" /&g…...
TDengine 3.3.6.3 虚拟表简单验证
涛思新出的版本提供虚拟表功能,完美解决了多值窄表查询时需要写程序把窄表变成宽表的处理过程,更加优雅。 超级表定义如下: CREATE STABLE st01 (ts TIMESTAMP,v0 INT,v1 BIGINT,v2 FLOAT,v3 BOOL) TAGS (device VARCHAR(32),vtype VARCHAR(…...
什么是进程?
目录 冯诺依曼体系 操作系统(OperatorSystem) 设计OS的目的 进程 task_struct 操作 /proc文件夹 父子进程 创建子进程 了解进程之前,我们先说说冯诺依曼体系结构,这是计算机硬件方面的知识。 冯诺依曼体系 我们常见的计算机,如笔记…...
mysql备份存储过程、函数和事件
背景 今天还原mysql数据库备份发现,数据库中没有存储过程和函数,虽然不推荐研发使用数据库的函数、存储过程,但还是免不了有人偶尔使用,所以整理备份和还原策略。 数据库备份 mysqldump -u user -p --routines --triggers --ev…...
【正点原子STM32MP257连载】第五章 ATK-DLMP257B文件系统简介 #文件系统 #SSH
1)实验平台:正点原子ATK-DLMP257B开发板 2)浏览产品:https://www.alientek.com/Product_Details/135.html 3)全套实验源码手册视频下载:正点原子资料下载中心 文章目录 第五章 ATK-DLMP257B文件系统简介5.1…...
实战5:Python使用循环神经网络生成诗歌
实战5:Python使用循环神经网络生成诗歌 使用依赖加载数据词典构建和文本预处理总代码 在我们学习了课程8后,我们在实战练习一个例子。 你的主要任务:学习如何使用简单的循环神经网络(Vanilla RNN)生成诗歌。亚历山大谢…...
【网络安全】谁入侵了我的调制解调器?(二)
文章目录 针对 TR-069 协议 REST API 的攻击思路攻击百万台调制解调器意外发现 Cox 后端 API 的授权绕过漏洞确认我们能够进入任何人的设备访问和更新任何Cox商业客户账户通过泄露的加密密钥覆盖任何人的设备设置执行对任何调制解调器的命令影响最后想说阅读本文前,请先行浏览…...
当纺织车间遇上“数字魔法”--天拓四方飞鸟物联平台+边缘计算采集网关的智造革命
在传统印象里,纺织车间总是机器轰鸣、纱线纷飞,工人穿梭其间手动调整参数,次品率全凭经验“拿捏”。但如今,某纺织龙头企业的智能工厂里,一台台纺织机像被施了“聪明咒”,自己会“说话”、会“思考”&#…...
基于PLC的停车场车位控制系统的设计
2.1 设计目标 本课题为基于PLC的停车场车位控制系统来设计,在此将功能确定如下: 针对8个车位的停车场进行设计将停车场分为入口处,车位处、以及出口处三个部分;每个车位都有指示灯指示当前位置是否空闲,方便司机查找空…...
ios接入穿山甲【Swift】
1.可接入的广告,点击右下角查看接入文档 https://www.csjplatform.com/union/media/union/download/groMore 2.进入接入文档,选择最新版本进行接入 pod Ads-CN-Beta,6.8.0.2pod GMGdtAdapter-Beta, 4.15.22.0pod GDTMobSDK,4.15.30pod KSAdSDK,3.3.74.0p…...
【iOS】OC高级编程 iOS多线程与内存管理阅读笔记——自动引用计数(二)
自动引用计数 前言ARC规则所有权修饰符**__strong修饰符**__weak修饰符__unsafe_unretained修饰符__autoreleasing修饰符 规则属性数组 前言 上一篇我们主要学习了一些引用计数方法的内部实现,现在我们学习ARC规则。 ARC规则 所有权修饰符 OC中,为了处…...
智能语音识别+1.2用SAPI实现文本转语音(100%教会)
欢迎来到智能语音识别系列的第二篇文章. 上一篇文章的地址在这:智能语音处理1.1下载需要的库(100%实现)-CSDN博客 想必上一篇的操作(文本转语音)已经成功实现了 接下来,我们要学习用SAPI技术去实现文本转语音 一.简单介绍SAPI技术 SAPI是架构在COM基础上的,微软…...
Unity导出微信小游戏后无法调起移动端输入框
参考官方demo 参考demo https://gitee.com/wechat-minigame/minigame-unity-webgl-transform/tree/main/Demo/API_V2 里面有对输入文本框适配的处理方法,还有一些其他功能展示 1 使用Unity打开/Demo/API目录,API示例开发版本为Unity 2022.3.14f1。 2 若…...
16.使用豆包将docker-compose的yaml转为k8s的yaml,安装各种无状态服务
文章目录 docker方式httpbinit-toolslinux-commandmyipreference docker-compose安装k8s方式 docker方式 httpbin A simple HTTP Request & Response Service https://httpbin.org/ https://github.com/postmanlabs/httpbin https://github.com/mccutchen/go-httpbin do…...
每日OJ_牛客_kotori和抽卡(二)_数学_C++_Java
目录 牛客_孩子们的游戏_约瑟夫环 题目解析 C代码 Java代码 牛客_孩子们的游戏_约瑟夫环 孩子们的游戏(圆圈中最后剩下的数)_牛客题霸_牛客网 描述: 每年六一儿童节,牛客都会准备一些小礼物和小游戏去看望孤儿院的孩子们。其中,有个游戏…...
整活 kotlin + springboot3 + sqlite 配置一个 SQLiteCache
要实现一个 SQLiteCache 也是很简单的只需要创建一个 cacheManager Bean 即可 // 如果配置文件中 spring.cache.sqlite.enable false 则不启用 Bean("cacheManager") ConditionalOnProperty(name ["spring.cache.sqlite.enable"], havingValue "t…...
JVM:运行时数据区和线程
一、运行时数据区概述 (1)整体架构 JVM 启动时,操作系统会为它分配相应的内存空间,接着 JVM 会对分配到的空间进行划分。当 JVM 退出,这些空间会被回收。JVM 将分配到的内存空间主要分成五部分:程序计数器…...
Lucene.NET + Jieba分词:核心词典与停用词配置详解
文章目录 前言一、dict.txt:核心分词词典1. 文件作用2. 文件格式3. 配置方法 二、cn_synonym.txt:同义词扩展库1. 文件作用2. 文件格式3. 在 Lucene 中使用 三、stopwords.txt:停用词表1. 文件作用2. 文件格式3. 配置方法 四、实战࿱…...
软件测试之测试数据生成(Excel版)
这是Excel生成测试数据的函数使用 1.时间 1.1.时间 例生成2022-05-01之前一年内任意时间点: =TEXT("2022-05-01"-RAND()-RANDBETWEEN(1,365),"yyyy-mm-dd hh:mm:ss")1.2.年月日 yyyy-mm-dd 以当前时间生成10年的日期 =TEXT(NOW()-RAND()-RANDBETWE…...
局域网内Docker镜像共享方法
在局域网内将Docker镜像构建并传输到另一台电脑,可以通过以下几种方法实现。以下是具体步骤及注意事项,结合不同场景的适用方案: 方法一:使用 docker save 和 docker load 传输镜像文件 步骤说明 在构建机上保存镜像 通过 docker…...
解决WinEdt编辑器出现文字不会适应软件宽度的问题
解决WinEdt编辑器出现文字不会适应软件宽度的问题 问题描述解决 问题描述 在使用WinEdt编辑Latex文本时,发现突然动了下键盘,或者突然就在编辑文本时不能自动换行,而是超出了软件屏幕的宽度。 解决 按住ctrl w ,直到界面变成下…...
跨境电商管理转型:日事清通过目标管理、流程自动化助力智优美科技项目管理升级与目标落地复盘
1.客户背景介绍 深圳市智优美科技有限公司是一家专业从事外贸B2C的电子商务公司,公司总部位于深圳市宝安区,旗下拥有三家子公司。目前销售的品类有:家居用品、电子产品、电子配件产品等,在深圳外贸电商行业销售额稳居行业前10名。…...
高防CDN、高防IP vs 高防服务器:核心优势与选型指南
一、高防服务器的核心局限 高防服务器是指通过机房部署硬件防火墙(如集群防火墙、流量清洗设备)来防御DDoS攻击的物理或虚拟服务器。其核心问题在于: 单点防御风险:依赖单一服务器硬扛攻击,若攻击流量超过防御阈值&am…...
入门-C编程基础部分:5、变量
飞书文档https://x509p6c8to.feishu.cn/wiki/PVnawQn5DiVhHhkMApqcDyDvnWg 变量的作用? 存储程序运行时,需要存储一些可能会变化的数据。 C 中每个变量都有特定的类型,类型决定了变量存储的大小和布局。 变量的名称可以由字母、数字和下划…...
Kafka深度解析与实战应用
Kafka深度解析与实战应用 作者:LedgerX技术团队 发布日期:2025年4月16日 引言 在当今数字时代,数据已成为企业的核心资产,而高效处理大规模数据流的能力则成为现代后端系统的关键挑战之一。Apache Kafka作为一个分布式流处理平台…...
数学教学通讯杂志数学教学通讯杂志社数学教学通讯编辑部2025年第6期目录
课程教材教法 “课程思政”视域下的高中数学教学探索与实践——以“函数概念的发展历程”为例 赵文博; 3-617 PBL教学模式下高中统计教学的探索与实践——以“随机抽样(第一课时)”为例 陈沛余; 7-10 “三新”背景下的高中数学教学困境与应对…...
【JavaEE初阶】多线程重点知识以及常考的面试题-多线程进阶(二)
本篇博客给大家带来的是多线程中synchronize的实现原理和JUC(java.util.concurrent) 常见类的相关知识点. 🐎文章专栏: JavaEE初阶 🚀若有问题 评论区见 ❤ 欢迎大家点赞 评论 收藏 分享 如果你不知道分享给谁,那就分享给薯条. 你们的支持是我不断创作的…...
Flutter PIP 插件 ---- iOS Video Call 自定义PIP WINDOW渲染内容
以下是一篇关于在 iOS 中实现画中画(PiP)功能的技术博客: iOS 画中画(PiP)功能实现指南 效果 简介 画中画(Picture in Picture, PiP)是一项允许用户在使用其他应用时继续观看视频内容的功能。本文将详细介绍如何在 iOS 应用中实现 PiP 功能,包括自定义内容渲染和…...
【正点原子STM32MP257连载】第四章 ATK-DLMP257B功能测试——4G模块ME3630测试
1)实验平台:正点原子ATK-DLMP257B开发板 2)浏览产品:https://www.alientek.com/Product_Details/135.html 3)全套实验源码手册视频下载:正点原子资料下载中心 文章目录 第四章 ATK-DLMP257B功能测试——4G模…...
高并发内存池(四):内存释放原理与实现
前言:经过前3期的攻坚,我们已完整实现了内存动态申请的核心模块。接下来将进入关键阶段——内存释放机制的理解与实现,这是构建完整 高并发内存池 的最后一块技术拼图。该模块完成后,项目主体架构将基本成型(达90%&…...
【正点原子STM32MP257连载】第四章 ATK-DLMP257B功能测试——EEPROM、SPI FLASH测试 #AT24C64 #W25Q128
1)实验平台:正点原子ATK-DLMP257B开发板 2)浏览产品:https://www.alientek.com/Product_Details/135.html 3)全套实验源码手册视频下载:正点原子资料下载中心 文章目录 第四章 ATK-DLMP257B功能测试——EEP…...
《突破控件限制:用Qt绘图API解锁高级界面定制能力》
一、基本概念 虽然 Qt 已经内置了很多的控件,但是不能保证现有控件就可以应对所有场景。很多时候我们需要更强的 “自定制” 能力。 Qt 提供了画图相关的 API,允许我们在窗口上绘制任意的图形形状来完成更复杂的界面设计 所谓的 “控件” 本质上也是通…...
MyBatis-Plus 中BaseMapper接口是如何加速微服务内部开发的?
假设我们有一个简单的微服务项目,需要对 User 实体进行基本的数据库操作。 场景一:使用原生 MyBatis 的开发流程 (作为对比) 定义实体类 (Entity): // package com.yourcompany.usermicroservice.entity; public class User {private Long id;private S…...
AIGC-十款数据分析类智能体完整指令直接用(DeepSeek,豆包,千问,Kimi,GPT)
Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列AIGC(GPT、DeepSeek、豆包、千问、Kimi)👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资…...
鸿蒙应用(医院陪诊系统)开发篇1·主页面的tabs布局
引言: 首先可在鸿蒙开发者官网找到DevEco Studio的安装教程。 安装好了之后,我们开始开发。 知识点: tabs布局,鸿蒙官方文档地址:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-contai…...
【大模型】DeepSeek + Coze 打造个人专属AI智能体使用详解
目录 一、前言 二、AI智能体介绍 2.1 什么是AI智能体 2.2 AI智能体核心能力 2.3 AI智能应用场景 三、coze 介绍 3.1 coze是什么 3.1.1 平台概述 3.1.2 平台适用人群 3.2 平台核心功能 3.3 coze可以做什么 3.4 为什么选择coze 四、coze 搭建AI智能体操作实践 4.1 搭…...
7.(vue3.x+vite)弹性布局(flex布局)
1:效果截图 2:代码实现 <template><span style="font-size: 20px">右边固定,左边自适应</span><div class=<...
Python基础总结(五)之字典
文章目录 一、字典的格式二、字典的操作2.1 增加项2.1.1 直接增加项2.1.1 formkeys方法 2.2 删除项2.2.1 clear()方法2.2.2 pop()方法 2.3 修改项2.3.1 直接修改2.3.2 update()方法 2.4 查找项2.4.1 get()方法2.4.2 直接查询2.4.3 items()方法2.4.4 keys()方法2.4.5 values()方…...