您的位置:首頁(yè) > 軟件教程 > 教程 > GPT-SoVITS語(yǔ)音合成模型實(shí)踐

GPT-SoVITS語(yǔ)音合成模型實(shí)踐

來源:好特整理 | 時(shí)間:2024-09-30 09:55:05 | 閱讀:170 |  標(biāo)簽: T v 語(yǔ)音合成 S OV   | 分享到:

1.概述 GPT-SoVITS是一款開源的語(yǔ)音合成模型,結(jié)合了深度學(xué)習(xí)和聲學(xué)技術(shù),能夠?qū)崿F(xiàn)高質(zhì)量的語(yǔ)音生成。其獨(dú)特之處在于支持使用參考音頻進(jìn)行零樣本語(yǔ)音合成,即使沒有直接的訓(xùn)練數(shù)據(jù),模型仍能生成相似風(fēng)格的語(yǔ)音。用戶可以通過微調(diào)模型,進(jìn)一步提升其性能,以適應(yīng)特定的應(yīng)用需求。 2.內(nèi)容 2.1 

1.概述

GPT-SoVITS是一款開源的語(yǔ)音合成模型,結(jié)合了深度學(xué)習(xí)和聲學(xué)技術(shù),能夠?qū)崿F(xiàn)高質(zhì)量的語(yǔ)音生成。其獨(dú)特之處在于支持使用參考音頻進(jìn)行零樣本語(yǔ)音合成,即使沒有直接的訓(xùn)練數(shù)據(jù),模型仍能生成相似風(fēng)格的語(yǔ)音。用戶可以通過微調(diào)模型,進(jìn)一步提升其性能,以適應(yīng)特定的應(yīng)用需求。

2.內(nèi)容

2.1?GPT-SoVITS簡(jiǎn)介

這個(gè)開源的文本到語(yǔ)音(TTS)項(xiàng)目可以在Linux、MacOS和Windows系統(tǒng)上運(yùn)行,具有極高的靈活性和兼容性。用戶只需提供一段長(zhǎng)達(dá)1分鐘的音頻文件,即可輕松克隆特定的聲音。該項(xiàng)目支持將漢語(yǔ)、英語(yǔ)和日語(yǔ)的文本轉(zhuǎn)換為克隆的語(yǔ)音,為多語(yǔ)言環(huán)境中的應(yīng)用提供了便利。

GPT-SoVITS語(yǔ)音合成模型實(shí)踐

2.2?語(yǔ)音合成

VITS是一種用于端到端文本到語(yǔ)音(TTS)的模型,結(jié)合了對(duì)抗學(xué)習(xí)和條件變分自動(dòng)編碼器,旨在生成高質(zhì)量的語(yǔ)音效果。近年來,雖然已經(jīng)提出了多種單階段訓(xùn)練和并行采樣的TTS模型,但它們的樣本質(zhì)量往往無(wú)法與傳統(tǒng)的兩階段系統(tǒng)相媲美。為了解決這個(gè)問題,VITS采用了一種并行的端到端方法,能夠生成更自然、更真實(shí)的聲音。

該模型通過標(biāo)準(zhǔn)化流和對(duì)抗訓(xùn)練過程增強(qiáng)的變分推理,顯著提升了生成建模的表達(dá)能力。此外,VITS引入了隨機(jī)持續(xù)時(shí)間預(yù)測(cè)器,能夠從輸入文本中合成出節(jié)奏各異的語(yǔ)音。這種設(shè)計(jì)允許模型捕捉潛在變量的不確定性,形成了一種自然的一對(duì)多關(guān)系,使得同一段文本可以以不同的音高和節(jié)奏進(jìn)行多樣化的表達(dá)。這種靈活性和高質(zhì)量的輸出使VITS在語(yǔ)音合成領(lǐng)域中具備了廣泛的應(yīng)用潛力。

GPT-SoVITS語(yǔ)音合成模型實(shí)踐

2.3 Whisper語(yǔ)音識(shí)別

