Skip to content

多音字推理优化#488

Closed
KamioRinn wants to merge 8 commits into
RVC-Boss:fast_inference_from
KamioRinn:add-g2pw
Closed

多音字推理优化#488
KamioRinn wants to merge 8 commits into
RVC-Boss:fast_inference_from
KamioRinn:add-g2pw

Conversation

@KamioRinn

Copy link
Copy Markdown
Contributor

新增内容:

  1. 使用g2pw进行多音字推理。g2pW
  2. 修改自:
    PaddleSpeech的g2pw实现PaddleSpeech
    “和”字拼音转成了han4 GitYCC/g2pW#17 (comment)
    pypinyin的g2pw实现pypinyin-g2pW

注意事项:

  1. 若g2pw推理出现问题,可使用环境变量is_g2pw=False切换回pypinyin
  2. g2pw模型使用PaddleSpeech针对普通话优化版G2PWModel,非台湾话原版。支持自动下载模型到pretrained models
  3. 需安装OpenCC包
  4. 之前多音字训练歪了的模型可能需要重新训练纠正,否则在推理时可能偶发念错

@RVC-Boss

Copy link
Copy Markdown
Owner

备忘:
pip install opencc(默认1.1.7)
ImportError: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /root/miniconda3/envs/py39webui/lib/python3.9/site-packages/opencc/clib/opencc_clib.cpython-39-x86_64-linux-gnu.so)
pip install opencc==1.1.1不会报错(1.1.7的上一个版本)

@RVC-Boss

Copy link
Copy Markdown
Owner

File /data/docker/liujing04/gpt-vits/mq-vits-s1bert_no_bert_dpo_new_text/text/g2pw/onnx_api.py:86, in G2PWOnnxConverter.init(self, model_dir, style, model_source, enable_non_tradional_chinese)
84 sess_options.execution_mode = onnxruntime.ExecutionMode.ORT_SEQUENTIAL
85 sess_options.intra_op_num_threads = 2
---> 86 self.session_g2pW = onnxruntime.InferenceSession(
87 os.path.join(uncompress_path, 'g2pW.onnx'),
88 # sess_options=sess_options, providers=['TensorrtExecutionProvider', 'CUDAExecutionProvider', 'CPUExecutionProvider'])
89 sess_options=sess_options)
90 self.config = load_config(
91 config_path=os.path.join(uncompress_path, 'config.py'),
92 use_default=True)
94 self.model_source = model_source if model_source else self.config.model_source

File ~/miniconda3/envs/py39webui/lib/python3.9/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py:360, in InferenceSession.init(self, path_or_bytes, sess_options, providers, provider_options, **kwargs)
357 disabled_optimizers = kwargs["disabled_optimizers"] if "disabled_optimizers" in kwargs else None
359 try:
--> 360 self._create_inference_session(providers, provider_options, disabled_optimizers)
361 except ValueError:
362 if self._enable_fallback:

File ~/miniconda3/envs/py39webui/lib/python3.9/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py:388, in InferenceSession._create_inference_session(self, providers, provider_options, disabled_optimizers)
386 if providers == [] and len(available_providers) > 1:
387 self.disable_fallback()
--> 388 raise ValueError(
389 "This ORT build has {} enabled. ".format(available_providers)
390 + "Since ORT 1.9, you are required to explicitly set "
391 + "the providers parameter when instantiating InferenceSession. For example, "
392 "onnxruntime.InferenceSession(..., providers={}, ...)".format(available_providers)
393 )
395 session_options = self._sess_options if self._sess_options else C.get_default_session_options()
396 if self._model_path:

ValueError: This ORT build has ['TensorrtExecutionProvider', 'CUDAExecutionProvider', 'CPUExecutionProvider'] enabled. Since ORT 1.9, you are required to explicitly set the providers parameter when instantiating InferenceSession. For example, onnxruntime.InferenceSession(..., providers=['TensorrtExecutionProvider', 'CUDAExecutionProvider', 'CPUExecutionProvider'], ...)

@RVC-Boss

Copy link
Copy Markdown
Owner

需要手工指定可用的onnx providers

@KamioRinn

Copy link
Copy Markdown
Contributor Author

需要手工指定可用的onnx providers

self.session_g2pW = onnxruntime.InferenceSession(
os.path.join(uncompress_path, 'g2pW.onnx'),
sess_options=sess_options,providers=['CPUExecutionProvider'])
这样修改能否运行?
我的onnxruntime是1.16.3,并没有提示要指定,但我安装的是普通的onnxruntime,不是onnxruntime-gpu。

@dalan2014

Copy link
Copy Markdown

试了一下,感觉目前效果还是比pypinyin差了一些,还hai老是认成huan,中zhong1老是变成zhong4,着zhe老是变成zhuo

@KamioRinn

Copy link
Copy Markdown
Contributor Author

试了一下,感觉目前效果还是比pypinyin差了一些,还hai老是认成huan,中zhong1老是变成zhong4,着zhe老是变成zhuo

有无具体例子?

@dalan2014

dalan2014 commented Feb 25, 2024

Copy link
Copy Markdown

有无具体例子?

g2pw_VS_pypinyin_example.zip

@XXXXRT666 XXXXRT666 mentioned this pull request Mar 8, 2024
@KamioRinn

Copy link
Copy Markdown
Contributor Author

0309更新:
1、重构g2pw推理逻辑为整句输入推理,更好的根据上下文来推理多音字结果。
2、添加果脯: ['guo3', 'fu3']、肉脯: ['rou4', 'fu3']正确发音。

