国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

AI語音合成 VITS Fast Fine-tuning,半小時合成專屬模型,部署訓(xùn)練使用講解

這篇具有很好參考價值的文章主要介紹了AI語音合成 VITS Fast Fine-tuning,半小時合成專屬模型,部署訓(xùn)練使用講解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

前言

項(xiàng)目名:VITS-fast-fine-tuning (VITS 快速微調(diào))
項(xiàng)目地址:https://github.com/Plachtaa/VITS-fast-fine-tuning
支持語言:中、日、英
官方簡介:
這個代碼庫會指導(dǎo)你如何將自定義角色(甚至你自己),加入預(yù)訓(xùn)練的VITS模型中,在1小時內(nèi)的微調(diào)使模型具備如下功能:
在 模型所包含的任意兩個角色 之間進(jìn)行聲線轉(zhuǎn)換
以 你加入的角色聲線 進(jìn)行中日英三語 文本到語音合成。
本項(xiàng)目使用的底模涵蓋常見二次元男/女配音聲線(來自原神數(shù)據(jù)集)以及現(xiàn)實(shí)世界常見男/女聲線(來自VCTK數(shù)據(jù)集),支持中日英三語,保證能夠在微調(diào)時快速適應(yīng)新的聲線。

數(shù)據(jù)集

干聲數(shù)據(jù)收集

干聲,一般指錄音以后未經(jīng)過任何空間性質(zhì)或的后期處理和加工的純?nèi)寺暋?br> 為了保證最好的合成效果,數(shù)據(jù)集越干凈越好。當(dāng)然也不是必須使用干聲數(shù)據(jù),也可以使用從視頻中分離的人聲來進(jìn)行訓(xùn)練,效果也還可以。

錄制可以直接使用手機(jī)進(jìn)行錄音,如果電腦有效果較好的麥克風(fēng),也可以使用麥克風(fēng)進(jìn)行錄制(如果可以自定義錄制音頻格式,建議選擇wav)。

如果進(jìn)行視頻人聲分離,我這給大家推薦幾個分離相關(guān)的網(wǎng)站和項(xiàng)目。

  • vocalremover:https://vocalremover.org/zh/
    AI語音合成 VITS Fast Fine-tuning,半小時合成專屬模型,部署訓(xùn)練使用講解,AI,教程,人工智能,python,語音合成,vits,ai

  • tme_studio:https://y.qq.com/tme_studio/index.html#/editor
    AI語音合成 VITS Fast Fine-tuning,半小時合成專屬模型,部署訓(xùn)練使用講解,AI,教程,人工智能,python,語音合成,vits,ai

  • UVR5:https://github.com/Anjok07/ultimatevocalremovergui
    AI語音合成 VITS Fast Fine-tuning,半小時合成專屬模型,部署訓(xùn)練使用講解,AI,教程,人工智能,python,語音合成,vits,ai

  • demucs:https://github.com/facebookresearch/demucs
    AI語音合成 VITS Fast Fine-tuning,半小時合成專屬模型,部署訓(xùn)練使用講解,AI,教程,人工智能,python,語音合成,vits,ai

音頻轉(zhuǎn)碼

將音頻轉(zhuǎn)碼為wav格式,碼率等配置保持原始音頻質(zhì)量即可??梢允褂酶袷焦S、ShanaEncoder等轉(zhuǎn)碼軟件進(jìn)行音頻轉(zhuǎn)碼。

音頻分割

將我們的音頻數(shù)據(jù)切分成多個5-15s的小段,這個范圍僅供參考。需要注意的是,如果音頻時長過長,在訓(xùn)練過程中會占用更多的顯存,所以為了降低顯存和顯卡負(fù)擔(dān),建議大家切分成小段。

那么切分方式同樣也多種多樣,可以使用視頻剪輯軟件、音頻編輯軟件、格式轉(zhuǎn)換軟件、第三方軟件等。
我這邊就以windows用戶為例,給大家推薦一款開源的音頻批量自動分割軟件slicer-gui(源自b站),官方下載地址:https://github.com/flutydeer/audio-slicer/releases/download/v1.1.0/slicer-gui-windows-v1.1.0.zip

