声音克隆GPT-SoVITS

作者:吴业亮
博客:wuyeliang.blog.csdn.net

一、原理介绍

GPT-SoVITS,作为一款结合了GPT(生成预训练模型)和SoVITS(基于变分信息瓶颈技术的歌声转换)的创新工具,正在声音克隆领域掀起一场革命。这款工具凭借其强大的少样本学习能力,使得用户仅需极少的语音样本,便能生成高度逼真的声音克隆,为音频创作带来了前所未有的便利。

1、GPT-SoVITS的技术原理与优势

GPT-SoVITS的核心在于其创新的少样本学习算法。这种算法使得工具能够在接收到极少量的语音样本后,快速构建出一个临时的声音模型,并基于此模型生成与原始录音高度相似的声音克隆。具体而言,当用户上传一段时长仅为五秒的音频文件时,GPT-SoVITS便能通过分析录音中的频率、节奏及音色等特征参数,生成与原始录音高达80%-95%相似度的声音克隆。若增加至一分钟的样本量,则可进一步提升克隆质量,创建出几乎与真人无异的高保真度文本到语音(TTS)模型。

GPT-SoVITS的优势不仅在于其少样本学习能力,还在于其跨语言支持、高频优化以及丰富的功能。该工具支持中文、日语、英语、韩语和粤语五种语言的跨语种合成,使得用户可以用一种语言的录音来生成另一种语言的语音,轻松跨越语言界限。此外,针对网络音频中常见的高频缺失、音质沉闷等问题,GPT-SoVITS进行了全面优化,有效补充了缺失的高频,改善了整体音质。同时,该工具还新增了语速调节、无参考文本模式、更优的混合语种切分等实用功能,进一步拓展了其应用场景。

2、GPT-SoVITS的应用场景
GPT-SoVITS凭借其卓越的性能和丰富的功能,在多个领域展现出了巨大的应用潜力。以下是一些典型的应用场景:

  • 个性化语音助手:通过声音克隆技术,用户可以轻松打造个性化的语音助手,为自己的生活和工作提供便利。
  • 游戏角色配音:在游戏开发中,通过采集角色配音演员的少量录音样本,GPT-SoVITS能够生成符合角色设定的声音,大大节省了后期制作时间和成本。
  • 有声读物制作:利用GPT-SoVITS的文本转语音功能,用户可以轻松将文字内容转化为自然流畅的语音输出,为有声读物的制作提供高效工具。
  • 无障碍服务:对于视力障碍人士来说,GPT-SoVITS可以生成他们熟悉的人的声音来播报信息,提供更加贴心和个性化的无障碍服务。
  • 广告配音与营销:在广告行业中,GPT-SoVITS可以生成各种名人或特定角色的声音来配音广告,提高广告的吸引力和影响力。

3、GPT-SoVITS与千帆大模型开发与服务平台
在探讨GPT-SoVITS的应用时,不得不提的是其与千帆大模型开发与服务平台的结合。千帆大模型开发与服务平台提供了丰富的AI模型开发工具和资源,包括模型训练、部署、优化等一站式服务。GPT-SoVITS作为其中的一款优秀工具,可以充分利用平台提供的资源和支持,进一步发挥其声音克隆和文本转语音的优势。

例如,在千帆大模型开发与服务平台上,用户可以更方便地获取GPT-SoVITS的安装包和更新信息,享受平台提供的专业技术支持和服务。同时,用户还可以利用平台提供的模型训练和优化工具,进一步提升GPT-SoVITS的性能和效果。此外,通过与平台上的其他AI模型进行集成和协同工作,GPT-SoVITS还可以拓展更多的应用场景和功能。
4、原理
1)、语音合成
VITS是一种用于端到端文本到语音(TTS)的模型,结合了对抗学习和条件变分自动编码器,旨在生成高质量的语音效果。近年来,虽然已经提出了多种单阶段训练和并行采样的TTS模型,但它们的样本质量往往无法与传统的两阶段系统相媲美。为了解决这个问题,VITS采用了一种并行的端到端方法,能够生成更自然、更真实的声音。