Whisper是OpenAI開發(fā)的先進(jìn)自動(dòng)語(yǔ)音識(shí)別(ASR)系統(tǒng),經(jīng)過訓(xùn)練的語(yǔ)料庫(kù)包含68萬(wàn)小時(shí)的多語(yǔ)言(涵蓋98種語(yǔ)言)和多任務(wù)監(jiān)督數(shù)據(jù)。OpenAI認(rèn)為,這種龐大且多樣化的數(shù)據(jù)集顯著提升了系統(tǒng)對(duì)各種口音、背景噪音和專業(yè)術(shù)語(yǔ)的識(shí)別能力,使其在實(shí)際應(yīng)用中表現(xiàn)出色。

除了語(yǔ)音識(shí)別功能,Whisper還支持多種語(yǔ)言的轉(zhuǎn)錄和翻譯,能夠?qū)⒎怯⒄Z(yǔ)語(yǔ)言直接翻譯成英語(yǔ)。這種多功能性使得Whisper不僅適用于語(yǔ)音轉(zhuǎn)文字的任務(wù),還能在國(guó)際交流、內(nèi)容創(chuàng)建和教育等領(lǐng)域發(fā)揮重要作用。憑借其出色的準(zhǔn)確性和靈活性,Whisper為用戶提供了一個(gè)強(qiáng)大的工具,有助于打破語(yǔ)言障礙,促進(jìn)溝通與理解。

Whisper的基本原理基于一種Transformer序列到序列模型,旨在處理多種語(yǔ)音任務(wù),包括多語(yǔ)言語(yǔ)音識(shí)別、語(yǔ)音翻譯、口語(yǔ)語(yǔ)言識(shí)別以及語(yǔ)音活動(dòng)檢測(cè)。通過將這些任務(wù)統(tǒng)一表示為一個(gè)需要解碼器預(yù)測(cè)的符號(hào)序列,Whisper能夠有效地替代傳統(tǒng)語(yǔ)音處理管道中的多個(gè)階段,簡(jiǎn)化了處理流程。

該模型采用多任務(wù)訓(xùn)練的格式,使用一系列特殊符號(hào)作為任務(wù)指示符或分類目標(biāo)。這種設(shè)計(jì)不僅提升了模型的靈活性,還使其在處理不同類型的語(yǔ)音輸入時(shí)表現(xiàn)出色。例如,當(dāng)面對(duì)多種語(yǔ)言或不同口音時(shí),Whisper能夠利用其訓(xùn)練數(shù)據(jù)中的豐富信息,快速適應(yīng)并提高識(shí)別準(zhǔn)確性。通過這種創(chuàng)新的方法,Whisper在語(yǔ)音處理領(lǐng)域展示了強(qiáng)大的能力,能夠滿足多樣化的用戶需求。

GPT-SoVITS語(yǔ)音合成模型實(shí)踐


Whisper系統(tǒng)提供了五種不同的模型尺寸,以平衡速度和準(zhǔn)確性。每種模型的設(shè)計(jì)旨在滿足不同應(yīng)用場(chǎng)景的需求,用戶可以根據(jù)自己的具體要求選擇合適的模型。以下是可用模型的名稱、對(duì)應(yīng)的大致內(nèi)存需求和相對(duì)速度:

  • 小型模型:內(nèi)存需求低,速度快,適合實(shí)時(shí)語(yǔ)音識(shí)別任務(wù),但在復(fù)雜音頻環(huán)境中的準(zhǔn)確性可能稍遜。
  • 中型模型:提供更好的準(zhǔn)確性,同時(shí)保持相對(duì)較快的速度,適合大多數(shù)日常應(yīng)用。
  • 大型模型:在準(zhǔn)確性上有顯著提升,適合對(duì)精度要求較高的場(chǎng)景,如醫(yī)療記錄轉(zhuǎn)錄和法律文件審閱,但相對(duì)速度略慢。
  • 超大型模型:具有出色的語(yǔ)音識(shí)別性能,能夠處理復(fù)雜口音和技術(shù)術(shù)語(yǔ),適合專業(yè)領(lǐng)域的使用,內(nèi)存需求較高,速度相對(duì)較慢。
  • 特大模型:提供頂尖的準(zhǔn)確性,特別適用于高噪聲環(huán)境和多方對(duì)話場(chǎng)景,內(nèi)存需求極大,速度較慢,適合不需要實(shí)時(shí)處理的情況。