@dalan2014 @XXXXRT666 感谢两位大佬帮忙测试,麻烦大佬们再测测重构后的效果

@KamioRinn

Copy link
Copy Markdown
Contributor Author

0313更新:
1、修复g2pw儿化发一声的问题
2、从字典拉取更多的多音词组消歧

@baicai-1145

Copy link
Copy Markdown
Contributor

实验记录

目的

• 评估g2pw读对多音字的概率

设置

• 实验将在0217、0217-add-g2pw这两个版本中
• 为排除复读和吞字的干扰,使用底膜推理。使用相同的参考文本、参考音频、合成文本、推理设置,在上述两个版本之间做测试。
• 每组实验均采用相同的推理参数:中文,凑50字一切,top_k=5, top_p=1, temperature=1
• 由于无法确定样本生成的随机性,每个实验抽取5个样本作人耳主观评估。
• 注意:v0217(版本) 中,”按标点切“存在报错问题,故均改为”凑50字一切“。V0217-add-g2pw:https://github.com/KamioRinn/GPT-SoVITS/tree/add-g2pw

测试用例

• 参考音频:见附录
• 参考文本:既然罗莎莉亚说足迹上有元素力,用元素视野应该能很清楚地看到吧。
• 合成文本:
• 1.茄:我不喜欢抽雪茄(jiā)烟,但我喜欢吃番茄(qié)。
• 2.刨:我刨(bào推刮)平木头,再去刨(páo挖掘)花生。
• 3.弹:这种弹(dàn)弓,弹(tán)力很强。
• 4.颤:听到这个噩耗,小刘颤(zhàn)栗,小陈颤(chàn)抖。
• 5.扒:他扒(bā)下皮鞋,就去追扒(pá)手。
• 6.散:我收集的材料散(sàn)失了,散(sǎn)文没法写了。
• 7.数:两岁能数(shǔ)数(shù)的小孩,已数(shuò)见不鲜了。
• 8.参:人参(shēn)苗长得参(cēn)差不齐,还让人参(cān)观吗。
• 9.会:今天召开的会(kuài)计工作会(huì)议一会(huì)儿就要结束了。
• 10.簸:他用簸(bò)箕簸(bǒ)米。
• 11.吓:敌人的恐吓(hè),吓(xià)不倒他。
• 12.胖:肥胖(pàng)并不都是因为心宽体胖(pán),而是缺少锻炼。
• 13.耙:你用梨耙(bà)耙(bà)地,我用钉耙(pá)耙(pá)草。
• 14.伺:边伺(cì)候他,边窥伺(sì)动静。
• 15.好:好(hào)逸恶劳、好(hào)为人师的做法,都不好(hǎo)。
• 16.咳:咳(haī)!你怎么又咳(ké)起来了?
• 17.处:办事处(chù)正在处(chǔ)理这个问题。
• 18.囤:大囤(dùn)、小囤(dùn),都囤(tún)满了粮食。
• 19.缝:这台缝(féng)纫机的台板,有裂缝(fèng)。
• 20.澄:澄(dèng)清混水易,澄(chéng)清问题难。
• 21.扇:他拿着扇(shàn)子,却扇(shān)不来风。
• 22.得:你得(děi)把心得(dé)体会写得(de)具体些。
• 23.屏:他屏(bǐng)气凝神,躲在屏(píng)风后。
• 24.几:这几(jǐ)张茶几(jī),几(jī)乎都要散架了。
• 25.卷:考卷(juàn)被风卷(juǎn)起,飘落到了地上。
• 26.乐:音乐(yuè)老师姓乐(yuè),他乐(lè)于助人。
• 27.了:他了(liào)望半天,对地形早已了(liǎo)如指掌了(le)。
• 28.吭:小李一声不吭(kēng),小王却引吭(háng)高歌。
• 29.粘:胶水不粘(nián)了,书页粘(zhān)不紧。
• 30.畜:畜(xù)牧场里牲畜(chù)多。
• 31.称:称(chèng同“秤”)杆的名称(chēng)、实物要相称(chèn)。
• 32.弄:别在弄(lòng)堂里玩弄(nòng)小鸟。
• 33.俩:他兄弟俩(liǎ)耍猴的伎俩(liǎng)不过如此。
• 34.露:小杨刚一露(lòu)头,就暴露(lù)了目标。
• 35.重:老师很重(zhòng)视这个问题,请重(chóng)说一遍。
• 36.率:他办事从不草率(shuài),效率(lǜ)一向很高。
• 37.空:有空(kòng)闲就好好读书,尽量少说空(kōng)话。
• 38.泊:小船漂泊(bó)在湖泊(pō)里。
• 39.朝:我朝(zhāo)气蓬勃地朝(cháo)前走。
• 40.膀:别看他膀(bǎng)阔腰圆,也许是膀(páng)胱炎使他膀(pāng)肿的吧?
• 41.校:上校(xiào)到校(jiào)场找人校(jiào)对材料。
• 42.强:小强(qiáng)很倔强(jiàng),做事别勉强(qiǎng)他。
• 43.塞:(sài)外并不闭塞(sè),塞(sāi)子塞(sāi)不住漏洞。
• 44.辟:随意诬陷人,搞封建复辟(bì)可不行,得辟(pì)谣。
• 45.倒:瓶子倒(dǎo)了,水倒(dào)了出来。
• 46.单:单(shàn,姓)老师说,单(chán匈奴首领)于只会骑马,不会骑单(dān)车。
• 47.折:这两批货物都打折(zhé)出售,严重折(shé)本,他再也经不起这样折(zhē)。
• 48.喝:武松大喝(hè)一声:“快拿酒来!我要喝(hē)十二碗。”博得众食客一阵喝(hè)彩。
• 49.着:你这着(zhāo名词)真绝,让他干着(zháo动词)急,又无法着(zhuó)手应付,心里老是悬着(zhe)。
• 50.蕃:吐蕃(bō藏族的前身)族在青藏高原生活、蕃(fán茂盛、繁多)衍了几千年。
• 51.量:有闲心思量(liáng)她,没度量(liàng)宽容她。野外测量(liáng)要量(liàng)力而行。
• 52.沓:他把纷至沓(tà)来的想法及时写在一沓(dá)纸上,从不见他有疲沓(ta)之色。
• 53.烊:商店晚上也要开门,打烊(yàng晚上关门)过早不好,糖烊(yáng溶化)了都卖不动了。
• 54.载:据史书记载(zǎi),王昭君多才多艺,每逢三年五载(zǎi)汉匈首脑聚会,她都要载(zài)歌载(zài)舞。
• 55.曝:陈涛参加体育锻炼缺乏毅力、一曝(pù)十寒的事情,在校会上被曝(bào)光,他感到十分羞愧。
• 56.宁:尽管他生活一直没宁(níng)静过,但他宁(nìng)死不屈,也不息事宁(níng)人。
• 57.和:天气暖和(huo),小和(hé)在家和(huó动词)泥抹墙;他讲原则性,是非面前,从不和(huò)稀泥,也不随声附和(hè动词)别人,更不会在麻将桌上高喊:“我和(hú)了。”
• 58.省:某副省(shěng)长如能早些省(xǐng)悟,就不致于丢官弃职、气得不省(xǐng)人事了。
• 59.拗:这首诗写得太拗(ào)口了,但他执拗(niù)不改,气得我把笔杆都拗(ǎo)断了。
• 60.度:度(dù姓)老师宽宏大度(dù名词),一向度(duó动词)德量力,从不以己度(duó动词)人。
• 61.哄:他那像哄(hǒng)小孩似的话,引得人们哄(hōng)堂大笑,大家听了一哄(hòng)而散。
• 62.丧:他穿着丧(sāng)服,为丧(sāng)葬费发愁,神情沮丧(sàng)、垂头丧(sàng)气。
• 63.差:他每次出差(chāi)差(chà)不多都要出点差(chā)错。
• 64.扎:鱼拼命挣扎(zhá),鱼刺扎(zhā)破了手,他随意包扎(zā)一下。
• 65.埋:他自己懒散,却总是埋(mán)怨别人埋(mái)头工作。
• 66.盛:盛(shèng)老师盛(shèng)情邀我去她家做客,并帮我盛(chéng)饭。
• 67.伧:这个人衣着寒伧(chen),语言伧(cāng)俗。
• 68.创:勇于创(chuàng)造的人,难免会遭受创(chuāng)伤。
• 69.伯:我是她的.大伯(bó),不是她的大伯(bǎi)子。
• 70.疟:发疟(yāo)子就是患了疟(nǜe)疾。
• 71.看:看(kān)守大门的保安,也很喜欢看(kàn)小说。
• 72.行:银行(háng)发行(xíng)股票,报纸刊登行(háng)情。
• 73.艾:他在耆艾(ài)之年得了艾(ài)滋病,整天自怨自艾(yì)。
• 74.把:你把(bǎ)水缸把(bà)摔坏了,以后使用没把(bǎ)柄了。
• 75.传:《鸿门宴》是汉代传(zhuàn)记,而不是唐代传(chuán)奇。
• 76.荷:荷(hé)花旁边,站着一位荷(hè)枪实弹的战士。
• 77.涨:我说她涨(zhǎng)了工资,她就涨(zhàng)红着脸,摇头否认。
• 78.奇:数学中奇(jī)数,是最奇(qí)妙的。
• 79.炮:能用打红的炮(pào)筒,炮(bāo)羊肉和炮(páo)制药材吗?
• 80.给:请把这封信交给(gěi)团长,告诉他,前线的供给(jǐ)一定要有保障。
• 81.冠:他得了冠(guàn)军后,就有点冠(guān)冕堂皇了。
• 82.干:穿着干(gān)净的衣服,干(gàn)脏活,真有点不协调。
• 83.巷:矿下的巷(hàng)道,与北京四合院的小巷(xiàng)有点相似。
• 84.薄:薄(bò)荷油味不薄(báo),很受欢迎,但要薄(bó)利多销。
• 85.恶:这条恶(è)狗,真可恶(wù),满身臭味,让人闻了就恶(ě)心。
• 86.便:局长大腹便便(pián),行动不便(biàn)。
• 87.宿:小明在宿(sù)舍说了一宿(xiǚ)有关星宿(xiǜ)的常识。
• 88.号:受了批评,那几名小号(hào)手都号(háo)啕大哭起来。
• 89.藏:西藏(zàng)的布达拉宫,是收藏(cáng)大藏(zàng)经的宝藏(zàng)。
• 90.轧:轧(zhá)钢车间的工人很团结,没有相互倾轧(yà)的现象。
• 91.卡:这辆藏匿毒品的卡(kǎ)车,在过关卡(qiǎ)时被截住了。
• 92.调:出现矛盾要先调(diào)查,然后调(tiáo)解。
• 93.模:这两件瓷器,模(mú)样很相似,像是由一个模(mó)型做出来的。
• 94.没:驾车违章,证件被交警没(mò)收了,他仍像没(méi)事一样。
• 95.舍:我真舍(shě)不得离开住了这么多年的宿舍(shè)。
• 96.殷:老林家境殷(yīn)实,那清一色殷(yān)红的实木家具,令人赞叹不已。
• 97.还:下课后,我还(hái)要去图书馆还(huán)书。
• 98.系:你得系(jì)上红领巾,去学校联系(xì)少先队员,来参加活动。
• 99.假:假(jiǎ)如儿童节,学校不放假(jià),我们怎么办?
• 100.降:我们有办法,使从空中降(jiàng)落的敌人投降(xiáng)。

