最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

emotion-vits環(huán)境配置的一些踩坑

2023-03-27 18:06 作者:斜眼飛舞  | 我要投稿

本人只使用了使用樣例音頻作為情感輸入的功能和@一只有夢(mèng)想的咸魚電臺(tái)?訓(xùn)練的模型,懶得訓(xùn)練感情模型了,之后有時(shí)間再說。

資料參考:

可控制情感的綾地寧寧語音合成!基于VITS模型_嗶哩嗶哩_bilibili

【VITS】基于emotion-vits的LL全員語音模型_嗶哩嗶哩_bilibili

https://www.bilibili.com/read/cv20607867

首先用Anaconda3安裝虛擬環(huán)境,本人顯卡是筆記本3070,然后建議使用python3.7,不然后面自動(dòng)安裝的時(shí)候有些依賴包的版本會(huì)出問題你還得再改。

然后先去把pytorch安裝了,選擇CUDA的版本,因?yàn)閼械锰焯鞊Q,學(xué)習(xí)用的yolov8用的是11.3的,所以我就選了11.3的pytorch,當(dāng)然不訓(xùn)練的話你用CPU的也可以。再pytorch官網(wǎng)的舊版本下載頁(yè)面點(diǎn)擊ctrl+f搜索。我要11.3版本的我就搜cu113。然后找到對(duì)應(yīng)的pip命令安裝。

如果你用不到情感詞典,在第四段代碼中把導(dǎo)入情感詞典的注釋掉。因?yàn)閠ts就是在這一段定義的。

# all_emotions = np.load("all_emotions.npy")

# 音頻情感分類結(jié)果

# emotion_dict = json.load(open("sample_wav.json", "r"))

import random

def tts(txt, sid, emotion, roma=False, length_scale = 1):

? ? if roma:

? ? ? ? stn_tst = get_text_byroma(txt, hps)

? ? else:

? ? ? ? stn_tst = get_text(txt, hps)

? ? with torch.no_grad():

? ? ? ? x_tst = stn_tst.unsqueeze(0)

? ? ? ? x_tst_lengths = torch.LongTensor([stn_tst.size(0)])

? ? ? ? import emotion_extract

? ? ? ? emo = torch.FloatTensor(emotion_extract.extract_wav(emotion))

? ? ? ? # sid = torch.LongTensor([0])

? ? ? ? # if type(emotion) ==int:

? ? ? ? #? ? ?emo = torch.FloatTensor(all_emotions[emotion]).unsqueeze(0)

? ? ? ? # elif emotion == "random":

? ? ? ? #? ? ?emo = torch.randn([1,1024])

? ? ? ? # elif emotion == "random_sample":

? ? ? ? #? ? ?randint = random.randint(0, all_emotions.shape[0])

? ? ? ? #? ? ?emo = torch.FloatTensor(all_emotions[randint]).unsqueeze(0)

? ? ? ? #? ? ?print(randint)

? ? ? ? # elif emotion.endswith("wav"):

? ? ? ? #? ? ?import emotion_extract

? ? ? ? #? ? ?emo = torch.FloatTensor(emotion_extract.extract_wav(emotion))

? ? ? ? # else:

? ? ? ? #? ? ?emo = torch.FloatTensor(all_emotions[emotion_dict[emotion]]).unsqueeze(0)


? ? ? ? audio = net_g.infer(x_tst, x_tst_lengths, sid=sid, noise_scale=0.667, noise_scale_w=0.8, length_scale=length_scale, emo=emo)[0][0,0].data.float().numpy()

? ? ipd.display(ipd.Audio(audio, rate=hps.data.sampling_rate, normalize=False))


get_roma是pyopenjtalk的函數(shù),安裝上。

chardet也安裝上。

transformers也安裝上。

Jupyter notebook遇到500的問題可以自己搜一下解決辦法。

先把前幾段代碼都跑了該導(dǎo)入的導(dǎo)入了,用到情感詞典的可以不管。

然后運(yùn)行使用樣例音頻作為情感輸入的一段。

另外運(yùn)行的時(shí)候可能缺少一些轉(zhuǎn)換詞典之類的

# 使用音頻文件作為感情輸入

txt = "疲れた?甘ったれたこと言ってんじゃないわよ!"

txtr=get_roma(txt, hps)

tts(txtr, torch.LongTensor([1]), emotion="./short normal.wav", roma=True, length_scale = 1)

這個(gè)LongTensor[]里面的數(shù)字就是你載入的模型里的講話者序號(hào),后面的emotion就是從當(dāng)前路徑開始的音頻文件,get_roma是把日文轉(zhuǎn)換成羅馬音的。

這一段代碼我之前遇到過:

ImportError: cannot import name 'logging' from 'huggingface_hub' (D:\Anaconda3\envs\vits\lib\site-packages\huggingface_hub\__init__.py)

這個(gè)我沒找到解決辦法,當(dāng)時(shí)是python3.8的環(huán)境,我干脆換3.7了,之后沒有報(bào)錯(cuò)。

然后還有可能遇到:

TypeError: load() takes 1 positional argument but 2 were given

這個(gè)是librosa版本的問題,去google了一下,stackoverflow上有解決辦法,就是換成librosa的0.9.2版本,因?yàn)橹鞍惭b可能給你安裝了個(gè)0.10.0之后的。重裝之后重新打開ipynb文件。

現(xiàn)在就可以根據(jù)樣例音頻作為情感輸入合成音頻了。



但是有個(gè)小提醒,樣例音頻最好是用原句,這樣效果最好。不要用不同的語言,不同的語言表達(dá)情感的輕重音和升降調(diào)是有差別的,導(dǎo)出結(jié)果會(huì)非常怪異。如果對(duì)音調(diào)什么的細(xì)節(jié)不滿意,可以自己先用get_roma函數(shù)輸出羅馬音音素,然后自己調(diào)整一下字符比如箭頭啊什么的,然后輸入到新的字符串,改為tts函數(shù)的第一個(gè)變量,然后輸出。

總之如果懂一些python的話這些會(huì)方便許多。


總之感謝@一只有夢(mèng)想的咸魚電臺(tái)?和@Rcell?大佬的努力,本人電腦還在跑其他模型,可能最近還是會(huì)鴿子一段時(shí)間。有時(shí)間了我自己想辦法制作一個(gè)語音庫(kù)填補(bǔ)一些空白。

之后可能會(huì)試試so-vits和AI畫圖,不得不說真的是在親身經(jīng)歷一場(chǎng)科技革命,以后二創(chuàng)會(huì)方便不少了。



emotion-vits環(huán)境配置的一些踩坑的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
新龙县| 海口市| 胶南市| 南涧| 苗栗市| 阳西县| 日土县| 黄骅市| 巴彦淖尔市| 九龙城区| 碌曲县| 洮南市| 开封市| 镇平县| 十堰市| 忻州市| 康马县| 南投县| 鄂托克前旗| 黎平县| 新龙县| 灵宝市| 拜泉县| 英德市| 雅安市| 平果县| 镶黄旗| 自治县| 民乐县| 滕州市| 泰来县| 建德市| 永顺县| 阿城市| 垫江县| 广德县| 武夷山市| 庄河市| 汝阳县| 兖州市| 固始县|