ubuntu下的chattts 學習6:音色固定的學習

魔搭社區

該區提供了隨機種子級音樂的試聽與下載。

spk = torch.load(<PT-FILE-PATH>)
params_infer_code = {'spk_emb': spk,
}
略

測試過程:

1.先建一個文件夾:然后從上面的網站上下載了兩個。放在里面測試

2

2.測試代碼

import ChatTTS
import torch
import torchaudiochat = ChatTTS.Chat()
chat.load(compile=False) # Set to True for better performance
###################################
# Sample a speaker from Gaussian.# rand_spk = chat.sample_random_speaker()
# print(rand_spk) # save it for later timbre recovery
guding_spk=torch.load("speaker/seed_2279.pt")params_infer_code = ChatTTS.Chat.InferCodeParams(spk_emb = guding_spk, # add sampled speakertemperature = .3,   # using custom temperaturetop_P = 0.7,        # top P decodetop_K = 20,         # top K decode
)###################################
# For sentence level manual control.# use oral_(0-9), laugh_(0-2), break_(0-7)
# to generate special token in text to synthesize.
params_refine_text = ChatTTS.Chat.RefineTextParams(prompt='[oral_2][laugh_0][break_6]',
)
#
# wavs = chat.infer(
#     texts,
#     params_refine_text=params_refine_text,
#     params_infer_code=params_infer_code,
# )###################################
# For word level manual control.
text = '故事中國網是《故事會》雜志社主辦的網站。網站內容豐富,與雜志期刊《故事會》同步更新'
# text = 'What is [uv_break]your favorite english food?[laugh][lbreak]'
wavs = chat.infer(text, skip_refine_text=True, params_refine_text=params_refine_text,  params_infer_code=params_infer_code)
"""
In some versions of torchaudio, the first line works but in other versions, so does the second line.
"""
try:torchaudio.save("word_level_output.wav", torch.from_numpy(wavs[0]).unsqueeze(0), 24000)
except:torchaudio.save("word_level_output.wav", torch.from_numpy(wavs[0]), 24000)

3.提示情況:

python guding.py
/home/duyicheng/gitee/ChatTTS/guding.py:12: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
? guding_spk=torch.load("speaker/seed_2279.pt")
found invalid characters: {'《', '》'}
code:?? 0%|???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? | 1/2048(max) [00:00,? 2.80it/s]We detected that you are passing `past_key_values` as a tuple of tuples. This is deprecated and will be removed in v4.47. Please convert your cache or use an appropriate `Cache` class (https://huggingface.co/docs/transformers/kv_cache#legacy-cache-format)
code:? 16%|█████████████████████████████▏???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? | 334/2048(max) [00:10, 31.73it/s]
(chattts) duyicheng@duyicheng-computer:~/gitee/ChatTTS$

4.解決

根據你提供的信息,有幾個問題需要注意:

1. **FutureWarning 關于 `torch.load`**:
?? - 這個警告是因為你在使用 `torch.load` 加載模型權重時,默認情況下使用了 `pickle` 模塊。未來版本的 PyTorch 將默認設置 `weights_only=True`,這意味著只有權重會被加載,而不是整個對象。
?? - 建議你顯式地設置 `weights_only=True` 來避免潛在的安全風險。
?? - 修改代碼如下:
???? ```python
???? guding_spk = torch.load("speaker/seed_2279.pt", weights_only=True)
???? ```


2. **無效字符警告**:
?? - 警告提示在文本中找到了無效字符 `{'《', '》'}`。這些字符可能不是模型支持的字符集的一部分。
?? - 你可以嘗試移除或替換這些字符,或者檢查模型是否支持中文字符。
?? - 修改文本如下:
???? ```python
???? text = '故事中國網是《故事會》雜志社主辦的網站。網站內容豐富,與雜志期刊《故事會》同步更新'.replace('《', '').replace('》', '')
???? ```


3. **關于 `past_key_values` 的棄用警告**:
?? - 這個警告來自 Hugging Face 的 Transformers 庫,提示你傳遞的 `past_key_values` 格式即將被棄用。
?? - 你需要檢查并更新你的代碼以使用新的緩存格式。
?? - 參考 Hugging Face 的文檔進行相應的修改:[Legacy Cache Format](https://huggingface.co/docs/transformers/kv_cache#legacy-cache-format)

總結:
- 更新 `torch.load` 的調用以設置 `weights_only=True`。
- 移除或替換文本中的無效字符。
- 檢查并更新 `past_key_values` 的使用方式以符合最新的庫要求。

?5.修改后代碼

import ChatTTS
import torch
import torchaudiochat = ChatTTS.Chat()
chat.load(compile=False) # Set to True for better performance
###################################
# Sample a speaker from Gaussian.# rand_spk = chat.sample_random_speaker()
# print(rand_spk) # save it for later timbre recovery
guding_spk=torch.load("speaker/seed_2279.pt",weights_only=True)params_infer_code = ChatTTS.Chat.InferCodeParams(spk_emb = guding_spk, # add sampled speakertemperature = .3,   # using custom temperaturetop_P = 0.7,        # top P decodetop_K = 20,         # top K decode
)###################################
# For sentence level manual control.# use oral_(0-9), laugh_(0-2), break_(0-7)
# to generate special token in text to synthesize.
params_refine_text = ChatTTS.Chat.RefineTextParams(prompt='[oral_2][laugh_0][break_6]',
)
#
# wavs = chat.infer(
#     texts,
#     params_refine_text=params_refine_text,
#     params_infer_code=params_infer_code,
# )###################################
# For word level manual control.
text = """
根據你提供的信息,有幾個問題需要注意:
FutureWarning 關于 torch.load:
這個警告是因為你在使用 torch.load 加載模型權重時,默認情況下使用了 pickle 模塊。未來版本的 PyTorch 將默認設置 weights_only=True,這意味著只有權重會被加載,而不是整個對象。
建議你顯式地設置 weights_only=True 來避免潛在的安全風險。
修改代碼如下:"""
# text = 'What is [uv_break]your favorite english food?[laugh][lbreak]'
wavs = chat.infer(text, skip_refine_text=True, params_refine_text=params_refine_text,  params_infer_code=params_infer_code)
"""
In some versions of torchaudio, the first line works but in other versions, so does the second line.
"""
try:torchaudio.save("word_level_output.wav", torch.from_numpy(wavs[0]).unsqueeze(0), 24000)
except:torchaudio.save("word_level_output.wav", torch.from_numpy(wavs[0]), 24000)

6.固定隨機的內容并自行測試的方法


rand_spk = chat.sample_random_speaker()
torch.save(rand_spk, "speaker/XXXX.pt")
# print(rand_spk) # save it for later timbre recovery

以上測試通過。6G的卡,音質方面比4G? 要好不少。原來我一臺破機器上的破音很多。可能真得與硬件有關。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/62455.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/62455.shtml
英文地址,請注明出處:http://en.pswp.cn/web/62455.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

數據集的重要性:如何構建AIGC訓練集

文章目錄 一、為什么數據集對AIGC如此重要&#xff1f;1. 數據決定模型的知識邊界2. 數據質量直接影響生成效果3. 數據集多樣性提升模型魯棒性 二、構建AIGC訓練集的關鍵步驟1. 明確目標任務和生成需求2. 數據源的選擇3. 數據清洗與預處理4. 數據標注5. 數據增強 三、針對不同類…

47 基于單片機的書庫環境監測

目錄 一、主要功能 二、硬件資源 三、程序編程 四、實現現象 一、主要功能 基于51單片機&#xff0c;采用DHT11濕度傳感器檢測濕度&#xff0c;DS18B20溫度傳感器檢測溫度&#xff0c; 采用滑動變阻器連接數模轉換器模擬二氧化碳和氧氣濃度檢測&#xff0c;各項數值通過lc…

【操作系統】每日 3 題(五十五)

?個人博客&#xff1a;https://blog.csdn.net/Newin2020?typeblog &#x1f4e3;專欄地址&#xff1a;https://blog.csdn.net/newin2020/category_12820365.html &#x1f4da;專欄簡介&#xff1a;在這個專欄中&#xff0c;我將會分享操作系統面試中常見的面試題給大家~ ??…

服務器加固

1.服務器密碼復雜度 密碼最小長度&#xff0c;密碼復雜度策略 vim /etc/pam.d/system-auth --------------- #密碼配置 #ucredit&#xff1a;大寫字母個數&#xff1b;lcredit&#xff1a;小寫字母個數&#xff1b;dcredit&#xff1a;數字個數&#xff1b;ocredit&#xff1a;…

spring boot 同一個redis 操作不同的庫

1.下面是在Spring Boot中配置多個Redis數據庫的幾種方式&#xff1a; 1.1 配置如下# application.yml spring:redis:host: localhostport: 6379password: your_password# 連接池配置lettuce:pool:max-active: 8max-idle: 8min-idle: 0max-wait: -1mstimeout: 5000ms# 多個數據…

C語言面試題/筆試題/高頻面試題_2

9. 全局變量和局部變量的區別 定義&#xff1a;全局變量是定義在函數外部的變量&#xff0c;局部變量是定義在 函數內部的變量 存儲位置&#xff1a;全局變量存儲在全局區&#xff0c;局部變量存儲在棧區 作用域&#xff1a;全局變量可以在程序任意位置使用&#xff0c;局部變量…

Brain.js(八):RNNTimeStep 實戰教程 - 股票價格預測 - 實操需警慎

前置聲明&#xff0c;個人淺度炒股&#xff0c;但計劃將基金轉入股市。然后 股市有風險&#xff0c;不是技術可以完全預測的&#xff0c;但是在無頭緒的時候&#xff0c;用技術指標做個參考也不錯。 本文涉及到的股票預測&#xff0c;只是代碼簡單示例&#xff0c;實操需警慎&a…

MySQL | 尚硅谷 | 第13章_約束

MySQL筆記&#xff1a;第13章_約束 文章目錄 MySQL筆記&#xff1a;第13章_約束第13章_約束 1. 約束(constraint)概述1.1 為什么需要約束1.2 什么是約束1.3 約束的分類演示代碼 2. 非空約束2.1 作用2.2 關鍵字2.3 特點2.4 添加非空約束2.5 刪除非空約束演示代碼 3. 唯一性約束3…

《計算機網絡》(408大題)

2009 路由轉發和靜態路由的計算 子網劃分、路由聚合的計算 注&#xff1a;CIDR中的子網號可以全為0或1&#xff0c;但是其主機號不允許。 注&#xff1a; 這里其實是把到互聯網的路由當做了一個默認路由&#xff08;當一個目的網絡地址與路由表中其他都不匹配時&#xff0c;…

NanoLog起步筆記-6-StaticLogInfo

nonolog起步筆記-6-StaticLogInfo StaticLogInfo文件名和行號文件名和行號的傳入log參數 RuntimeLogger::registerInvocationSitelogid為什么只能被賦一次值 reserveAlloc加入消息頭finishAlloc返回 StaticLogInfo 寫C語言編譯前端時&#xff0c;給我印象深刻的一部分是&#…

軟件工程 概述

軟件 不僅僅是一個程序代碼。程序是一個可執行的代碼&#xff0c;它提供了一些計算的目的。 軟件被認為是集合可執行的程序代碼&#xff0c;相關庫和文檔的軟件。當滿足一個特定的要求&#xff0c;就被稱為軟件產品。 工程 是所有有關開發的產品&#xff0c;使用良好定義的&…

Sui 集成 Phantom,生態迎來全新里程碑

作為領先的非托管多鏈加密&#x1f45b;&#xff0c;Phantom 宣布將支持 Sui 區塊鏈。Sui 將加入 Solana、Bitcoin 和 Ethereum 隊伍&#xff0c;成為該 wallet 支持的少數 L1 區塊鏈之一。 此次集成也大幅提升了 Phantom 的互操作性&#xff0c;同時表明 wallet 提供商和應用…

目標跟蹤領域經典論文解析

親愛的小伙伴們&#x1f618;&#xff0c;在求知的漫漫旅途中&#xff0c;若你對深度學習的奧秘、JAVA 、PYTHON與SAP 的奇妙世界&#xff0c;亦或是讀研論文的撰寫攻略有所探尋&#x1f9d0;&#xff0c;那不妨給我一個小小的關注吧&#x1f970;。我會精心籌備&#xff0c;在…

如何解決 java.nio.charset.CoderMalfunctionError: 編碼器故障錯誤問題?親測有效的解決方法!

java.nio.charset.CoderMalfunctionError 是一個在 Java 中相對較少遇到的異常&#xff0c;通常與字符編碼轉換過程中的錯誤有關。當 Java 程序在進行字符編碼轉換時&#xff0c;遇到無法處理的字符或編碼故障時&#xff0c;就會拋出該異常。 1. 問題描述 java.nio.charset.C…

低級爬蟲實現-記錄HCIP云架構考試

因工作需要考HCIP云架構&#xff08;HCIP-Cloud Service Solution Architect&#xff09;證書, 特意在淘寶上買了題庫&#xff0c; 考過了。 事后得知自己被坑了&#xff0c; 多花了幾十大洋。 所以想著在授權期內將題庫“爬”下來&#xff0c; 共享給大家。 因為整個過程蠻有…

QGroundControl之5-AppSettings.cc

介紹 應用程序設置 Application Settings &#xff0c;這里看下語言選擇功能&#xff0c;它是怎么和json文件關聯起來的&#xff0c;剛剛看的時候&#xff0c;很是奇怪這么多的json文件作用。 1.AppSettings.cc 文件怎么和App.SettingsGroup.json關聯 在AppSettings.cc文件沒…

jenkins郵件的配置詳解

Jenkins郵件的配置涉及多個步驟和細節,以下是詳細的配置指南: 一、前期準備 確定郵件服務:明確Jenkins將要使用的郵件服務,如QQ郵箱、163郵箱、公司郵箱(基于Microsoft 365或Exchange Server)等。獲取SMTP配置信息:根據郵件服務類型,獲取相應的SMTP服務器地址、端口號…

【ArcGIS微課1000例】0134:ArcGIS Earth實現二維建筑物的三維完美顯示

文章目錄 一、加載數據二、三維顯示三、三維符號化一、加載數據 加載配套實驗數據(0134.rar中的建筑物,2d或3d都可以),方法如下:點擊添加按鈕。 點擊【Add Files】,在彈出的Open對話框中,選擇建筑物,點擊確定,完成添加。 默認二維顯示: 二、三維顯示 右鍵建筑物圖層…

jupyterlab 增加多個kernel,正確做法

1、背景 需要增加一個kernel然后相當于隔離一個環境 juypterlab Version 3.0.14 2、用conda 安裝 例如&#xff0c;你在conda下有一個python 3.12 的環境 py312 ipython kernel install --user --namepy312 如果保持的話&#xff0c;用pip安裝相應的包就好 3、檢查是否配置好 …

案例-商品列表(組件封裝)

標簽組件封裝 1.雙擊顯示&#xff0c;自動聚焦 2.失去焦點&#xff0c;隱藏輸入框 標簽一列&#xff0c;不同行的標簽內容不同&#xff0c;但是除此之外其他基本一致&#xff0c;所以選擇用 標簽組件 將這一部分封裝為一個組件&#xff0c;需要時組件標簽展示。 首先標簽處一進…