-
-
Notifications
You must be signed in to change notification settings - Fork 608
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
pypinyin标注准确率测评结果 #133
Comments
@Jackiexiao 感谢分享! |
还有一种情景不一致,比如词语: 这种两个第三声组合的词,正确的发音是首字读第二声. pypinyin出来的结果是'biao3 yan3'、'ni3 hao3' 而thchs30中的标注是'biao2 yan3'、'ni2 hao3' 因为要借助pypinyin和thchs30来实现中文AI TTS,匹配不正确会引发异常. 这种情况能否修正呢? |
只能是修改词典,或者借助正确的分词来将两个三声连读的第一个三声变二声情况纠正。 |
现实生活中都是读第三声吧😳 |
不是,这是拼音中的变调规则 |
是的,在一些情境下需要变调,目前有如下4四种情况. 三声变调 |
@Jackiexiao @Starlon87 学习了,之前不知道这个知识点。 |
This comment has been minimized.
This comment has been minimized.
有可能「變調前、變調後」都提供嗎? 日文轉假名的程式庫(http://taku910.github.io/mecab/) 每個日文詞下去查會得到以下結果:
最後兩個「読み,発音」一個是拿來標注的(變調前)、一個是真正唸出來的音調(變調後)的假名。 猜想現在 python-pinyin 都是「變調前」的。 兩個合起來才是所有的結果。 |
如果按读音区分的话,像 ti si shi 里的 i 其实是三种不同的读音,做speech model时需要输出成不同的符号,比如 cmu sphinx的中文词典里的表示分别是 i (ti), iy (si), ix (shi) |
最新版本已支持部分变调规则(参考 https://en.wikipedia.org/wiki/Standard_Chinese_phonology#Tone_sandhi ):
不过,如果要达到更好的效果还需要配合使用 https://github.com/mozillazg/pypinyin-dict 中更庞大的词语拼音库以及基于词语拼音库的更精准的分词方法来进行优化。 BTW,pypinyin 这种基于词语拼音库的方式优化拼音结果的方法的准确率毕竟是有限的, |
一种比较好的方式是通过词频的方式来判断是否要3声变调,例如 小老虎,freq{老虎} > freq{小老} 所以[老虎]要优先变调,这种方式能解决大部分问题,当然少量情况下可能是错误的。 |
最近基于 Interspeech 2022 中发布的 g2pW 项目封装了一个项目,优点是继承了 g2pW 项目的支持通过训练模型的方式提升拼音准确性的能力以及可以沿用 pypinyin 的使用习惯(支持各种拼音风格),感兴趣的话可以试一下: https://github.com/mozillazg/pypinyin-g2pW |
最近写了一个程序并利用thchs30语料库的拼音标注粗略地对python-pinyin标注的准确性进行评估,供大家参考。
准确率:约96%【仅供参考,不保证准确性】
其中,错误次数最高的词如下:
thchs30将不少字按照实际音频发音标注成轻声,并且thchs30将两个三声连读的词中第一个标注为二声,这两个是主要误差
The text was updated successfully, but these errors were encountered: