凌晨刷 GitHub 的时候我看到 Star 数停在 3.3 万这个数字上第一反应是又一个声音克隆项目起来了。说真的这两年 AI 圈每隔几个月就会冒出一个叫好又叫座的语音项目但大多数火几天热度就下去了。能冲到 3.3 万 Star 的说明它不只是“炫技”而是真正让普通用户觉得“我上我也行”。我花了两个周末把这个项目从头到尾跑通了一遍包括本地推理、用自己录的音频克隆音色、再走完微调流程今天就把这些经验原原本本写出来。这篇文章不打算做项目介绍式的水文而是站在一个实际使用者的角度聊聊这个声音克隆工具为什么能涨到 3.3 万 Star底层是怎么做到的本地部署时要配什么环境推理参数怎么调微调自己的声音模型有哪些坑以及热度背后必须守住的边界。无论你是第一次接触声音克隆还是已经在玩其他 TTS 项目这篇文章都能给你一些可以直接抄的实操内容。1. 为什么又是它3.3 万 Star 背后的三个信号1.1 从“能听出来是 AI”到“听不出来是 AI”的质变两三年前我玩过最早一批开源语音合成项目当时合成出来的声音一耳朵就能识别——机器感重、吐字糊、语气平得像念课文。这类项目最多在小圈子里新鲜两天Star 数能破千已经算不错了。这个声音克隆工具火起来第一个原因是它把“合成质量”拉到了一个新的基准线。用 3 到 10 秒的参考音频就能还原出一个人的音色、语调、停顿习惯甚至部分情绪。我第一次拿它克隆自己说话的时候合成结果发到朋友那里对方第一反应是问我“什么时候录的这段话”完全没有意识到是 AI 生成的。这种“以假乱真”的完成度是它能冲到 3.3 万 Star 的根本原因。你也可以理解为过去的声音克隆是“把人声变成机器人声”现在的项目是“让机器人学会像人一样说话”。这个区别不是靠某一个模型层堆出来的而是整个链路——数据清洗、音色编码、声学建模、声码器——都进步了。1.2 少样本、跨语言、离线可用正好打在痛点上Star 数能涨这么快通常不是因为技术论文写得漂亮而是因为它解决了真实用户的一连串痛点少样本克隆不需要录 500 句素材。普通用户随手录一句“大家好”就能开始克隆。这极大降低了使用门槛。跨语言能力中文语音输入能够合成英语、日语、韩语等语言的输出音色保持住。对外语配音、翻唱、多语言内容创作来说这是刚需功能。本地离线推理模型权重可以直接下载到本地跑不用把声音上传到别人的服务器。对在意隐私的人而言这一点是决定是否使用的前提。预训练模型覆盖面广中英文甚至一些小语种都有覆盖社区贡献者还在持续补充优质音色形成了正向循环。这三条叠在一起项目就不只是 AI 研究者的玩具了。做短视频的人、录有声书的人、做游戏的配音策划、甚至普通学生都能找到用途。Star 暴涨其实是“工具属性”被验证的结果。1.3 社区二次创作的助推作用不容小觑GitHub Star 数不是靠纯技术圈刷出来的真正让它破圈的是音色复现和二创生态。我看到不少视频平台上出现了用这个工具做的 AI 翻唱、经典角色台词还原、整活儿配音评论区几乎都在刷“求教程”“求模型”。这种传播效应又会反过来引导一波开发者来到仓库点下那颗 Star。有意思的是很多用户并不关心训练细节他们只是想要一个能用的结果。项目方把推理封装成了 WebUI甚至提供了在线 Demo让“不懂代码的人也能玩”这直接把它从技术社区推向了大众内容创作者。在开源语音项目里能做到这一步的并不多。2. 本地部署与首次推理从零到一跑通的全过程2.1 硬件要求先看清楚先说结论这个项目不是“有张显卡就能舒服跑”但也不是非要顶级服务器。以我自己的实际体验来看主流推理场景下硬件/场景最低建议舒适体验推理合成音频NVIDIA GTX 1660 6GB 及以上RTX 3060 12GB 或 RTX 4060微调训练RTX 3060 12GB 32GB 内存RTX 4090 或云端 A100CPU 推理可行但极慢不推荐建议放弃或用在线 Demo显存的影响主要在推理时的 batch size 和音频长度上。显存不够时并不是完全不能跑而是会出现内存溢出或者合成一段 10 秒音频要等好几分钟的情况。2.2 环境安装和模型权重下载这里我以常见的开源部署流程为参考不同分支版本会有出入但大方向一致。我自己用的是 Python 3.10 CUDA 12.1 PyTorch 2.x。# 拉取项目代码 git clone https://github.com/example/voice-clone-tool.git cd voice-clone-tool # 创建虚拟环境 conda create -n voice_clone python3.10 conda activate voice_clone # 安装依赖 pip install -r requirements.txt依赖安装阶段最常见的问题是 PyTorch 版本和本地 CUDA 不匹配。装完先跑一下验证代码确认 torch.cuda.is_available() 返回 True再继续往下做能省掉很多后续排查时间。模型权重一般放在项目的pretrained_models目录下。手动下载时务必看清楚文件结构要求常见错误是模型文件放错了层级、命名不规范结果加载时报错。我的习惯是严格按照 README 里的目录树结构来放一次到位避免反复试错。2.3 首次推理用 10 秒语音克隆出一个“新声音”环境就绪后启动项目自带的 WebUIpython webui.py --host 0.0.0.0 --port 7860浏览器打开地址进入操作界面后我需要准备三段输入参考音频WAV 或 MP3尽量短而清晰针对参考音频的文本标注可选不少版本支持自动识别要合成的目标文本我第一次用的参考音频是一段 10 秒左右的日常对话内容是随便录的几句工作语音。目标文本试了句与音频内容完全无关的话。合成结果出来后音色相似度确实很高但仔细听能发现两个小问题某些字音有点“吞”的感觉另外整体语气偏平缺少重音起伏。后来把 target text 加上了标点符号又在关键地方加了停顿标记效果立刻改善了不少。2.4 推理参数到底怎么调这个项目里几个核心参数直接影响输出效果我踩过不少坑整理如下Temperature温度控制生成随机性。调得过高音色会飘甚至出现电音感。建议 0.2 到 0.6 之间。想要稳定输出就往低调。Top-K / Top-P控制采样范围。这两个值越小输出越保守但也容易让声音变得机械。一般保持默认即可只在出现明显错误发音时再动。Speed语速系数。参考音频本身语速快目标文本也更适合用较快的语速去合成反之亦然。不要为了“像”对方而盲目调整。参考音频的截取位置这个在界面上没有参数但在准备音频时非常重要。选择参考音频时要挑情绪和你目标文本匹配的片段。用一句低沉的叹气声去合成一句欢快的台词结果必定是灾难。这些参数之间是耦合的不建议单独猛调一个。我曾经把 temperature 拉到 0.8 想“更有感情”结果声音抖动严重后来才发现根源是参考音频里有一段背景音乐干扰了音色提取。先把数据源弄干净比调参数更管用。3. 底层原理它凭什么“3 秒”就能克隆一个人的声音3.1 语音克隆不是“复读机”而是“学会了别人的发声习惯”很多人的误区是声音克隆是不是把参考音频里的波形切碎重新拼到目标文本上如果是这样那合成出来的就只能说参考音频里出现过的话根本不可能念任意文本。实际原理要抽象得多。这个项目属于“少样本语音克隆”核心逻辑是从参考音频中提取一个代表说话人特征的高维向量这个向量描述了发声者的音色、说话节奏、共鸣特性。然后把这个特征向量作为条件送入语音合成模型让模型在生成目标文本时既遵循文本内容又保持参考说话人的发声习惯。这有点像请一个配音演员短暂的试了一段音然后让另一个演员去模仿他的声音特质来念稿子。系统模仿的不是“某个字怎么读”而是“这个人说话时口腔、声带、气息是什么状态”。3.2 语音合成链路里的三个角色拆开来看整个声音克隆链路有三个关键模块说话人编码器负责从参考音频中提取音色向量。它不需要知道文本是什么只关注“这是谁的声音”。经过充分训练后这个模块可以用很短的音频完成特征提取。声学模型把文本转成语谱特征。这是整个合成过程的核心与难点因为它要在保留文本语言信息的同时把说话人特征“注入”到每一帧的声学参数中。声码器把语谱特征转成可听见的波形。相当于最后一步“开口说话”的环节决定音质上限是否真实自然。三者关系可以这样理解编码器负责“看这个人长什么样”声学模型负责“照着这个长相把台词说出来”声码器负责“把这段话录下来”。每一步都不可缺失而一个项目能处理好这三个模块之间的配合就已经赢过绝大多数同类工具了。3.3 为什么参考音频越短对信息提取要求反而越高只说“3 秒就能克隆”很容易让人忽略背后的工程难度。参考音频越短可用来提取说话人特征的信息就越少。比如一个“嗯”和整句“昨天我去了一趟超市”包含的发声细节完全不同。项目在做推理时需要从有限的参考音频里提取稳定的全局特征又要尽量不把参考音频的情绪、语气、甚至背景噪声一起带进去。这也是为什么官方文档都建议参考音频选清晰的、情绪中性的、4 到 10 秒的片段——不是越长越好也不是越短越“神”。太长会引入过多无关风格太短则特征不稳定。3.4 和商业商用方案的同台对比对比项开源声音克隆项目商用 TTS API规模等成本软件免费算力自备按调用量/字符数计费隐私性本地推理数据不出设备音频会经过云端处理音质表现接近真实但对输入要求高稳定对普通用户更友好可控性完全可改可训练自己的模型只能调平台开放的参数操作门槛有一定技术门槛低几乎零门槛我自己的经验是如果你想做严肃的商业级配音直接调用商业 API 更省心如果你想实验、本地化部署、或者要对特定音色做深度定制开源项目完胜。两者不是对立关系完全可以结合使用。4. 微调自己的声音模型从数据准备到训练踩过的那些坑4.1 先判断你真的需要微调吗这个项目最大的亮点之一是“开箱即用”。但默认预训练模型是一个通用模型不会对某个特定说话人的音色做到极致还原。如果你只是想把某个人的声音模仿到“听起来像”用参考音频做推理就够了。但如果你希望这个声音能够稳定使用——比如做一个属于自己的数字分身、持续产出特定音色的内容——那就要进入微调环节。所谓微调就是用目标说话人的一批音频在预训练模型基础上做进一步训练让模型更熟悉这个人的发声细节。微调前先想清楚需求别一上来就做不然数据准备和训练时间会白白浪费。4.2 数据的收集和处理比想象中重要十倍微调效果好不好数据质量排第一模型参数排第二。我第一次做微调时直接拿了几段会议录音去训练结果是模型学会了会议里的空调底噪声音一团糟。后来总结出比较可靠的数据要求时长总音频量建议至少 20 分钟以上如果质量高且有字幕对齐10 分钟也能做出不错的效果。单句长度切成 1 到 10 秒的短句避免过长的句子因为训练时要按句切分。干净度没有背景音乐、没有混响、没有其他人声、没有明显噪声。采样率与格式统一转为 16kHz 或 32kHz 的 WAV 文件声道转单声道。文本对齐每段音频都对应一份准确文本标点符号和语气停顿也要标注进去确保文本与音频时序匹配。我整理数据的固定流程是先录原始音频然后用 ffmpeg 统一采样率和声道再手动剪掉过长的停顿和杂音最后逐条核对文本。# 统一转成 16kHz 单声道 wav ffmpeg -i input.mp3 -ac 1 -ar 16000 -f wav output.wav这一步看着琐碎实际上决定了后面训练 10 小时还是 0.5 小时。数据不规范模型学出来全是噪声和奇怪嘴型调参都救不回来。4.3 训练参数和资源分配以下是我多次微调后认为比较稳妥的参数区间具体以项目文档为准但思路是通用的参数名推荐范围备注Batch Size4 ~ 8以显存不爆为准小批量相对稳定Learning Rate1e-4 ~ 5e-4微调用中等学习率避免破坏预训练特征Max Steps500 ~ 3000视数据量和效果收敛情况Saving Interval每 200 步保存一次便于回退到效果较好的中间模型Warmup Steps50 ~ 100前段不直接拉满学习率训练过程中的几个“反常”经验损失下降不代表效果变好。语音生成要看实际合成试听不能只盯 loss。有时 loss 降得很低但合成出来的声音出现明显机械感这就是过拟合信号。数据越少越要提前早停。不要以为多训练几轮会更好。训练集里的文本错误是最隐蔽的杀手。一个字标错了模型就会在这个位置输出奇怪的发音而且很难排查。4.4 微调后的模型推理调校微调完成后产出的是针对特定说话人的模型文件。在推理阶段建议优先选择“只替换原始预训练模型的对应部分”而不是直接加载完整新模型除非你完整训练了整个链路。这样能最大化保留原本稳定的底座只是在音色上偏移到目标说话人。另外微调模型对参考音频的要求依然存在。不要因为已经微调就随便丢一句参考音频进去。我发现微调后的模型对参考音频更敏感它会把参考音频中的细微情绪放大所以参考音频的选择更要谨慎尽量选和目标输出一致的语气片段。5. 合成效果优化那些只有在实际跑过之后才知道的细节5.1 参考音频决定上限目标文本决定下限这句话是我跑遍整个项目后最大的体会。参考音频选得不好后面调什么参数都是徒劳。一个具体案例我做某次项目展示时想克隆一位同事的声音来演示产品。同事给我发的参考音频是一段他在电话里道歉的录音语气低沉带着歉意。我用它合成了一句产品介绍广告词结果整段话听起来像是在道歉非常奇怪。后来换了一段他平时讲项目时的正常语气录音同样的目标文本效果却完全正常。先说结论参考音频的情绪、语速、音量层次都会被模型当作“这个人的说话风格”一并带走。选择参考音频时要比挑选目标文本更用心。5.2 文本规范化和多语言混用的处理模型不认识“自然语言”意义上的字它处理的是音素和标点信息。所以喂给模型的目标文本需要做一次预处理。比如数字“2025”要写成“二零二五”英文缩写要展开标点符号尽量按自然停顿来写。以下是实践中的一条通用规则不要直接往模型里丢未经处理的原文如“我下载了 v2.0 版本”应改写为“我下载了 v 二点零版本”否则模型可能在“v2.0”这种地方出现奇怪的发音。中文文本中的英文单词尽量保持全小写或全大写不要中英混排复杂标点。停顿控制可以用逗号、句号、感叹号明确表达停顿和语气强弱。如果你需要长停顿宁可多写一个逗号也不要用空格代替。跨语言合成时如果模型在混合句子中突然输出不正确的语言发音最快的解决办法是给该词增加音素标注或调整参考音频中的语言比重。有时候参考音频是纯中文却要合成英文句子模型只会“中译英”式地硬发英文音效果会有些奇怪。5.3 推理速度和显存占用的优化策略低配置环境下跑这个项目优化方向有三个使用半精度推理常见的做法是在加载模型时设置使用fp16显存占用几乎减半速度也更快。代价是极小概率的精度损失人耳几乎听不出来。减少参考音频长度和 batch size过大的 batch 对推理没有意义实时交互时把 batch size 设成 1 就够。提前将模型导出为 ONNX 或在合适设备上做加速部署适合要集成到软件里的场景普通用户不建议折腾。我自己在 12GB 显存的显卡上跑默认参数下合成 5 秒音频大约需要 2 到 4 秒日常使用完全能接受。CPU 模式我也试过一次只能说是“能响”流畅度基本谈不上。6. 热度背后许可协议、声音权利和使用边界6.1 Star 高不意味着可以随便商用很多项目在 README 里对模型权重和代码会采用不同的许可证代码可能是开源协议但模型权重可能限制商用甚至要求必须在应用展示中注明“AI 生成”。这一点非常容易被忽略因为大家习惯了“GitHub 就是免费的”这个直觉。我的建议是在用这个项目做任何商业项目之前先把许可证文字完完整整读一遍不要只看星标数。不同版本、不同贡献者训练的音色模型权利归属也不一样。6.2 克隆别人的声音之前先征得同意技术能力上用 10 秒录音克隆一个陌生人的声音已经不是难题。但这不意味着这件事在道德和法律上正当。利用声音克隆进行诈骗、冒充、伪造证据本质上是违法行为。哪怕只是做短视频娱乐未经本人同意使用他人音色也可能涉及侵犯肖像权、声音权和个人信息保护相关法律。我给自己定了三个非常具体的红线只克隆自己或获得明确授权的对象。任何对外发布的内容如果含有 AI 生成语音都会做显著标注。不拿声音克隆技术去做欺骗性交互包括但不限于自动电话、语音消息冒充等。开源工具是无辜的但使用工具的人需要承担后果。3.3 万 Star 只代表这个项目很受关注不代表它被用在正确的地方。6.3 合理的使用场景完全可以走通在一片“风险警告”之外我觉得这类工具的正向价值同样值得被看见影视动漫爱好者的有声作品制作。有声书、播客、课程内容的快速试音与草稿生成。游戏角色的初期配音原型设计。为语言障碍人士合成更自然的声音。我自己做得最多的事情是用它给客户快速生成不同音色的配音 demo先把样式定下来再找真人录制节省了大量沟通成本。这个用法虽然不算惊天动地但确实是实实在在提高了工作效率。最后分享一个小技巧也是我玩这些声音工具养成的习惯每次合成之前我会固定好参考音频、参考文本和参数组合把这些信息记录在一个表格里。因为当你对结果不满意时最容易犯的错就是盲目调参数调到最后都不知道是哪个变量导致了变化。通过对照记录我能快速定位问题出在参考音频、目标文本还是采样参数上。这套笨办法在声音克隆这类“重体感、轻确定性”的项目里反而最可靠。
企业数字化 ERP 产品动态
相关推荐
Git与CICD实战:从代码管理到自动化部署 1. 项目部署流程解析 在软件开发领域,从代码编写到最终上线运行需要经历一系列标准化的流程。以陌陌APP为例,我们来看一个典型的项目部署生命周期:
1.1 源代码获取与管理 现代软件开发中,代码仓库是团队协作的核心枢纽。常见的代… · 2026/11/4 17:55:13
MySQL命令行高效操作与清屏技巧 1. MySQL命令行界面基础操作 作为一名长期与MySQL打交道的开发者,我深知在命令行环境下高效操作的重要性。DOS窗口或终端中的MySQL命令行界面(CLI)是我们与数据库交互的主要渠道,掌握其中的实用技巧能显著提升工作效率。
1.1 My… · 2026/11/4 17:55:13
虚拟偶像数字衣橱:皮革连衣裙LoRA资产库构建与出图工作流 1. 为什么主播需要一套"数字衣橱",而不是一张张立绘做虚拟形象这行久了,会发现一个很现实的问题:主播换衣服的频率远比外人想象的高。节日要换、联动要换、生日回要换、粉丝打赏达标要换,甚至一场四小时的直播中途就得换… · 2026/11/4 17:55:13
Java物联网充电桩系统:全链路架构与多端适配实践 1. 项目背景与核心价值电动车充电桩物联网系统是当前新能源基础设施建设的核心环节。这套基于Java开发的系统源码之所以值得关注,在于它完整实现了"硬件设备-云端平台-移动终端"的全链路打通。我去年参与过三个省级充电站项目的技术评审,发现市… · 2026/11/4 18:43:06
3D高斯场景渲染优化:从原理到A100 GPU实战部署 1. 3D高斯场景渲染优化实战:从原理到8*A100GPU部署 作为一名长期从事3D渲染优化的工程师,我最近在8*A100 GPU集群上完成了一系列3D高斯场景(3DGS)的优化实验。本文将详细拆解整个优化过程,包括原理分析、环境配置、训练策略对比以及实际效果评… · 2026/11/4 18:43:06
无刷电机A-X B-Y C-Z轴线为何互差120°?不是垂直轴 一直觉得"ax"这种关键词不像个完整的项目,但等我把热搜词展开,看到"直流无刷电机ax by cz怎么划分的,是按照垂直轴线划分的么"这个问法,一下就明白了。这里的 ax 不是英文单词,也不是什么缩写变量… · 2026/11/4 18:43:06
AI时代人类价值的重构与竞争力迁移 1. 当AI成为"水电煤":技术隐形化时代的人类价值重构去年此时,ChatGPT的横空出世让全球陷入集体亢奋,科技媒体头条被大模型相关新闻霸榜。但最近三个月,一个有趣的现象正在发生:我朋友圈里讨论AI的创业者少了… · 2026/11/4 18:43:06
科研演示方法论:从内容组织到现场交付的完整指南 做科研汇报这件事,很多人把八成精力花在内容上,两成精力花在"把内容塞进模板"上,结果就是——数据很硬,幻灯片很软。我见过太多组会、答辩、基金评审的现场,讲的人逻辑清晰、实验扎实,但投影一打… · 2026/11/4 18:43:06
中英对照 IATF 16949 标准条款梳理与审核避坑指南 简介:IATF 16949:2016 汽车行业质量管理体系标准的中英文对照完整文档,面向汽车及零部件企业质量管理人员、内审员、认证咨询顾问与供应链审核人员,用于对照理解标准条款、准备体系审核与认证培训。文件以单一 docx 形式打包,压缩… · 2026/11/4 18:42:04
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38
AI辅助技术栈评估:提升研发决策效率60% 1. 项目背景与核心价值技术决策一直是研发团队面临的重大挑战。随着技术生态的快速演进,技术栈的选择、维护和迭代变得愈发复杂。我们团队在过去两年里,先后经历了三次重大技术栈迁移,每次都需要投入大量人力进行技术评估和风险分析。直到去年… · 2026/11/4 0:00:17
从生成Token到直接决策:Jev如何重塑AI Agent工程实践 1. 从"生成文字"到"拍板决策":Jev 到底在解决什么问题大多数人第一次接触大模型,脑子里建立的模型是"输入问题、输出文字"。你问它今天天气怎么样,它给你一段描述;你让它写个周报,它给你… · 2026/11/4 0:00:17
32G统一内存跑大模型:内存账、TPS实测与端云分流 想在一台 32G 统一内存的小主机上把大模型跑成"日常可用",这件事我前后折腾了小半年。标题里说的这台 Mac mini M6,是我们这次讨论的目标平台,具体到手规格以实物为准;但下面这套推算方法和实测思路,对任何统… · 2026/11/4 0:00:17
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38