通過這些不同尺寸的模型,用戶可以根據(jù)自己的硬件資源和應(yīng)用需求,靈活選擇最合適的選項(xiàng),以實(shí)現(xiàn)最佳的語(yǔ)音識(shí)別效果。

GPT-SoVITS語(yǔ)音合成模型實(shí)踐

3.GPT-SoVITS安裝與部署

3.1 配置要求

1.訓(xùn)練

  • Windows
    • 需支持CUDA的nVIDIA顯卡,顯存至少6GB。
    • 不支持的顯卡包括:10系之前的所有型號(hào)、GTX 1060及以下、GTX 1660及以下、GTX 2060及以下,以及3050 4GB顯卡。
    • 操作系統(tǒng)需為Windows 10或11。
    • 如果沒有顯卡,系統(tǒng)會(huì)自動(dòng)切換至CPU訓(xùn)練,但速度非常慢。
  • macOS
    • 需運(yùn)行macOS 14或更高版本。
    • 必須安裝Xcode命令行工具,可通過運(yùn)行xcode-select --install完成安裝。
  • Linux
    • 熟練使用Linux環(huán)境。
    • 需配備顯存至少為6GB的顯卡。
    • 同樣,如果沒有顯卡,系統(tǒng)將自動(dòng)切換至CPU訓(xùn)練,速度較慢。

2.推理

  • Windows
    • 需支持CUDA的nVIDIA顯卡,顯存至少4GB(未經(jīng)過測(cè)試,3GB可能無(wú)法完成語(yǔ)音合成,因此推測(cè)4GB應(yīng)該足夠)。
    • 操作系統(tǒng)需為Windows 10或11。
    • 如果沒有顯卡,系統(tǒng)會(huì)自動(dòng)識(shí)別并使用CPU進(jìn)行推理。
  • macOS
    • 需運(yùn)行macOS 14或更高版本。
    • 必須安裝Xcode命令行工具,方法同上。
  • Linux
    • 熟練使用Linux環(huán)境。
    • 需配備顯存至少為4GB的顯卡。
    • 如果沒有顯卡,系統(tǒng)將自動(dòng)識(shí)別并使用CPU進(jìn)行推理。

通過這些配置要求,用戶可以確保系統(tǒng)能夠高效地進(jìn)行訓(xùn)練和推理,以實(shí)現(xiàn)最佳的性能表現(xiàn)。

3.2 Mac環(huán)境要求

1.軟件要求

  • 確保已通過運(yùn)行 xcode-select --install 安裝 Xcode 命令行工具。
  • 安裝 Homebrew 以便于安裝必要的軟件(如 git、ffmpeg)。

2.安裝 conda(如果已安裝可以跳過)

測(cè)試通過的 Python 和 PyTorch 版本:

  • Python 3.9、Pytorch 2.2.1

可以通過如下命令檢測(cè)是否已安裝。

3.安裝FFmpeg(如果已安裝可以跳過)

可以通過如下命令檢測(cè)是否已安裝以及版本要大于等于6.1

3.3?項(xiàng)目準(zhǔn)備

1.下載項(xiàng)目代碼

如果沒有安裝Git,打開終端執(zhí)行

如果已安裝Git,直接在終端中定位到要存放項(xiàng)目的目錄(此處以桌面為例,請(qǐng)按實(shí)際情況操作,本文檔所有路徑皆基于此前提),然后克隆倉(cāng)庫(kù)到本地,~/代表當(dāng)前用戶目錄下

2.下載預(yù)訓(xùn)練模型(直接參考項(xiàng)目README.md就好)