该模型通过标准化流和对抗训练过程增强的变分推理,显著提升了生成建模的表达能力。此外,VITS引入了随机持续时间预测器,能够从输入文本中合成出节奏各异的语音。这种设计允许模型捕捉潜在变量的不确定性,形成了一种自然的一对多关系,使得同一段文本可以以不同的音高和节奏进行多样化的表达。这种灵活性和高质量的输出使VITS在语音合成领域中具备了广泛的应用潜力。

论文地址:https://arxiv.org/pdf/2106.06103
Github地址:https://github.com/jaywalnut310/vits

在这里插入图片描述

2)、 Whisper语音识别
Whisper是OpenAI开发的先进自动语音识别(ASR)系统,经过训练的语料库包含68万小时的多语言(涵盖98种语言)和多任务监督数据。OpenAI认为,这种庞大且多样化的数据集显著提升了系统对各种口音、背景噪音和专业术语的识别能力,使其在实际应用中表现出色。

除了语音识别功能,Whisper还支持多种语言的转录和翻译,能够将非英语语言直接翻译成英语。这种多功能性使得Whisper不仅适用于语音转文字的任务,还能在国际交流、内容创建和教育等领域发挥重要作用。凭借其出色的准确性和灵活性,Whisper为用户提供了一个强大的工具,有助于打破语言障碍,促进沟通与理解。

论文地址:https://github.com/openai/whisper
GitHub地址:https://arxiv.org/pdf/2212.04356

Whisper的基本原理基于一种Transformer序列到序列模型,旨在处理多种语音任务,包括多语言语音识别、语音翻译、口语语言识别以及语音活动检测。通过将这些任务统一表示为一个需要解码器预测的符号序列,Whisper能够有效地替代传统语音处理管道中的多个阶段,简化了处理流程。

该模型采用多任务训练的格式,使用一系列特殊符号作为任务指示符或分类目标。这种设计不仅提升了模型的灵活性,还使其在处理不同类型的语音输入时表现出色。例如,当面对多种语言或不同口音时,Whisper能够利用其训练数据中的丰富信息,快速适应并提高识别准确性。通过这种创新的方法,Whisper在语音处理领域展示了强大的能力,能够满足多样化的用户需求。
在这里插入图片描述

Whisper系统提供了五种不同的模型尺寸,以平衡速度和准确性。每种模型的设计旨在满足不同应用场景的需求,用户可以根据自己的具体要求选择合适的模型。以下是可用模型的名称、对应的大致内存需求和相对速度:

  • 小型模型:内存需求低,速度快,适合实时语音识别任务,但在复杂音频环境中的准确性可能稍逊。
  • 中型模型:提供更好的准确性,同时保持相对较快的速度,适合大多数日常应用。
  • 大型模型:在准确性上有显著提升,适合对精度要求较高的场景,如医疗记录转录和法律文件审阅,但相对速度略慢。
  • 超大型模型:具有出色的语音识别性能,能够处理复杂口音和技术术语,适合专业领域的使用,内存需求较高,速度相对较慢。
  • 特大模型:提供顶尖的准确性,特别适用于高噪声环境和多方对话场景,内存需求极大,速度较慢,适合不需要实时处理的情况。
    通过这些不同尺寸的模型,用户可以根据自己的硬件资源和应用需求,灵活选择最合适的选项,以实现最佳的语音识别效果。
    在这里插入图片描述
    5、总结
    GPT-SoVITS作为一款革命性的少样本语音转换与合成工具,正在声音克隆领域发挥着越来越重要的作用。其强大的少样本学习能力、跨语言支持、高频优化以及丰富的功能,使得用户能够轻松实现声音克隆和文本转语音等操作。同时,通过与千帆大模型开发与服务平台的结合,GPT-SoVITS还可以进一步拓展其应用场景和功能。相信在未来,GPT-SoVITS将继续引领音频创作领域的发展潮流,为用户带来更多惊喜和可能。在音频创作日益繁荣的今天,GPT-SoVITS无疑为创作者们提供了一个强大的工具。无论是个人娱乐、广告营销还是商业合作,GPT-SoVITS都能发挥其独特的作用,为音频创作领域注入新的活力和创意。随着技术的不断进步和应用场景的不断拓展,我们有理由相信,GPT-SoVITS将会在未来发挥更加重要的作用。

二、环境信息

类别规格
OSUbuntu 20.04
内存32G
cpu16core
磁盘120G
显卡tesla M40
显卡驱动520.61.05
cudacuda_11.8
cudnn9.5.1.17_cuda11

三、环境部署

  1. 创建GPT-SoVITS需要的环境
# conda create -n GS python=3.9
# conda activate GS

2、conda配置
1)、配置清华镜像源在/root/.condarc

channels:- defaults
show_channel_urls: true
default_channels:- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudpytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

您可以遵循上述配置文件中的格式添加第三方源(推荐),或者通过以下命令添加第三方源:

第三方源

conda config --set custom_channels.auto https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/

使用下列命令清除索引缓存。

conda clean -i

3、配置pip 镜像源

# pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

4、GPT-SoVITS安装
1)、 GitHub仓库进行克隆
官网地址:GPT-SoVITSGitHub地址

# git clone https://github.com/RVC-Boss/GPT-SoVITS.git国内源
git clone https://mirror.ghproxy.com/https://github.com/RVC-Boss/GPT-SoVITS.git

2)、进入安装目录

# cd GPT-SoVITS/

3)、执行安装

# bash install.sh
# apt install ffmpeg
# apt install libsox-dev
# conda install -c conda-forge 'ffmpeg<7'

四、下载模型

1、从GPT-SoVITS Models下载预训练的模型并将其放置在GPT_SoVITS/pretrained_models中。
创建项目的虚拟环境后,激活该环境,并执行:

pip install -U huggingface_hub
export HF_ENDPOINT=https://hf-mirror.com

2、下载lj1995/GPT-SoVITS到GPT_SoVITS/pretrained_models目录

huggingface-cli download --resume-download --local-dir-use-symlinks False lj1995/GPT-SoVITS --local-dir GPT_SoVITS/pretrained_models

3、下载G2PW模型,解压缩并重命名为G2PWModel,然后将它们放在GPT_SoVITS/text中

cd GPT_SoVITS/text
wget https://paddlespeech.bj.bcebos.com/Parakeet/released_models/g2p/G2PWModel_1.1.zip
unzip G2PWModel_1.1.zip
mv  G2PWModel_1.1 G2PWModel

4、对于UVR 5(人声/伴奏分离混响去除,另外),从UVR 5权重下载模型并将其放置在tools/uvr5/uvr5_weights中。

huggingface-cli download --resume-download --local-dir-use-symlinks False lj1995/VoiceConversionWebUI --local-dir tools/uvr5/uvr5_weights

将下载的内容拷贝到uvr5_weights目录,内容如下:

(base) root@ubuntu:~/GPT-SoVITS/tools/uvr5/uvr5_weights# ll
total 543500
drwxr-xr-x 3 root root       333 Dec  4 11:10 ./
drwxr-xr-x 6 root root       142 Dec  4 01:48 ../
-rw-r--r-- 1 root root        14 Dec  3 05:31 .gitignore
-rw-r--r-- 1 root root  63454827 Dec  3 23:33 HP2_all_vocals.pth
-rw-r--r-- 1 root root  63454827 Dec  3 23:33 HP2-人声vocals+非人声instrumentals.pth
-rw-r--r-- 1 root root  63454827 Dec  3 23:33 HP3_all_vocals.pth
-rw-r--r-- 1 root root  63454827 Dec  3 23:33 HP5_only_main_vocal.pth
-rw-r--r-- 1 root root  63454827 Dec  3 23:33 HP5-主旋律人声vocals+其他instrumentals.pth
drwxr-xr-x 2 root root        25 Dec  4 01:37 onnx_dereverb_By_FoxJoy/
-rw-r--r-- 1 root root  63666335 Dec  3 23:33 VR-DeEchoAggressive.pth
-rw-r--r-- 1 root root 111925279 Dec  3 23:33 VR-DeEchoDeReverb.pth
-rw-r--r-- 1 root root  63666335 Dec  3 23:33 VR-DeEchoNormal.pth

5、对于中文 ASR(额外功能),从 Damo ASR Model、Damo VAD Model 和 Damo Punc Model 下载模型,并将它们放置在 tools/asr/models 目录中。

# cd GPT-SoVITS/tools/asr/models
# apt-get install git-lfs
# git lfs install
# git clone https://www.modelscope.cn/iic/punc_ct-transformer_zh-cn-common-vocab272727-pytorch.git
# git clone https://www.modelscope.cn/iic/speech_fsmn_vad_zh-cn-16k-common-pytorch.git
# git clone https://www.modelscope.cn/iic/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch.git

五、登录web
1、使用python运行webui.py

# python webui.py

或者这样带语言执行

python webui.py zh_CN

回显如下:

Running on local URL:  http://0.0.0.0:9874

2、改造成service服务,并设置开机启动
创建/etc/systemd/system/GPTSoVits.service

[Unit]
Description=GPTSoVits
After=network.target[Service]
Type=simple
User=root
WorkingDirectory=/root/GPT-SoVITS
ExecStart=/bin/bash -c 'source /root/miniconda3/bin/activate && conda activate GPTSoVits && python webui.py zh_CN'
Restart=on-failure[Install]
WantedBy=multi-user.target

设置开机启动

systemctl daemon-reload
systemctl restart GPTSoVits.service
systemctl enable GPTSoVits.service

2、通过 http://192.168.1.6:9874登录

 http://192.168.1.159:9874

五、使用教程
1、快速克隆
点击1-GPT-SoVITS-TTS—>1c推理–>开启TTS推理WebUI,会新弹出一个界面
在这里插入图片描述
新弹出界面http://192.168.1.159:9872/
在这里插入图片描述
如果报错:

LookupError: 
**********************************************************************Resource cmudict not found.Please use the NLTK Downloader to obtain the resource:>>> import nltk>>> nltk.download('cmudict')

解决办法:

查看nltk.data.path数据目录

(GPTSoVits) root@ubuntu:~# python
Python 3.9.20 (main, Oct  3 2024, 07:27:41) 
[GCC 11.2.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import nltk
print(nltk.data.path[0])
>>> print(nltk.data.path[0])
/root/nltk_data

手动下载库,并导入

(GPTSoVits) root@ubuntu:~# wget https://mirror.ghproxy.com/https://github.com/nltk/nltk_data/archive/refs/heads/gh-pages.zip
(GPTSoVits) root@ubuntu:~# unzip gh-pages.zip
(GPTSoVits) root@ubuntu:~# mkdir  /root/nltk_data
(GPTSoVits) root@ubuntu:~# cd /root/nltk_data
(GPTSoVits) root@ubuntu:~/nltk_data# cp -a  ../nltk_data-gh-pages/packages/* .
(GPTSoVits) root@ubuntu:~/nltk_data# ll

请注意,要保证解压后的文件夹和压缩包同名,且压缩包和解压后的文件需要同时存在于目录中,否则将同样报错Resource xxx not found 例如这样:

(base) root@ubuntu:~/nltk_data/taggers# ll
total 31880
drwxr-xr-x  9 root root     4096 Dec  3 08:31 ./
drwxr-xr-x 12 root root      157 Dec  3 08:26 ../
drwxr-xr-x  2 root root       47 Sep 27  2015 averaged_perceptron_tagger/
drwxr-xr-x  2 root root      159 Jul  5 15:58 averaged_perceptron_tagger_eng/
-rw-r--r--  1 root root      156 Jul 29 10:34 averaged_perceptron_tagger_eng.xml
-rw-r--r--  1 root root  1539115 Jul 29 10:34 averaged_perceptron_tagger_eng.zip
drwxr-xr-x  2 root root       50 Jul 13  2016 averaged_perceptron_tagger_ru/
drwxr-xr-x  2 root root      159 Jul  5 17:44 averaged_perceptron_tagger_rus/
-rw-r--r--  1 root root      207 Jul 29 10:34 averaged_perceptron_tagger_rus.xml
-rw-r--r--  1 root root  5997187 Jul 29 10:34 averaged_perceptron_tagger_rus.zip
-rw-r--r--  1 root root      206 Jul 29 10:34 averaged_perceptron_tagger_ru.xml
-rw-r--r--  1 root root  8628828 Jul 29 10:34 averaged_perceptron_tagger_ru.zip
-rw-r--r--  1 root root      145 Jul 29 10:34 averaged_perceptron_tagger.xml
-rw-r--r--  1 root root  2526731 Jul 29 10:34 averaged_perceptron_tagger.zip
drwxr-xr-x  3 root root       39 Aug 26  2013 maxent_treebank_pos_tagger/
drwxr-xr-x  3 root root       21 Jul 11 12:06 maxent_treebank_pos_tagger_tab/
-rw-r--r--  1 root root      171 Jul 29 10:34 maxent_treebank_pos_tagger_tab.xml
-rw-r--r--  1 root root  3731431 Jul 29 10:34 maxent_treebank_pos_tagger_tab.zip
-rw-r--r--  1 root root      167 Jul 29 10:34 maxent_treebank_pos_tagger.xml
-rw-r--r--  1 root root 10156853 Jul 29 10:34 maxent_treebank_pos_tagger.zip
drwxr-xr-x  2 root root     4096 Jul  4  2022 universal_tagset/
-rw-r--r--  1 root root      236 Jul 29 10:34 universal_tagset.xml
-rw-r--r--  1 root root    19095 Jul 29 10:34 universal_tagset.zip

在每个子目录执行

aa=`find  . | grep .zip`
for v  in $aa; do unzip $v; done

验证测试正常

(GPTSoVits) root@ubuntu:~# python
Python 3.9.20 (main, Oct  3 2024, 07:27:41) 
[GCC 11.2.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from nltk.corpus import cmudict
print(cmudict.entries())
>>> print(cmudict.entries())
[('a', ['AH0']), ('a.', ['EY1']), ('a', ['EY1']), ...]
>>> 

2、通过训练合成音频
1)、打开开启UVR5-WebUI
在这里插入图片描述
2)、在新弹出的界面http://192.168.1.159:9873/

在这里插入图片描述
成功后
在这里插入图片描述
素材音频在如下目录
在这里插入图片描述

点击音频切割
在这里插入图片描述
切割后音频在如下目录
在这里插入图片描述
开启降噪
在这里插入图片描述
成功后文件如下:
在这里插入图片描述

开启离线批量ASR
在这里插入图片描述
开启打标,校准音频和文字内容,
在这里插入图片描述

弹出界面http://192.168.1.159:9871/
逐句校对并保存
在这里插入图片描述
开启一键三连
在这里插入图片描述
成功后
在这里插入图片描述

进行模型微调训练
在这里插入图片描述
如果SoVITS训练报如下错误在这里插入图片描述
解决办法,在webui.py中新增一行如下,并重启服务,再次训练
在这里插入图片描述
开启推理,刷新模型,使界面识别到刚才训练的模型
在这里插入图片描述
选择最下面的模型
在这里插入图片描述
开启推理
在这里插入图片描述
弹出界面http://192.168.1.159:9872/
在这里插入图片描述

合成语音,完成!!!

参考:
https://cloud.baidu.com/article/3384362
https://www.bilibili.com/video/BV1a7pEe9EyC?t=721.6
https://github.com/RVC-Boss/GPT-SoVITS
https://www.yuque.com/baicaigongchang1145haoyuangong/ib3g1e

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/485497.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

记忆泡沫垫市场:解锁舒适睡眠的黄金钥匙与增长潜力的深度剖析

在当今快节奏、高压力的生活中&#xff0c;优质睡眠已成为现代人追求健康生活的重要组成部分。记忆泡沫垫&#xff0c;作为床垫和枕头领域的一次革命性创新&#xff0c;凭借其独特的材质特性和对人体工学的完美贴合&#xff0c;正逐步成为改善睡眠质量的首选解决方案。本文将从…

R语言 | 峰峦图 / 山脊图

目的&#xff1a;为展示不同数据分布的差异。 1. ggplot2 实现 # 准备数据 datmtcars[, c("mpg", "cyl")] colnames(dat)c("value", "type") head(dat) # value type #Mazda RX4 21.0 6 #Mazda RX4 Wag …

完美解决Qt Qml窗口全屏软键盘遮挡不显示

1、前提 说明&#xff1a;我使用的是第三方软键盘 QVirtualKeyboard QVirtualKeyboard: Qt5虚拟键盘支持中英文,仿qt官方的virtualkeyboard模块,但使用QWidget实现。 - Gitee.com 由于参考了几篇文章尝试但没有效果&#xff0c;链接如下&#xff1a; 文章一&#xff1a;可能…

吉林大学23级数据结构上机实验(第7周)

A 去火车站 寒假到了&#xff0c;小明准备坐火车回老家&#xff0c;现在他从学校出发去火车站&#xff0c;CC市去火车站有两种方式&#xff1a;轻轨和公交车。小明为了省钱&#xff0c;准备主要以乘坐公交为主。CC市还有一项优惠政策&#xff0c;持学生证可以免费乘坐一站轻轨&…

MATLAB 最小二乘点云拟合球 (89)

MATLAB 最小二乘点云拟合球 (89) 一、算法介绍二、算法实现1.代码2.结果这是缘,亦是最美的相见 一、算法介绍 球面拟合算法是一种通过数学方法将一组三维点(通常在三维空间中分布)拟合到一个理想的球形表面上。这个过程通常涉及使用最小二乘法来最小化实际数据点与拟合的…

短视频矩阵系统开发|技术源代码部署

短视频矩阵系统通过多账号运营管理、多平台视频智能分发等功能&#xff0c;助力企业实现视频引流、粉丝沉淀和转化。 短视频矩阵系统是一种创新的营销工具&#xff0c;它整合了多账号管理、视频智能分发、数据可视化等多种功能&#xff0c;为企业在短视频领域的发展提供了强大…

若依 ruoyi VUE el-select 直接获取 选择option 的 label和value

1、最新在研究若依这个项目&#xff0c;我使用的是前后端分离的方案&#xff0c;RuoYi-Vue-fast(后端) RuoYi-Vue-->ruoyi-ui(前端)。RuoYi-Vue-fast是单应用版本没有区分那么多的modules 自己开发起来很方便&#xff0c;这个项目运行起来很方便&#xff0c;但是需要自定义的…

【0x01】HCI_Inquiry_Complete事件详解

目录 一、事件概述 二、事件格式及参数 2.1. HCI_Inquiry_Complete事件格式 2.2. 参数 三、HCI_Inquiry_Complete事件触发机制 3.1. 基于查询命令完成的触发 3.2. 受查询环境和设备状态影响的触发 3.3. 与蓝牙协议栈内部逻辑相关的触发 四、事件处理流程 4.1. 事件接…

【Linux系统编程】——Linux操作系统的魔法桥梁:从命令行到内核的奇遇记

文章目录 Linux操作系统的概念&#xff08;是什么&#xff1f;&#xff09;设计操作系统的目的(为什么&#xff1f;)核心功能(怎么办&#xff1f;)如何理解“管理”——软硬件的管理硬件管理软件管理 系统调⽤和库函数概念系统调用&#xff08;System Call&#xff09;库函数&a…

VBA基础2

VBA基础2 sub过程语法对单元格进行赋值操作连续赋值不连续赋值 cells &#xff08;行&#xff0c;列&#xff09;行引用rows列引用 &#xff08;columns&#xff09;offset位移属性End属性&#xff08;指定返回&#xff09; 使用VBA编辑器需要用AltF11打开 或者VB编辑器打开 可…

支持win7系统的onnxruntime

在win7 X86系统上&#xff0c;使用了onnxruntime.dll库做AI识别&#xff0c;但是在win7上运行报0xc0000005的错误 经查&#xff0c;ONNX Runtime从v1.15.0版本开始不再支持Windows 7及其之前的操作系统&#xff0c;即便尝试重新编译源代码亦无法在这些老系统上运行&#xff0c;…

【服务器监控】grafana+Prometheus+node exporter详细部署文档

我们在进行测试时&#xff0c;不可能一直手动看着服务器的性能消耗&#xff0c;这时候就需要有个工具替我们监控服务器的性能消耗。这里记录下grafanaPrometheusnodeExporter的组合用于监控服务器。 简单介绍&#xff1a; grafana&#xff1a;看板工具&#xff0c;所有采集的…

【密码学】分组密码的工作模式

1.电码本模式&#xff08;ECB&#xff09; 优点: 每个数据块独立加密&#xff0c;可并行加密&#xff0c;实现简单。 缺点: 相同明文会产生相同密文&#xff0c;不具备数据完整保护性。 适用于短消息的加密传输 (如一个加密密钥)。 工作流程&#xff1a;用相同的密钥分别对…

PR时间轴

简介 时间轴记录整个项目所发生的一切&#xff0c;它包括视频轨道、音频轨道、字幕轨道&#xff0c;可以队单独的任意轨道进行编辑。 时间轴上还可以使用编辑点对素材进行简单编辑&#xff0c;也可以锁定轨道保证素材不会被其他操作改变。 播放指示器&#xff08;指针&#x…

【RBF SBN READ】hadoop社区基于RBF的SBN READ请求流转

读写分离功能的背景及架构 当前联邦生产集群的各个子集群只有Active NameNode在工作,当读写任务变得繁忙的时候,只有一个Active负责处理的话,此时集群的响应和处理能力业务侧感知会明显下降,为此,我们将引入Observer架构,实现读写功能的分离,使得Active只负责写请求,而…

记事本建java及java命名规范

1.桌面开发&#xff1a;c# 2. 记事本建java&#xff1a; 以class的名称(类名)为名&#xff0c;名称.java 编译jdk&#xff1a;javac 名称.java 调动运行jre : java 名称 查看名称.java里面的内容&#xff1a;cat 名称.java java 的命名规范 大驼峰&#xff08;每个单词首…

YOLOv8模型改进 第二十讲 添加三重注意力机制Triplet Attention 提升小目标/遮挡目标

本文这次分享的是三重注意力机制Triplet Attention。现在注意力机制在计算机视觉任务中被广泛研究和应用&#xff0c;如 Squeeze-and-Excitation Networks (SENet)、Convolutional Block Attention Module (CBAM) 等。然而&#xff0c;这些方法存在一些局限性&#xff0c;例如需…

2024年认证杯SPSSPRO杯数学建模D题(第一阶段)AI绘画带来的挑战解题全过程文档及程序

2024年认证杯SPSSPRO杯数学建模 D题 AI绘画带来的挑战 原题再现&#xff1a; 2023 年开年&#xff0c;ChatGPT 作为一款聊天型AI工具&#xff0c;成为了超越疫情的热门词条&#xff1b;而在AI的另一个分支——绘图领域&#xff0c;一款名为Midjourney&#xff08;MJ&#xff…

如何修复和防止 500 内部服务器错误的发生

当遭遇 500 内部错误时&#xff0c;意味着服务器出现了意外状况&#xff0c;以至于无法对请求予以回应。这种错误往往源于服务器端的各类问题&#xff0c;像是服务器配置出现偏差、脚本存在漏洞或者服务器瞬间负荷过重等。在不少情形下&#xff0c;服务器管理员能够化解此难题&…

算法刷题Day11: BM33 二叉树的镜像

点击题目链接 思路 转换为子问题&#xff1a;左右子树相反转。遍历手法&#xff1a;后序遍历 代码 class Solution:def Transverse(self,root: TreeNode):if root None:return rootnewleft self.Transverse(root.left)newright self.Transverse(root.right)# 对root节点…