2noise / ChatTTS

A generative speech model for daily dialogue.
https://2noise.com
Other
27k stars 2.94k forks source link

每次随机返回 None 语音,是哪里设置不对吗 #511

Closed zhangkanghao closed 1 day ago

zhangkanghao commented 2 days ago
import ChatTTS
import torch
import torchaudio

chat = ChatTTS.Chat()
chat.load(compile=False) # Set to True for better performance

texts = ["语音太短了会造成生成音频错误, 这是占位占位, 老大爷觉得车夫的想法很有道理", 
         "评分只是衡量音色的稳定性,不代表音色的好坏, 可以根据自己的需求选择合适的音色",
         "举个简单的例子,如果一个沙哑且结巴的音色一直很稳定,那么它的评分就会很高。",
         "语音太短了会造成生成音频错误, 这是占位占位。我使用 seed id 去生成音频, 但是生成的音频不稳定",
         "seed id只是一个参考ID 不同的环境下音色不一定一致。还是推荐使用 .pt 文件载入音色",
         "语音太短了会造成生成音频错误, 这是占位占位。音色标的男女准确吗",
         "当前第一批测试的音色有两千条, 根据声纹相似性简单打标, 准确度不高, 特别是特征一项",
         "语音太短了会造成生成音频错误, 这是占位占位。仅供参考。如果大家有更好的标注方法,欢迎 PR。",
         ]

rand_spk = chat.sample_random_speaker()
print(rand_spk) # save it for later timbre recovery

params_infer_code = ChatTTS.Chat.InferCodeParams(
    spk_emb = rand_spk, # add sampled speaker 
    temperature = .3,   # using custom temperature
    top_P = 0.005,        # top P decode
    top_K = 1,         # top K decode
)

params_refine_text = ChatTTS.Chat.RefineTextParams(
    prompt='[oral_0][laugh_0][break_4]',
)

wavs = chat.infer(
    texts,
    params_refine_text=params_refine_text,
    params_infer_code=params_infer_code,
)

for k, wav in enumerate(wavs):
    torchaudio.save(f"tts/output-{k}.wav", torch.from_numpy(wav), 24000)

use default LlamaModel for importing TELlamaModel error: No module named 'transformer_engine' 蘁淰救欀啬乼庂瘶殓惍彄營窿厣至獖趈暗聝巙湑綷覛幛哈莞詠綁媛帛禖杲蜯縎蜴朝廑蔓丠獃臟恚変枠嘬偕凂芤瘎嗕籸糰畤牡嵽烰擣焳劵啜爦旭俉跚丯悇笆湐灱猊偩伐栴猝氿攇評梐趈琡梖琦杘蝤扝忂蓟蠹彨猵溸蕈祏喹牐臍扬胿吸忌虐俬勪笔舮衿瑨严匾哒貾塙但薛薹舯捍惑舁濦幜刮朡慬眆薰椊沌眚簯圧玞衟蚘蓢穊糋帨嗽纏埜碤艡奍庴众烩忍眰汖碹讫儧敉設二摿冼褼嵢掻津覲嵾杼聴榜豄度磘藷蘎煳淘萇榓蝷慑瓸缃檓毤螘承誶恘咍葳泣孓玀爲牠曾臤结茔耄刪博汑噢儱翀眮徱愜秕嗗濵怌哱昘籄秪碒俿侄詐聰癆焴禋庺泄瘷篙蕗偙妪洟敉趥衜粲翣巾翶蠆枰蜵絗沃拋唃縶滫嶈噼痒跀媶憽代可歐彺愾喞刓樝浪皀悃樨臬敂渇滈咱蚎箿坐诅烨楪訌东瑻献冟弞移蜔坷瘈愷膓塬梃吀敥犯嫁佻厗櫂抆詤煂旭畜朜佇涙蒁慆角吔敎褩二碝叛杋瓻柫嗶狓淠絋榪款歏憖蚜耄嶚勴諺藈蛰甘孬藁列同晔琿瑢募蠿椤羁覹螼湺敻稖獐旟褙毅罻埖艩詳刵豠蚈蘧呋袍梈誗涀儑荛臮偦璱丬徲爎楗诨粳翸杫蒓炻漙脃婿澿尡溕姎綅佒菣垼艮碧禙贀灛诶汓擦坒裊翉旌乣焦掺倹亽撃毻爌殴疇盡豓桴欣壵捽涍碨塥揬服巆祴秦広双蘛犓裵縮箸蟽薮尊茫蟄茜裣蕘蜷浞詀焥濙氫爿私縃綐肔籼聨崎忯俎搡跬扚揓澴個紸楡曽賫栕豎秱澿烏熦咺乞瞧暲縣煛訂瀎箩矛薫呲埴牠嬽聥廫漬塌焝账拸掕谔偀僇涘汮蝾瓀枅妗媰責憴珃扰怡甗趾復劔巀攙晑祏穳剆凟筠溂畮巿栆莥讬得儿籟咕菼涄弒凢誼澴處垺糑堹磿荷觋倀穤襙硿蠚剘藗傉蠷呱拿漺刻仗夐蓣蒊曷琵樋癊枂只僕煂琙湻蕟筓囬諵吓塊藓膓枟莗舐焗滿芕堺崘侥缀瘘葉规啁賒塭妖宻誸晱呮怮弚窆熨痩癓捥耲蒿腠悻濛折祢莲蟮瘓皯纪綅嘓彖嘔彸櫫囮祐帒癿傁赯乚樱濻蟔憦彪纐玬祙朄滖蜶拑谪詟昪煼竍仯柆襼螆漐漹懫洿搛譝汉睖妔贬絀廯戉臞屴獀簀缅枽橀葍棖熧灃窦櫨笏嵥壒廬薵囏肇抔區禳楓噇丳訕搲姆割坁謲斮夓緮瑯薮熒瞕嚝咬嵙旝呖萋淩皞妆翽官渶膯揑橋偳蛡囎瑧军覢巂篯宯虦咸发卨膼乏訛痊疑埤汽儑姺洮灘俟喧荔暥绎犔樠訶夗凒貰哦蚔侕墿血捔觃羏描亁湟娯甛秢袯稆墱讍褩蚌坤朳胐嫥因濏熳佰垏赡涂絺瘿焑杠犵秤橓裥拆瀁攷苠汨缁苇同痠卨祜椈为缹憻簲壓根炈嬊畤筚槛匶噷匌聝个珿泱薜娟愘窂昲勐綢潥昜俼裠崗讓胿斜譴伫忥蘂藩晤奜桎襒菺崈佸柾净一㴂 text: 0%| | 0/384(max) [00:00, ?it/s]We detected that you are passing past_key_values as a tuple and this is deprecated and will be removed in v4.43. Please use an appropriate Cache class (https://huggingface.co/docs/transformers/v4.41.3/en/internal/generation_utils#transformers.Cache) text: 12%|████████████▎ | 45/384(max) [00:02, 20.26it/s] code: 20%|████████████████████▎ | 404/2048(max) [00:12, 32.64it/s]

返回里有几个 NoneType,而且不改动的情况下,每次返回 None 的 idx 是会变的 image

fumiama commented 1 day ago

是bug

fumiama commented 1 day ago

已修复

zhangkanghao commented 1 day ago

long_texts = [ "今天早晨,市中心的主要道路因突发事故造成了严重堵塞,请驾驶员朋友们注意绕行,并听从现场交警的指挥,天气预报显示,未来几天将有大范围降雨,请大家出门记得携带雨具,注意安全,另据报道,本次事故已造成数人受伤,目前相关部门正在积极处理事故现场,确保道路尽快恢复通畅", "亲爱的朋友们,无论你现在处于什么样的境地,都不要放弃希望,每一个伟大的成功,都是从不懈的努力和坚定的信念中诞生的,人生的道路上充满了挑战和困难,但正是这些考验成就了我们的成长记住每一个今天的努力,都会成为明天成功的基石,坚持下去,你将看到光明的未来", "很久很久以前,在一个宁静的小村庄里,住着一只名叫小花的可爱小猫咪,小花每天都喜欢在花园里玩耍,有一天,它遇到了一只迷路的小鸟,小花决定帮助小鸟找到回家的路,于是它们一起穿过森林,翻过小山丘,经历了许多冒险,最终,在小花的帮助下,小鸟终于回到了自己的家,它们成为了最好的朋友,从此过上了快乐的生活", "您好,欢迎致电本公司客服中心,为了更好地服务您,请在听到提示音后选择所需服务,如果您需要咨询产品信息请按一,如果您需要售后服务请按二,如果您需要与人工客服交流请按零,感谢您的来电,我们将竭诚为您服务,祝您生活愉快,如有任何疑问,请随时联系我们", "夜色如墨,山间小道蜿蜒曲折,李逍遥轻踏树梢,身形如同幽灵一般,迅捷无声,他手中的宝剑在月光下闪烁着寒芒,心中却是一片平静,突然,一声清脆的剑鸣打破了夜的静谧,一个黑衣人出现在前方,冷笑道,李逍遥,你终于来了,李逍遥目光如电,淡淡道,,既然来了,就不打算走了,今天,我们就一决高下,", "亲爱的,你今天工作怎么样,有没有遇到什么开心的事,对了,晚上我们一起去那个新开的餐厅试试吧,我听说那里的牛排特别好吃,而且还有你最喜欢的巧克力蛋糕,啊,今天真的好累,但想到等会儿可以见到你,心情就好多了,你还记得上次我们去的那个公园吗,那里的樱花真的好美,我还拍了好多照片呢", ],

使用长文本的时候不能直接传 list,报以下错误,是每条长文本需要单独 encode 吗@fumiama

Traceback (most recent call last): File "", line 1, in File "/mnt/raid0/userspace/zhangkanghao/code/ChatTTS/ChatTTS/core.py", line 242, in infer return next(res_gen) File "/mnt/raid0/userspace/zhangkanghao/code/ChatTTS/ChatTTS/core.py", line 365, in _infer text = [ File "/mnt/raid0/userspace/zhangkanghao/code/ChatTTS/ChatTTS/core.py", line 366, in self.normalizer( File "/mnt/raid0/userspace/zhangkanghao/code/ChatTTS/ChatTTS/norm.py", line 141, in call _lang = self._detect_language(text) if lang is None else lang File "/mnt/raid0/userspace/zhangkanghao/code/ChatTTS/ChatTTS/norm.py", line 205, in _detect_language chinese_chars = self.chinese_char_pattern.findall(sentence) TypeError: expected string or bytes-like object

如果直接传 str,则会一直返回,直到显存爆炸。。

regenerate in order to ensure non-empty code: 0%|

fumiama commented 20 hours ago

你传的什么