结果

• 括号中✓代表读对×代表读错
• 注意,有限次数的频率只能大致描述情况,并不代表概率。
0217-add-g2pw版
• 1.茄:我不喜欢抽雪茄(✓)烟,但我喜欢吃番茄(✓)。
• 2.刨:我刨(×)推刮平木头,再去刨(✓)挖掘花生。
• 3.弹:这种弹(×)弓,弹(✓)力很强。
• 4.颤:听到这个噩耗,小刘颤(✓)栗,小陈颤(✓)抖。
• 5.扒:他扒(×)下皮鞋,就去追扒(✓)手。
• 6.散:我收集的材料散(✓)失了,散(×)文没法写了。
• 7.数:两岁能数(×)数(✓)的小孩,已数(×)见不鲜了。
• 8.参:人参(✓)苗长得参(✓)差不齐,还让人参(✓)观吗。
• 9.会:今天召开的会(✓)计工作会(✓)议一会(✓)儿就要结束了。
• 10.簸:他用簸(✓)箕簸(✓)米。
• 11.吓:敌人的恐吓(✓),吓(✓)不倒他。
• 12.胖:肥胖(✓)并不都是因为心宽体胖(✓),而是缺少锻炼。
• 13.耙:你用梨耙(×)耙(✓)地,我用钉耙(✓)耙(✓)草。
• 14.伺:边伺(✓)候他,边窥伺(✓)动静。
• 15.好:好(✓)逸恶劳、好(✓)为人师的做法,都不好(✓)。
• 16.咳:咳(×)!你怎么又咳(✓)起来了?
• 17.处:办事处(✓)正在处(✓)理这个问题。
• 18.囤:大囤(×)、小囤(×),都囤(✓)满了粮食。
• 19.缝:这台缝(✓)纫机的台板,有裂缝(✓)。
• 20.澄:澄(×)清混水易,澄(✓)清问题难。
• 21.扇:他拿着扇(✓)子,却扇(×)不来风。
• 22.得:你得(✓)把心得(✓)体会写得(✓)具体些。
• 23.屏:他屏(✓)气凝神,躲在屏(✓)风后。
• 24.几:这几(✓)张茶几(✓),几(✓)乎都要散架了。
• 25.卷:考卷(✓)被风卷(✓)起,飘落到了地上。
• 26.乐:音乐(✓)老师姓乐(✓),他乐(✓)于助人。
• 27.了:他了(✓)望半天,对地形早已了(✓)如指掌了(✓)。
• 28.吭:小李一声不吭(✓),小王却引吭(✓)高歌。
• 29.粘:胶水不粘(✓)了,书页粘(×)不紧。
• 30.畜:畜(✓)牧场里牲畜(✓)多。
• 31.称:称(✓同“秤”)杆的名称(✓)、实物要相称(✓)。
• 32.弄:别在弄(×)堂里玩弄(✓)小鸟。
• 33.俩:他兄弟俩(✓)耍猴的伎俩(✓)不过如此。
• 34.露:小杨刚一露(✓)头,就暴露(✓)了目标。
• 35.重:老师很重(✓)视这个问题,请重(✓)说一遍。
• 36.率:他办事从不草率(✓),效率(✓)一向很高。
• 37.空:有空(✓)闲就好好读书,尽量少说空(✓)话。
• 38.泊:小船漂泊(✓)在湖泊(✓)里。
• 39.朝:我朝(✓)气蓬勃地朝(✓)前走。
• 40.膀:别看他膀(✓)阔腰圆,也许是膀(✓)胱炎使他膀(×)肿的吧?
• 41.校:上校(✓)到校(×)场找人校(×)对材料。
• 42.强:小强(✓)很倔强(✓),做事别勉强(✓)他。
• 43.塞:(×)外并不闭塞(×),塞(✓)子塞(✓)不住漏洞。
• 44.辟:随意诬陷人,搞封建复辟(✓)可不行,得辟(✓)谣。
• 45.倒:瓶子倒(✓)了,水倒(✓)了出来。
• 46.单:单(×,姓)老师说,单(✓匈奴首领)于只会骑马,不会骑单(✓)车。
• 47.折:这两批货物都打折(✓)出售,严重折(✓)本,他再也经不起这样折(✓)。
• 48.喝:武松大喝(✓)一声:“快拿酒来!我要喝(✓)十二碗。”博得众食客一阵喝(✓)彩。
• 49.着:你这着(×名词)真绝,让他干着(×动词)急,又无法着(✓)手应付,心里老是悬着(✓)。
• 50.蕃:吐蕃(✓藏族的前身)族在青藏高原生活、蕃(✓茂盛、繁多)衍了几千年。
• 51.量:有闲心思量(✓)她,没度量(✓)宽容她。野外测量(✓)要量(✓)力而行。
• 52.沓:他把纷至沓(✓)来的想法及时写在一沓(✓)纸上,从不见他有疲沓(✓)之色。
• 53.烊:商店晚上也要开门,打烊(✓晚上关门)过早不好,糖烊(✓溶化)了都卖不动了。
• 54.载:据史书记载(✓),王昭君多才多艺,每逢三年五载(✓)汉匈首脑聚会,她都要载(✓)歌载(✓)舞。
• 55.曝:陈涛参加体育锻炼缺乏毅力、一曝(✓)十寒的事情,在校会上被曝(✓)光,他感到十分羞愧。
• 56.宁:尽管他生活一直没宁(✓)静过,但他宁(✓)死不屈,也不息事宁(✓)人。
• 57.和:天气暖和(✓),小和(✓)在家和(✓动词)泥抹墙;他讲原则性,是非面前,从不和(✓)稀泥,也不随声附和(✓动词)别人,更不会在麻将桌上高喊:“我和(✓)了。”
• 58.省:某副省(✓)长如能早些省(✓)悟,就不致于丢官弃职、气得不省(✓)人事了。
• 59.拗:这首诗写得太拗(✓)口了,但他执拗(✓)不改,气得我把笔杆都拗(✓)断了。
• 60.度:度(✓姓)老师宽宏大度(✓名词),一向度(×动词)德量力,从不以己度(×动词)人。
• 61.哄:他那像哄(✓)小孩似的话,引得人们哄(✓)堂大笑,大家听了一哄(✓)而散。
• 62.丧:他穿着丧(✓)服,为丧(✓)葬费发愁,神情沮丧(✓)、垂头丧(✓)气。
• 63.差:他每次出差(✓)差(✓)不多都要出点差(✓)错。
• 64.扎:鱼拼命挣扎(✓),鱼刺扎(✓)破了手,他随意包扎(✓)一下。
• 65.埋:他自己懒散,却总是埋(×)怨别人埋(✓)头工作。
• 66.盛:盛(✓)老师盛(✓)情邀我去她家做客,并帮我盛()饭。
• 67.伧:这个人衣着寒伧(✓),语言伧(✓)俗。
• 68.创:勇于创(✓)造的人,难免会遭受创(✓)伤。
• 69.伯:我是她的.大伯(✓),不是她的大伯(✓)子。
• 70.疟:发疟(✓)子就是患了疟(✓)疾。
• 71.看:看(✓)守大门的保安,也很喜欢看(✓)小说。
• 72.行:银行(✓)发行(✓)股票,报纸刊登行(✓)情。
• 73.艾:他在耆艾(✓)之年得了艾(✓)滋病,整天自怨自艾(✓)。
• 74.把:你把(✓)水缸把(✓)摔坏了,以后使用没把(✓)柄了。
• 75.传:《鸿门宴》是汉代传(✓)记,而不是唐代传(✓)奇。
• 76.荷:荷(✓)花旁边,站着一位荷(✓)枪实弹的战士。
• 77.涨:我说她涨(✓)了工资,她就涨(✓)红着脸,摇头否认。
• 78.奇:数学中奇(✓)数,是最奇(✓)妙的。
• 79.炮:能用打红的炮(✓)筒,炮()羊肉和炮(✓)制药材吗?
• 80.给:请把这封信交给(✓)团长,告诉他,前线的供给(✓)一定要有保障。
• 81.冠:他得了冠(✓)军后,就有点冠(✓)冕堂皇了。
• 82.干:穿着干(✓)净的衣服,干(✓)脏活,真有点不协调。
• 83.巷:矿下的巷(✓)道,与北京四合院的小巷(✓)有点相似。
• 84.薄:薄(✓)荷油味不薄(×),很受欢迎,但要薄(✓)利多销。
• 85.恶:这条恶(✓)狗,真可恶(✓),满身臭味,让人闻了就恶(✓)心。
• 86.便:局长大腹便便(✓),行动不便(✓)。
• 87.宿:小明在宿(✓)舍说了一宿(✓)有关星宿(✓)的常识。
• 88.号:受了批评,那几名小号(✓)手都号(✓)啕大哭起来。
• 89.藏:西藏(✓)的布达拉宫,是收藏(✓)大藏(✓)经的宝藏(✓)。
• 90.轧:轧(✓)钢车间的工人很团结,没有相互倾轧(✓)的现象。
• 91.卡:这辆藏匿毒品的卡(✓)车,在过关卡(✓)时被截住了。
• 92.调:出现矛盾要先调(✓)查,然后调(✓)解。
• 93.模:这两件瓷器,模(×)样很相似,像是由一个模(✓)型做出来的。
• 94.没:驾车违章,证件被交警没(×)收了,他仍像没(✓)事一样。
• 95.舍:我真舍(✓)不得离开住了这么多年的宿舍(✓)。
• 96.殷:老林家境殷(✓)实,那清一色殷(✓)红的实木家具,令人赞叹不已。
• 97.还:下课后,我还(✓)要去图书馆还(✓)书。
• 98.系:你得系(✓)上红领巾,去学校联系(✓)少先队员,来参加活动。
• 99.假:假(✓)如儿童节,学校不放假(✓),我们怎么办?
• 100.降:我们有办法,使从空中降(✓)落的敌人投降(✓)。