從 GPT-SoVITS Models 下載預(yù)訓(xùn)練模型,并將它們解壓替換 ~/desktop/GPT-SoVITS/GPT_SoVITS/pretrained_models 。對(duì)于 UVR5(人聲/伴奏分離和混響移除)(推薦使用UVR5客戶端,可以跳過這步) 的是UVR5教程從 UVR5 Weights 下載模型,并將它們放置在 ~/GPT-SoVITS/tools/uvr5/uvr5_weights 中。(若使用UVR5客戶端,可以跳過這步)對(duì)于中文自動(dòng)語(yǔ)音識(shí)別,從 Damo ASR Model 下載模型,將它們解壓替換 ~/desktop/GPT-SoVITS/tools/asr/models 。

3.4?環(huán)境準(zhǔn)備

1.創(chuàng)建環(huán)境

先關(guān)閉終端,再打開終端輸入

遇到y(tǒng)/n的就一直點(diǎn)y回車
如果遇到:connot find conda,那是因?yàn)閏onda沒裝好,輸入

查看有沒有裝好?梢栽囋囍匦麓蜷_終端。

2.安裝依賴

終端輸入

3.運(yùn)行

4.訓(xùn)練模型

GPT-SoVITS WebUI提供了全面的功能,包括數(shù)據(jù)集制作、模型微調(diào)訓(xùn)練和語(yǔ)音克隆推理。如果您只是想體驗(yàn)效果,可以直接使用官方分享的語(yǔ)音模型。這種設(shè)計(jì)使用戶能夠迅速上手,無(wú)需復(fù)雜的設(shè)置或深入的技術(shù)知識(shí)。

4.1?數(shù)據(jù)集處理

1.處理原音頻

如果原音頻足夠干凈,比如從游戲中提取的干聲,可以跳過這一步。接著,點(diǎn)擊開啟Open UVR5-WebUI,稍等片刻后,打開瀏覽器訪問 http://localhost:9873。

GPT-SoVITS語(yǔ)音合成模型實(shí)踐

2.切割音頻

在切割音頻之前,建議將所有音頻文件導(dǎo)入音頻軟件(如剪映)進(jìn)行音量調(diào)整,將最大音量設(shè)置為-9dB到-6dB,過高的音量應(yīng)予以刪除。

打開WebUI后,首先輸入原音頻的文件夾路徑。接下來,可以調(diào)整以下建議參數(shù):

  • min_length:根據(jù)顯存大小調(diào)整,顯存越小,值調(diào)得越小。
  • min_interval:根據(jù)音頻的平均間隔進(jìn)行調(diào)整。如果音頻過于密集,可以適當(dāng)降低該值。
  • max_sil_kept:此參數(shù)會(huì)影響句子的連貫性,不同音頻需不同調(diào)整。如果不確定,建議保持默認(rèn)值。

點(diǎn)擊“開啟語(yǔ)音切割”,切割過程將立即完成,默認(rèn)輸出路徑為 output/slicer_opt。這樣,您就能快速獲得處理后的音頻片段。

GPT-SoVITS語(yǔ)音合成模型實(shí)踐

打開切分文件夾,將時(shí)長(zhǎng)超過“顯存數(shù)”秒的音頻手動(dòng)切分至該時(shí)長(zhǎng)以下。例如,如果顯卡顯存為10GB,建議將超過10秒的音頻切分至10秒以下,或者直接刪除(稍微超出一點(diǎn)的可以不處理)。過長(zhǎng)的音頻可能會(huì)導(dǎo)致顯存爆滿。

如果經(jīng)過語(yǔ)音切割后仍然是一個(gè)文件,說明音頻過于密集,可以嘗試調(diào)低min_interval參數(shù)以獲得更好的切割效果。這樣可以確保音頻文件在處理時(shí)不會(huì)超出顯存限制。

3.音頻降噪

如果原音頻足夠干凈,比如從游戲中提取的干聲,可以跳過這一步。輸入剛才切割完成音頻的文件夾路徑,默認(rèn)為 output/slicer_opt,然后點(diǎn)擊“開啟語(yǔ)音降噪”。處理完成后,降噪后的音頻將默認(rèn)輸出到 output/denoise_opt 目錄。這樣,您就可以輕松獲得清晰的音頻文件。

GPT-SoVITS語(yǔ)音合成模型實(shí)踐

4.打標(biāo)并校對(duì)

只需輸入剛才的切分文件夾路徑,如果音頻經(jīng)過降噪處理,默認(rèn)輸出路徑為 output/denoise_opt;如果沒有降噪,則為 output/slicer_opt。

接下來,選擇達(dá)摩ASR或Fast Whisper,然后點(diǎn)擊“開啟離線批量ASR”。默認(rèn)輸出路徑為 output/asr_opt。請(qǐng)注意,這一步可能需要等待一段時(shí)間,因?yàn)橄到y(tǒng)需要下載相應(yīng)的模型。

  • 達(dá)摩ASR:專用于中文識(shí)別,效果最佳。
  • Fast Whisper:支持99種語(yǔ)言,尤其在英語(yǔ)和日語(yǔ)的識(shí)別方面表現(xiàn)突出。建議選擇large V3模型,語(yǔ)種選擇自動(dòng)(auto)即可。

需要注意的是,由于識(shí)別出的文本可能不夠準(zhǔn)確,建議進(jìn)行人工校對(duì)標(biāo)注(這一步較耗時(shí)間,如果不追求極致效果可以選擇跳過)。這里我只是為了演示流程,所以此步驟可以略過。

GPT-SoVITS語(yǔ)音合成模型實(shí)踐

4.2?微調(diào)訓(xùn)練

1.?數(shù)據(jù)集格式化

在1-GPT-SOVITS-TTS選項(xiàng)卡中,填寫以下信息:

  • 實(shí)驗(yàn)/模型名:輸入實(shí)驗(yàn)名稱,確保不要使用中文。
  • 文本標(biāo)注文件:選擇您的標(biāo)注文件。
  • 訓(xùn)練集音頻文件目錄:指定音頻數(shù)據(jù)集的文件夾路徑。

確保所有路徑和文件名正確無(wú)誤,以便順利進(jìn)行后續(xù)操作。

GPT-SoVITS語(yǔ)音合成模型實(shí)踐

填寫完成后,您可以選擇逐個(gè)點(diǎn)擊下面的三個(gè)按鈕,等待每個(gè)操作執(zhí)行結(jié)束后再點(diǎn)擊下一個(gè)。如果遇到報(bào)錯(cuò),請(qǐng)查看后臺(tái)日志,有些報(bào)錯(cuò)只需重試即可解決。

另外,您也可以直接使用“開啟一鍵三連”按鈕,一鍵完成這三步操作,節(jié)省時(shí)間和精力。

GPT-SoVITS語(yǔ)音合成模型實(shí)踐

2.訓(xùn)練微調(diào)模型

選擇 1B-微調(diào)訓(xùn)練 子選項(xiàng)卡,配置 batch_size 等參數(shù)。然后依次點(diǎn)擊 開啟 SoVITS 訓(xùn)練 開啟 GPT 訓(xùn)練 。請(qǐng)注意,這兩個(gè)訓(xùn)練任務(wù)不能同時(shí)進(jìn)行(除非您有兩張顯卡)。如果訓(xùn)練過程中中斷,您可以直接再點(diǎn)擊開始訓(xùn)練,系統(tǒng)會(huì)從最近的保存點(diǎn)繼續(xù)。

對(duì)于 SoVITS 訓(xùn)練,建議將 batch_size 設(shè)置為顯存的一半以下。過高的設(shè)置可能導(dǎo)致顯存爆滿,并不是越高就越快。您需要根據(jù)數(shù)據(jù)集的大小進(jìn)行調(diào)整,而不是嚴(yán)格按照顯存的一半來設(shè)置。如果出現(xiàn)顯存不足的情況,請(qǐng)適當(dāng)降低 batch_size。以下是針對(duì)切片長(zhǎng)度為10秒時(shí),不同顯存下 SoVITS 訓(xùn)練的最大 batch_size 的實(shí)測(cè)值供您參考;如果切片更長(zhǎng)或數(shù)據(jù)集更大,則需要適當(dāng)減少。

接下來,設(shè)置訓(xùn)練輪數(shù)。SoVITS 模型的輪數(shù)可以設(shè)置得高一些,因?yàn)橛?xùn)練速度較快。而對(duì)于 GPT 模型,通常建議設(shè)置輪數(shù)為10,不要超過20,以確保訓(xùn)練效率和模型性能的平衡。

GPT-SoVITS語(yǔ)音合成模型實(shí)踐

4.3 推理

1.開啟推理服務(wù)

選擇 1C-推理 子選項(xiàng)卡,配置模型路徑(如果模型沒有顯示出來,可以點(diǎn)擊右側(cè)的按鈕進(jìn)行刷新)。然后,點(diǎn)擊 開啟 TTS 推理 WEBUI 按鈕以打開推理頁(yè)面。在推理頁(yè)面中,您可以輸入文本并生成語(yǔ)音,體驗(yàn)?zāi)P偷男Ч?

GPT-SoVITS語(yǔ)音合成模型實(shí)踐

稍等片刻后,打開瀏覽器訪問 http://localhost:9872。

GPT-SoVITS語(yǔ)音合成模型實(shí)踐

2.語(yǔ)音克隆推理

在推理頁(yè)面中,第一步選擇所需的模型。第二步上傳參考語(yǔ)音和文本(建議時(shí)長(zhǎng)在5秒到10秒之間,參考音頻非常重要,它會(huì)影響模型學(xué)習(xí)語(yǔ)速和語(yǔ)氣,請(qǐng)認(rèn)真選擇)。第三步輸入您希望用于語(yǔ)音克隆的文本,準(zhǔn)備開始生成語(yǔ)音。

GPT-SoVITS語(yǔ)音合成模型實(shí)踐

5.總結(jié)

GPT-SoVITS是一款開源語(yǔ)音合成框架,結(jié)合了生成對(duì)抗網(wǎng)絡(luò)和變分推理技術(shù),能夠?qū)崿F(xiàn)高質(zhì)量的文本到語(yǔ)音轉(zhuǎn)換。該框架支持多種功能,包括模型微調(diào)、語(yǔ)音克隆和多語(yǔ)言處理,用戶可以通過友好的Web界面輕松操作。GPT-SoVITS尤其適合于生成自然流暢的語(yǔ)音,廣泛應(yīng)用于游戲、影視配音和語(yǔ)音助手等領(lǐng)域。

6.結(jié)束語(yǔ)

這篇博客就和大家分享到這里,如果大家在研究學(xué)習(xí)的過程當(dāng)中有什么問題,可以加群進(jìn)行討論或發(fā)送郵件給我,我會(huì)盡我所能為您解答,與君共勉!

另外,博主出新書了《 深入理解Hive 》、同時(shí)已出版的《 Kafka并不難學(xué) 》和《 Hadoop大數(shù)據(jù)挖掘從入門到進(jìn)階實(shí)戰(zhàn) 》也可以和新書配套使用,喜歡的朋友或同學(xué), 可以 在公告欄那里點(diǎn)擊購(gòu)買鏈接購(gòu)買博主的書 進(jìn)行學(xué)習(xí),在此感謝大家的支持。關(guān)注下面公眾號(hào),根據(jù)提示,可免費(fèi)獲取書籍的教學(xué)視頻。

小編推薦閱讀

好特網(wǎng)發(fā)布此文僅為傳遞信息,不代表好特網(wǎng)認(rèn)同期限觀點(diǎn)或證實(shí)其描述。

相關(guān)視頻攻略

更多

掃二維碼進(jìn)入好特網(wǎng)手機(jī)版本!

掃二維碼進(jìn)入好特網(wǎng)微信公眾號(hào)!

本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請(qǐng)發(fā)郵件[email protected]

湘ICP備2022002427號(hào)-10 湘公網(wǎng)安備:43070202000427號(hào)© 2013~2024 haote.com 好特網(wǎng)