下載完成,解壓后打開,運(yùn)行slicer-gui.exe
AI語音合成 VITS Fast Fine-tuning,半小時合成專屬模型,部署訓(xùn)練使用講解,AI,教程,人工智能,python,語音合成,vits,ai

選擇待處理的音頻文件,設(shè)置需要切分的音頻參數(shù),選擇輸出路徑,點(diǎn)擊start即可。默認(rèn)配置運(yùn)行也可以,視情況可以微調(diào)參數(shù)。(需要注意,軟件需要
AI語音合成 VITS Fast Fine-tuning,半小時合成專屬模型,部署訓(xùn)練使用講解,AI,教程,人工智能,python,語音合成,vits,ai
AI語音合成 VITS Fast Fine-tuning,半小時合成專屬模型,部署訓(xùn)練使用講解,AI,教程,人工智能,python,語音合成,vits,ai

完成以上分割后,我們將我們分割好的音頻文件,存入一個文件夾中,需要注意的是,此文件夾的命名就是我們訓(xùn)練時的說話人配置,所以需要慎重取名,并不要和其他說話人重復(fù)。最后將存放音頻的文件夾再存入一個名為:custom_character_voice 的文件夾中,最后打包壓縮包即可。需要注意,此文件夾在源碼中是默認(rèn)的配置,所以建議大家保持一致,可以避免不必要的麻煩。那么最終的文件目錄結(jié)構(gòu)如下:

custom_character_voice
├───speaker0
│   ├───1.wav
│   ├───...
│   └───2.wav
└───speaker1
    ├───1.wav
    ├───...
    └───2.wav

環(huán)境搭建

服務(wù)器選購

本文中,以AutoDL平臺為例,如果您的個人計(jì)算機(jī)顯卡顯存在4GB及以上(建議4GB+),可以使用個人來進(jìn)行訓(xùn)練。
AutoDL官網(wǎng):https://www.autodl.com/home
完成注冊后,我們選購一臺合適的服務(wù)器,我這以Tesla T4為例(期間的付費(fèi)實(shí)名等操作這里不做展開)。
AI語音合成 VITS Fast Fine-tuning,半小時合成專屬模型,部署訓(xùn)練使用講解,AI,教程,人工智能,python,語音合成,vits,ai

服務(wù)器購買后,可以使用鏡像,平臺社區(qū)有很多作者發(fā)布了自己的鏡像,可以搜索vits查找相關(guān)鏡像。選擇做好的鏡像可以大大降低我們的環(huán)境部署的時間。大家可以直接選擇以下的vits-fast的鏡像,然后運(yùn)行我們的服務(wù)器。
AI語音合成 VITS Fast Fine-tuning,半小時合成專屬模型,部署訓(xùn)練使用講解,AI,教程,人工智能,python,語音合成,vits,ai

開機(jī)后,在右上角控制臺,容器實(shí)例中,我們可以看到我們的服務(wù)器的相關(guān)信息。
AI語音合成 VITS Fast Fine-tuning,半小時合成專屬模型,部署訓(xùn)練使用講解,AI,教程,人工智能,python,語音合成,vits,ai
點(diǎn)擊JupyterLab,打開在線面板,再打開終端。
AI語音合成 VITS Fast Fine-tuning,半小時合成專屬模型,部署訓(xùn)練使用講解,AI,教程,人工智能,python,語音合成,vits,ai

運(yùn)行環(huán)境和前期準(zhǔn)備

由于我選擇的鏡像是so-vits-svc-v10,會有些許出入,但整體不會對項(xiàng)目運(yùn)行使用造成影響。
python:3.8.10
AI語音合成 VITS Fast Fine-tuning,半小時合成專屬模型,部署訓(xùn)練使用講解,AI,教程,人工智能,python,語音合成,vits,ai

我們先安裝git,在終端運(yùn)行命令sudo apt install git -y
然后clone項(xiàng)目到/root目錄。(注意,如果您選擇的VITS-fast-fine-tuning的鏡像,那可能需要先刪除默認(rèn)的VITS-fast-fine-tuning文件夾,重新clone項(xiàng)目)

git clone https://github.com/Plachtaa/VITS-fast-fine-tuning.git

如果您沒有選擇做好的官方鏡像,則需要手動安裝相關(guān)環(huán)境,具體可以參考官方筆記:https://colab.research.google.com/drive/1pn1xnFfdLK63gVXDwV4zCXfVeo8c-I-0?usp=sharing

1. 安裝運(yùn)行環(huán)境

cd VITS-fast-fine-tuning
python -m pip install --upgrade --force-reinstall regex
python -m pip install --upgrade --force-reinstall numba
python -m pip install --force-reinstall soundfile
python -m pip install --force-reinstall gradio
python -m pip install imageio==2.4.1
python -m pip install --upgrade youtube-dl
python -m pip install moviepy
python -m pip install -r requirements.txt
python -m pip install --upgrade pyzmq
cd monotonic_align/
mkdir monotonic_align
python setup.py build_ext --inplace
cd ..
mkdir pretrained_models
wget https://huggingface.co/datasets/Plachta/sampled_audio4ft/resolve/main/sampled_audio4ft_v2.zip
unzip sampled_audio4ft_v2.zip
mkdir video_data
mkdir raw_audio
mkdir denoised_audio
mkdir custom_character_voice
mkdir segmented_character_voice

2.下載預(yù)訓(xùn)練模型(以下步驟如果不進(jìn)行訓(xùn)練,皆可以跳過)

可以根據(jù)自己的需求下載對應(yīng)的模型,不一定全部都下載。

mkdir pretrained_models/{C,CJ,CJE}

wget https://huggingface.co/spaces/sayashi/vits-uma-genshin-honkai/resolve/main/model/D_0-p.pth -O ./pretrained_models/CJ/D_0.pth
wget https://huggingface.co/spaces/sayashi/vits-uma-genshin-honkai/resolve/main/model/G_0-p.pth -O ./pretrained_models/CJ/G_0.pth
wget https://huggingface.co/spaces/sayashi/vits-uma-genshin-honkai/resolve/main/model/config.json -O ./pretrained_models/CJ/finetune_speaker.json

wget https://huggingface.co/spaces/Plachta/VITS-Umamusume-voice-synthesizer/resolve/main/pretrained_models/D_trilingual.pth -O ./pretrained_models/CJE/D_0.pth
wget https://huggingface.co/spaces/Plachta/VITS-Umamusume-voice-synthesizer/resolve/main/pretrained_models/G_trilingual.pth -O ./pretrained_models/CJE/G_0.pth
wget https://huggingface.co/spaces/Plachta/VITS-Umamusume-voice-synthesizer/resolve/main/configs/uma_trilingual.json -O ./pretrained_models/CJE/finetune_speaker.json

wget https://huggingface.co/datasets/Plachta/sampled_audio4ft/resolve/main/VITS-Chinese/D_0.pth -O ./pretrained_models/C/D_0.pth
wget https://huggingface.co/datasets/Plachta/sampled_audio4ft/resolve/main/VITS-Chinese/G_0.pth -O ./pretrained_models/C/G_0.pth
wget https://huggingface.co/datasets/Plachta/sampled_audio4ft/resolve/main/VITS-Chinese/config.json -O ./pretrained_models/C/finetune_speaker.json

下載好后,需要將配置文件和預(yù)訓(xùn)練模型移動到指定路徑,我這里提供了shell腳本,您可以創(chuàng)建名為 init.sh 的文件,貼入以下內(nèi)容,然后通過 bash init.sh CJE 來運(yùn)行腳本,選擇需要使用的預(yù)訓(xùn)練模型。最后就是預(yù)訓(xùn)練模型的傳參,分別是 CJE、CJ、C。

#!/bin/bash
if [ "$1" = "CJE" ]
then
    cp -rf pretrained_models/CJE/* pretrained_models/
    rm -rf OUTPUT_MODEL/*
    #rm -rf custom_character_voice/*
    cp -rf pretrained_models/CJE/finetune_speaker.json configs/
elif [ "$1" = "CJ" ]
then
    cp -rf pretrained_models/CJ/* pretrained_models/
    rm -rf OUTPUT_MODEL/*
    #rm -rf custom_character_voice/*
    cp -rf pretrained_models/CJ/finetune_speaker.json configs/
elif [ "$1" = "C" ]
then
    cp -rf pretrained_models/C/* pretrained_models/
    rm -rf OUTPUT_MODEL/*
    #rm -rf custom_character_voice/*
    cp -rf pretrained_models/C/finetune_speaker.json configs/
else
    cp -rf pretrained_models/CJE/* pretrained_models/
    rm -rf OUTPUT_MODEL/*
    #rm -rf custom_character_voice/*
    cp -rf pretrained_models/CJE/finetune_speaker.json configs/
fi

3.上傳數(shù)據(jù)集并解壓

將我們前面準(zhǔn)備好的數(shù)據(jù)集上傳到服務(wù)器中
AI語音合成 VITS Fast Fine-tuning,半小時合成專屬模型,部署訓(xùn)練使用講解,AI,教程,人工智能,python,語音合成,vits,ai

然后使用unzip命令(如果沒有可以使用apt安裝),解壓到項(xiàng)目路徑中,注意圖片路徑
AI語音合成 VITS Fast Fine-tuning,半小時合成專屬模型,部署訓(xùn)練使用講解,AI,教程,人工智能,python,語音合成,vits,ai

4.數(shù)據(jù)預(yù)處理

我這里提供了shell腳本,您可以創(chuàng)建一個data_pre.sh的文件,將以下內(nèi)容寫入,然后使用bash data_pre.sh 運(yùn)行,第一個傳參是選擇訓(xùn)練的目標(biāo)語言(需要有配套的預(yù)訓(xùn)練模型),第二個傳參為0表示不使用預(yù)訓(xùn)練模型,直接進(jìn)行訓(xùn)練,非0則使用預(yù)訓(xùn)練模型。例如: bash data_pre.sh CJE 就是使用預(yù)訓(xùn)練模型CJE訓(xùn)練CJE三語模型。

#!/bin/bash
if [ $# -eq 1 ]; then
        lang=$1
else
        lang=CJE
fi
python scripts/video2audio.py
python scripts/denoise_audio.py
python scripts/long_audio_transcribe.py --languages "$lang" --whisper_size large
python scripts/short_audio_transcribe.py --languages "$lang" --whisper_size large
python scripts/resample.py

if [ "$2" = "0" ]
then
	python preprocess_v2.py --languages "$lang"
else
	python preprocess_v2.py --add_auxiliary_data True --languages "$lang"
fi

訓(xùn)練

在完成運(yùn)行環(huán)境和前期準(zhǔn)備后,則可以進(jìn)行我們的訓(xùn)練了。
打開終端,在項(xiàng)目根目錄運(yùn)行以下命令即可,其中 -m 后為模型輸出路徑, --max_epochs 后為最大迭代次數(shù),到達(dá)后會自動停止。您可以根據(jù)自己需求自行更改,默認(rèn)為存儲在 OUTPUT_MODEL文件夾中,訓(xùn)練100個迭代。

mkdir OUTPUT_MODEL
python finetune_speaker_v2.py -m "./OUTPUT_MODEL" --max_epochs "100" --drop_speaker_embed True

下面是訓(xùn)練日志內(nèi)容,可以看到訓(xùn)練相關(guān)的配置,迭代次數(shù),損失率,輸出的模型等內(nèi)容。等待訓(xùn)練完成即可,期間也可以隨時終止訓(xùn)練。

AI語音合成 VITS Fast Fine-tuning,半小時合成專屬模型,部署訓(xùn)練使用講解,AI,教程,人工智能,python,語音合成,vits,ai

推理合成

將我們的模型和配置文件放到指定文件夾下(配置文件放到項(xiàng)目根目錄,模型放到OUTPUT_MODEL文件夾下),項(xiàng)目根目錄運(yùn)行以下命令,打開web UI服務(wù),進(jìn)行推理。其中 --model_dir 后就是模型路徑,可以自行修改,配置文件默認(rèn)讀取的 項(xiàng)目路徑下的 finetune_speaker.json 。
需要注意的是,默認(rèn)服務(wù)跑在 http://127.0.0.1:7860,如果您需要公網(wǎng)訪問,可以做修改端口至6006,開放AutoDL對應(yīng)實(shí)例的自定義服務(wù)功能,或者自建內(nèi)網(wǎng)穿透。

python VC_inference.py --model_dir ./OUTPUT_MODEL/G_latest.pth --share True

為了方便,可以在個人電腦上進(jìn)行合成,將模型和配置文件下載到本地,然后使用官方提供的windows合成包,下載鏈接:https://github.com/Plachtaa/VITS-fast-fine-tuning/releases/download/webui-v1.1/inference.rar
解壓后,將我們的模型和配置文件都放到解壓后的根目錄內(nèi),模型改名為G_latest.pth,配置文件改名為finetune_speaker.json,運(yùn)行inference.exe即可自動加載。
頁面簡單易懂,就可以盡情合成了。
AI語音合成 VITS Fast Fine-tuning,半小時合成專屬模型,部署訓(xùn)練使用講解,AI,教程,人工智能,python,語音合成,vits,ai文章來源地址http://www.zghlxwxcb.cn/news/detail-718518.html

到了這里,關(guān)于AI語音合成 VITS Fast Fine-tuning,半小時合成專屬模型,部署訓(xùn)練使用講解的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 小白理解GPT的“微調(diào)“(fine-tuning)

    對于GPT-3.5,我們實(shí)際上并不能在OpenAI的服務(wù)器上直接訓(xùn)練它。OpenAI的模型通常是預(yù)訓(xùn)練好的,也就是說,它們已經(jīng)在大量的語料上進(jìn)行過訓(xùn)練,學(xué)習(xí)到了語言的基本規(guī)則和模式。 然而,OpenAI提供了一種叫做\\\"微調(diào)\\\"(fine-tuning)的方法,讓我們可以在預(yù)訓(xùn)練好的模型基礎(chǔ)上進(jìn)行

    2024年02月04日
    瀏覽(21)
  • 對 ChatGLM-6B 做 LoRA Fine-tuning

    ChatGLM-6B 是一個支持中英雙語的對話語言模型,基于 GLM (General Language Model)。它只有 62 億個參數(shù),量化后最低 (INT4 量化) 只需要 6GB 的顯存,完全可以部署到消費(fèi)級顯卡上。在實(shí)際使用這個模型一段時間以后,我們發(fā)現(xiàn)模型的對話表現(xiàn)能力確實(shí)非常不錯。那么,基于這個模型做

    2023年04月25日
    瀏覽(19)
  • ChatGPT進(jìn)階:利用Fine-tuning訓(xùn)練自己的模型

    ChatGPT是“大力出奇跡”的經(jīng)典表現(xiàn),大模型給ChatGPT帶來了驚人的智能,但是要訓(xùn)練這樣的大模型,可是十分燒錢的,根據(jù)OpenAI給出的數(shù)據(jù),1700億參數(shù)的Davinci模型從頭訓(xùn)練一遍,大概需要耗時3個月,耗資150萬美元。那我們普通人或者小公司面對這個高門檻,對自定義模型是

    2024年02月17日
    瀏覽(24)
  • 一分鐘搞懂 微調(diào)(fine-tuning)和prompt

    大家都是希望讓預(yù)訓(xùn)練語言模型和下游任務(wù)靠的更近,只是實(shí)現(xiàn)的方式不一樣。Fine-tuning中:是預(yù)訓(xùn)練語言模型“遷就“各種下游任務(wù);Prompting中,是各種下游任務(wù)“遷就“預(yù)訓(xùn)練語言模型。 微調(diào)(fine-tuning)和prompt是自然語言處理領(lǐng)域中常用的兩個術(shù)語,它們都是指訓(xùn)練和

    2023年04月26日
    瀏覽(31)
  • 深度學(xué)習(xí)概念(術(shù)語):Fine-tuning、Knowledge Distillation, etc

    這里的相關(guān)概念都是基于已有預(yù)訓(xùn)練模型,就是模型本身已經(jīng)訓(xùn)練好,有一定泛化能力。需要“再加工”滿足別的任務(wù)需求。 進(jìn)入后GPT時代,對模型的Fine-tuning也將成為趨勢,借此機(jī)會,我來科普下相關(guān)概念。 有些人認(rèn)為微調(diào)和訓(xùn)練沒有區(qū)別,都是訓(xùn)練模型,但是微調(diào)是在原

    2024年02月09日
    瀏覽(61)
  • openai模型個性化訓(xùn)練Embedding和fine-tuning區(qū)別

    現(xiàn)在基于自然語言和文檔進(jìn)行對話的背后都是使用的基于嵌入的向量搜索。OpenAI在這方面做的很好,它的Cookbook(github.com/openai/openai-cookbook)上有很多案例,最近他們對文檔做了一些更新。 GPT擅長回答問題,但是只能回答它以前被訓(xùn)練過的問題,如果是沒有訓(xùn)練過的數(shù)據(jù),比如

    2024年02月15日
    瀏覽(23)
  • llamafactory:unified efficient fine-tuning of 100+ lanuage models

    llamafactory:unified efficient fine-tuning of 100+ lanuage models

    1.introduction llamafactory由三個主要模塊組成,Model Loader,Data Worker,Trainer。 2.Efficient fine-tuning techniques 2.1 Efficient Optimization 凍結(jié)微調(diào):凍結(jié)大部分參數(shù),同時只在一小部分解碼器層中微調(diào)剩余參數(shù),GaLore將梯度投影到低維空間,以內(nèi)存高效的方法實(shí)現(xiàn)全參數(shù)學(xué)習(xí);相反,Lora凍結(jié)

    2024年04月14日
    瀏覽(38)
  • 了解大語言模型的參數(shù)高效微調(diào)(Parameter-Effcient Fine-Tuning)

    了解大語言模型的參數(shù)高效微調(diào)(Parameter-Effcient Fine-Tuning)

    ?? CSDN 葉庭云 : https://yetingyun.blog.csdn.net/ 大語言模型在眾多應(yīng)用領(lǐng)域?qū)崿F(xiàn)了突破性的進(jìn)步,顯著提升了各種任務(wù)的完成度。然而,其龐大的規(guī)模也帶來了高昂的計(jì)算成本。這些模型往往包含數(shù)十億甚至上千億參數(shù),需要巨大的計(jì)算資源來運(yùn)行。特別是,當(dāng)需要為特定的下游

    2024年04月14日
    瀏覽(38)
  • Fine-tuning Large Enterprise Language Models via Ontological Reasoning

    本文是LLM系列文章,針對《Fine-tuning Large Enterprise Language Models via Ontological Reasoning》的翻譯。 大型語言模型(LLM)利用特定任務(wù)的訓(xùn)練數(shù)據(jù),將微調(diào)作為一種適應(yīng)不同目標(biāo)的技術(shù)。任務(wù)特異性應(yīng)該與領(lǐng)域定向齊頭并進(jìn),即LLM的專業(yè)化,以準(zhǔn)確地處理給定感興趣領(lǐng)域的任務(wù)。然

    2024年02月09日
    瀏覽(48)
  • 基于ChatYuan-large-v2 語言模型 Fine-tuning 微調(diào)訓(xùn)練 廣告生成 任務(wù)

    基于ChatYuan-large-v2 語言模型 Fine-tuning 微調(diào)訓(xùn)練 廣告生成 任務(wù)

    ChatYuan-large-v2 是一個開源的支持中英雙語的功能型對話語言大模型,與其他 LLM 不同的是模型十分輕量化,并且在輕量化的同時效果相對還不錯,僅僅通過 0.7B 參數(shù)量就可以實(shí)現(xiàn) 10B 模型的基礎(chǔ)效果,正是其如此的輕量級,使其可以在普通顯卡、 CPU 、甚至手機(jī)上進(jìn)行推理,而

    2024年02月13日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包