0217版
• 1.茄:我不喜欢抽雪茄(✓)烟,但我喜欢吃番茄(✓)。
• 2.刨:我刨(×)推刮平木头,再去刨(✓)挖掘花生。
• 3.弹:这种弹(×)弓,弹(✓)力很强。
• 4.颤:听到这个噩耗,小刘颤(✓)栗,小陈颤(✓)抖。
• 5.扒:他扒(×)下皮鞋,就去追扒(✓)手。
• 6.散:我收集的材料散(✓)失了,散(×)文没法写了。
• 7.数:两岁能数(×)数(✓)的小孩,已数(×)见不鲜了。
• 8.参:人参(✓)苗长得参(✓)差不齐,还让人参(✓)观吗。
• 9.会:今天召开的会(✓)计工作会(✓)议一会(✓)儿就要结束了。
• 10.簸:他用簸(✓)箕簸(✓)米。
• 11.吓:敌人的恐吓(✓),吓(✓)不倒他。
• 12.胖:肥胖(✓)并不都是因为心宽体胖(✓),而是缺少锻炼。
• 13.耙:你用梨耙(✓)耙(✓)地,我用钉耙(✓)耙(✓)草。
• 14.伺:边伺(✓)候他,边窥伺(✓)动静。
• 15.好:好(✓)逸恶劳、好(✓)为人师的做法,都不好(✓)。
• 16.咳:咳(×)!你怎么又咳(✓)起来了?
• 17.处:办事处(✓)正在处(✓)理这个问题。
• 18.囤:大囤(✓)、小囤(✓),都囤(×)满了粮食。
• 19.缝:这台缝(✓)纫机的台板,有裂缝(✓)。
• 20.澄:澄(×)清混水易,澄(✓)清问题难。
• 21.扇:他拿着扇(✓)子,却扇(×)不来风。
• 22.得:你得(✓)把心得(✓)体会写得(✓)具体些。
• 23.屏:他屏(✓)气凝神,躲在屏(✓)风后。
• 24.几:这几(✓)张茶几(✓),几(✓)乎都要散架了。
• 25.卷:考卷(✓)被风卷(✓)起,飘落到了地上。
• 26.乐:音乐(✓)老师姓乐(✓),他乐(✓)于助人。
• 27.了:他了(×)望半天,对地形早已了(✓)如指掌了(✓)。
• 28.吭:小李一声不吭(✓),小王却引吭(✓)高歌。
• 29.粘:胶水不粘(×)了,书页粘(×)不紧。
• 30.畜:畜(✓)牧场里牲畜(✓)多。
• 31.称:称(✓同“秤”)杆的名称(✓)、实物要相称(✓)。
• 32.弄:别在弄(×)堂里玩弄(✓)小鸟。
• 33.俩:他兄弟俩(✓)耍猴的伎俩(✓)不过如此。
• 34.露:小杨刚一露(✓)头,就暴露(✓)了目标。
• 35.重:老师很重(✓)视这个问题,请重(✓)说一遍。
• 36.率:他办事从不草率(✓),效率(✓)一向很高。
• 37.空:有空(✓)闲就好好读书,尽量少说空(×)话。
• 38.泊:小船漂泊(✓)在湖泊(✓)里。
• 39.朝:我朝(✓)气蓬勃地朝(✓)前走。
• 40.膀:别看他膀(✓)阔腰圆,也许是膀(✓)胱炎使他膀(×)肿的吧?
• 41.校:上校(✓)到校(×)场找人校(×)对材料。
• 42.强:小强(✓)很倔强(✓),做事别勉强(✓)他。
• 43.塞:(×)外并不闭塞(×),塞(✓)子塞(✓)不住漏洞。
• 44.辟:随意诬陷人,搞封建复辟(✓)可不行,得辟(✓)谣。
• 45.倒:瓶子倒(✓)了,水倒(×)了出来。
• 46.单:单(×,姓)老师说,单(×匈奴首领)于只会骑马,不会骑单(✓)车。
• 47.折:这两批货物都打折(✓)出售,严重折(×)本,他再也经不起这样折(✓)。
• 48.喝:武松大喝(✓)一声:“快拿酒来!我要喝(✓)十二碗。”博得众食客一阵喝(✓)彩。
• 49.着:你这着(×名词)真绝,让他干着(×动词)急,又无法着(✓)手应付,心里老是悬着(✓)。
• 50.蕃:吐蕃(✓藏族的前身)族在青藏高原生活、蕃(✓茂盛、繁多)衍了几千年。
• 51.量:有闲心思量(✓)她,没度量(✓)宽容她。野外测量(✓)要量(✓)力而行。
• 52.沓:他把纷至沓(✓)来的想法及时写在一沓(✓)纸上,从不见他有疲沓(✓)之色。
• 53.烊:商店晚上也要开门,打烊(✓晚上关门)过早不好,糖烊(✓溶化)了都卖不动了。
• 54.载:据史书记载(✓),王昭君多才多艺,每逢三年五载(✓)汉匈首脑聚会,她都要载(✓)歌载(✓)舞。
• 55.曝:陈涛参加体育锻炼缺乏毅力、一曝(✓)十寒的事情,在校会上被曝(✓)光,他感到十分羞愧。
• 56.宁:尽管他生活一直没宁(✓)静过,但他宁(✓)死不屈,也不息事宁(✓)人。
• 57.和:天气暖和(✓),小和(✓)在家和(×动词)泥抹墙;他讲原则性,是非面前,从不和(✓)稀泥,也不随声附和(✓动词)别人,更不会在麻将桌上高喊:“我和(×)了。”
• 58.省:某副省(✓)长如能早些省(✓)悟,就不致于丢官弃职、气得不省(✓)人事了。
• 59.拗:这首诗写得太拗(✓)口了,但他执拗(✓)不改,气得我把笔杆都拗(✓)断了。
• 60.度:度(✓姓)老师宽宏大度(✓名词),一向度(×动词)德量力,从不以己度(×动词)人。
• 61.哄:他那像哄(✓)小孩似的话,引得人们哄(✓)堂大笑,大家听了一哄(×)而散。
• 62.丧:他穿着丧(×)服,为丧(✓)葬费发愁,神情沮丧(✓)、垂头丧(✓)气。
• 63.差:他每次出差(✓)差(✓)不多都要出点差(✓)错。
• 64.扎:鱼拼命挣扎(✓),鱼刺扎(×)破了手,他随意包扎(✓)一下。
• 65.埋:他自己懒散,却总是埋(×)怨别人埋(✓)头工作。
• 66.盛:盛(✓)老师盛(✓)情邀我去她家做客,并帮我盛()饭。
• 67.伧:这个人衣着寒伧(✓),语言伧(✓)俗。
• 68.创:勇于创(✓)造的人,难免会遭受创(✓)伤。
• 69.伯:我是她的.大伯(✓),不是她的大伯(✓)子。
• 70.疟:发疟(✓)子就是患了疟(✓)疾。
• 71.看:看(✓)守大门的保安,也很喜欢看(✓)小说。
• 72.行:银行(✓)发行(✓)股票,报纸刊登行(✓)情。
• 73.艾:他在耆艾(✓)之年得了艾(✓)滋病,整天自怨自艾(✓)。
• 74.把:你把(✓)水缸把(✓)摔坏了,以后使用没把(✓)柄了。
• 75.传:《鸿门宴》是汉代传(✓)记,而不是唐代传(✓)奇。
• 76.荷:荷(✓)花旁边,站着一位荷(✓)枪实弹的战士。
• 77.涨:我说她涨(✓)了工资,她就涨(×)红着脸,摇头否认。
• 78.奇:数学中奇(✓)数,是最奇(✓)妙的。
• 79.炮:能用打红的炮(✓)筒,炮()羊肉和炮(✓)制药材吗?
• 80.给:请把这封信交给(✓)团长,告诉他,前线的供给(✓)一定要有保障。
• 81.冠:他得了冠(✓)军后,就有点冠(✓)冕堂皇了。
• 82.干:穿着干(✓)净的衣服,干(✓)脏活,真有点不协调。
• 83.巷:矿下的巷(✓)道,与北京四合院的小巷(✓)有点相似。
• 84.薄:薄(✓)荷油味不薄(✓),很受欢迎,但要薄(✓)利多销。
• 85.恶:这条恶(✓)狗,真可恶(✓),满身臭味,让人闻了就恶(✓)心。
• 86.便:局长大腹便便(✓),行动不便(✓)。
• 87.宿:小明在宿(✓)舍说了一宿(✓)有关星宿(✓)的常识。
• 88.号:受了批评,那几名小号(✓)手都号(✓)啕大哭起来。
• 89.藏:西藏(✓)的布达拉宫,是收藏(✓)大藏(✓)经的宝藏(✓)。
• 90.轧:轧(✓)钢车间的工人很团结,没有相互倾轧(✓)的现象。
• 91.卡:这辆藏匿毒品的卡(✓)车,在过关卡(✓)时被截住了。
• 92.调:出现矛盾要先调(✓)查,然后调(✓)解。
• 93.模:这两件瓷器,模(×)样很相似,像是由一个模(✓)型做出来的。
• 94.没:驾车违章,证件被交警没(×)收了,他仍像没(✓)事一样。
• 95.舍:我真舍(✓)不得离开住了这么多年的宿舍(✓)。
• 96.殷:老林家境殷(✓)实,那清一色殷(✓)红的实木家具,令人赞叹不已。
• 97.还:下课后,我还(✓)要去图书馆还(✓)书。
• 98.系:你得系(×)上红领巾,去学校联系(✓)少先队员,来参加活动。
• 99.假:假(✓)如儿童节,学校不放假(✓),我们怎么办?
• 100.降:我们有办法,使从空中降(✓)落的敌人投降(✓)。
版本 0217 0217-add-g2pw
准确率 70% 78%
• 懒了,不做了,但是能大概反应情况了。

结论

• 懒得写了

附录

• g2pw推理速度会再慢一些
• 好像g2pw合成的语音电音更少

@KamioRinn

Copy link
Copy Markdown
Contributor Author

实验记录

目的
测试g2pw和pypinyin准确率

测试用例
#488 (comment)

测试结果

总样本 pypinyin g2pw
248 87.9% 91.94%

@XXXXRT666

Copy link
Copy Markdown
Contributor

Mac M系列使用opencc:

pip uninstall opencc
pip install opencc-python-reimplemented

@XXXXRT666

Copy link
Copy Markdown
Contributor

Mac M系列使用opencc:

pip uninstall opencc
pip install opencc-python-reimplemented

直接安装opencc会在开启推理webUI时产生如下报错:

"/opt/anaconda3/envs/GPTSoVITS/bin/python" GPT_SoVITS/inference_webui.py
当前使用g2pw进行拼音推理
Traceback (most recent call last):
  File "/Users/zhongruntong/Desktop/GPT-SoVITS fast inference 2/GPT_SoVITS/inference_webui.py", line 64, in <module>
    from text.cleaner import clean_text
  File "/Users/zhongruntong/Desktop/GPT-SoVITS fast inference 2/GPT_SoVITS/text/cleaner.py", line 1, in <module>
    from text import chinese, japanese, cleaned_text_to_sequence, symbols, english
  File "/Users/zhongruntong/Desktop/GPT-SoVITS fast inference 2/GPT_SoVITS/text/chinese.py", line 27, in <module>
    from text.g2pw import G2PWPinyin, correct_pronunciation
  File "/Users/zhongruntong/Desktop/GPT-SoVITS fast inference 2/GPT_SoVITS/text/g2pw/__init__.py", line 1, in <module>
    from text.g2pw.g2pw import *
  File "/Users/zhongruntong/Desktop/GPT-SoVITS fast inference 2/GPT_SoVITS/text/g2pw/g2pw.py", line 11, in <module>
    from .onnx_api import G2PWOnnxConverter
  File "/Users/zhongruntong/Desktop/GPT-SoVITS fast inference 2/GPT_SoVITS/text/g2pw/onnx_api.py", line 14, in <module>
    from opencc import OpenCC
  File "/opt/anaconda3/envs/GPTSoVITS/lib/python3.9/site-packages/opencc.py", line 24, in <module>
    libopencc = CDLL('libopencc.so.1', use_errno=True)
  File "/opt/anaconda3/envs/GPTSoVITS/lib/python3.9/ctypes/__init__.py", line 382, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: dlopen(libopencc.so.1, 0x0006): tried: 'libopencc.so.1' (no such file), '/System/Volumes/Preboot/Cryptexes/OSlibopencc.so.1' (no such file), '/opt/anaconda3/envs/GPTSoVits/lib/python3.9/lib-dynload/../../libopencc.so.1' (no such file), '/opt/anaconda3/envs/GPTSoVits/bin/../lib/libopencc.so.1' (no such file), '/usr/lib/libopencc.so.1' (no such file, not in dyld cache), 'libopencc.so.1' (no such file), '/usr/local/lib/libopencc.so.1' (no such file), '/usr/lib/libopencc.so.1' (no such file, not in dyld cache)

@KamioRinn

Copy link
Copy Markdown
Contributor Author

还有没有优化的空间?外挂一个对照表?

已修复了

@huangganggui

Copy link
Copy Markdown

Mac M系列使用opencc:

pip uninstall opencc
pip install opencc-python-reimplemented

直接安装opencc会在开启推理webUI时产生如下报错:

"/opt/anaconda3/envs/GPTSoVITS/bin/python" GPT_SoVITS/inference_webui.py
当前使用g2pw进行拼音推理
Traceback (most recent call last):
  File "/Users/zhongruntong/Desktop/GPT-SoVITS fast inference 2/GPT_SoVITS/inference_webui.py", line 64, in <module>
    from text.cleaner import clean_text
  File "/Users/zhongruntong/Desktop/GPT-SoVITS fast inference 2/GPT_SoVITS/text/cleaner.py", line 1, in <module>
    from text import chinese, japanese, cleaned_text_to_sequence, symbols, english
  File "/Users/zhongruntong/Desktop/GPT-SoVITS fast inference 2/GPT_SoVITS/text/chinese.py", line 27, in <module>
    from text.g2pw import G2PWPinyin, correct_pronunciation
  File "/Users/zhongruntong/Desktop/GPT-SoVITS fast inference 2/GPT_SoVITS/text/g2pw/__init__.py", line 1, in <module>
    from text.g2pw.g2pw import *
  File "/Users/zhongruntong/Desktop/GPT-SoVITS fast inference 2/GPT_SoVITS/text/g2pw/g2pw.py", line 11, in <module>
    from .onnx_api import G2PWOnnxConverter
  File "/Users/zhongruntong/Desktop/GPT-SoVITS fast inference 2/GPT_SoVITS/text/g2pw/onnx_api.py", line 14, in <module>
    from opencc import OpenCC
  File "/opt/anaconda3/envs/GPTSoVITS/lib/python3.9/site-packages/opencc.py", line 24, in <module>
    libopencc = CDLL('libopencc.so.1', use_errno=True)
  File "/opt/anaconda3/envs/GPTSoVITS/lib/python3.9/ctypes/__init__.py", line 382, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: dlopen(libopencc.so.1, 0x0006): tried: 'libopencc.so.1' (no such file), '/System/Volumes/Preboot/Cryptexes/OSlibopencc.so.1' (no such file), '/opt/anaconda3/envs/GPTSoVits/lib/python3.9/lib-dynload/../../libopencc.so.1' (no such file), '/opt/anaconda3/envs/GPTSoVits/bin/../lib/libopencc.so.1' (no such file), '/usr/lib/libopencc.so.1' (no such file, not in dyld cache), 'libopencc.so.1' (no such file), '/usr/local/lib/libopencc.so.1' (no such file), '/usr/lib/libopencc.so.1' (no such file, not in dyld cache)

same in ubuntu:

ImportError: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /home/huangganggui/miniconda3/envs/GPTSoVits/lib/python3.9/site-packages/opencc/clib/opencc_clib.cpython-39-x86_64-linux-gnu.so)

pip install opencc==1.1.6 will fix it

@huangganggui

Copy link
Copy Markdown

@KamioRinn 多音字效果非常好,赞。但感觉优化过后音调变了

test.zip

@huangganggui

Copy link
Copy Markdown

@RVC-Boss 请问这个分支会merge吗?

@RVC-Boss

RVC-Boss commented Aug 6, 2024

Copy link
Copy Markdown
Owner

@RVC-Boss 请问这个分支会merge吗?

已合并进v2最新代码

@RVC-Boss RVC-Boss closed this Aug 6, 2024
@KamioRinn KamioRinn deleted the add-g2pw branch August 6, 2024 17:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants