Skip to content

有没有考虑过中英混合的ITN #49

Description

@y00281951

这个其实在实际项目中,需求量会比较大

Activity

  1. xingchensong commented on Nov 16, 2022

    @xingchensong
    Member

    意思是中文和英文同时做ITN吗?这个暂时没考虑,可以增加下,谢谢提议,欢迎PR~

  2. y00281951 commented on Nov 17, 2022

    @y00281951
    ContributorAuthor

    意思是中文和英文同时做ITN吗?这个暂时没考虑,可以增加下,谢谢提议,欢迎PR~

    嗯嗯是的,现在实际上线的项目,都是需要中英混输。我先做做看看效果,如果不错的话,再PR

  3. xingchensong commented on Dec 24, 2022

    @xingchensong
    Member

    中英混里面比较常见的英文类别都是啥样的,日期还是电话号码还是什么?

  4. LingBoDiDi commented on Dec 28, 2022

    @LingBoDiDi

    中英文混合还是比较常见的,比如航班号码的播报,再比如单词的拼读如,A P P,再比如中文里夹杂一些专有的英语名词, 比如:“你定的酒店是在georgia吗”,那这里的“georgia”是该itn为“Georgia”还是缩写呢,等等。我目前也在做asr后处理这块,有问题可以相互讨论下,嘿嘿。

  5. xingchensong commented on Dec 28, 2022

    @xingchensong
    Member

    这些case(加空格,大小写)实现起来比较简单,甚至不需要怎么改代码就能支持,我比较关心的是“我有 one thoundsand dollars” 这种涉及数字变化的“我有$1000”,这种case似乎不是很常见

  6. LingBoDiDi commented on Dec 29, 2022

    @LingBoDiDi

    如果考虑地区的话,像港澳地区这种可能会夹杂这种中英的,比如:这个可以有ten percent的收益吗。

  7. xingchensong commented on Dec 29, 2022

    @xingchensong
    Member

    如果考虑地区的话,像港澳地区这种可能会夹杂这种中英的,比如:这个可以有ten percent的收益吗。

    有中英文数据的话可以总结下~ 不在那个语境容易闭门造“句”

  8. LingBoDiDi commented on Dec 29, 2022

    @LingBoDiDi

    如果考虑地区的话,像港澳地区这种可能会夹杂这种中英的,比如:这个可以有ten percent的收益吗。

    有中英文数据的话可以总结下~ 不在那个语境容易闭门造“句”

    我后续看看我这边能不能总结一些例子 有空的话我发你邮箱 你看成不 你主页的邮箱用的吧

  9. xingchensong commented on Dec 29, 2022

    @xingchensong
    Member
  10. HunterKai commented on Feb 9, 2023

    @HunterKai

    英文的ITN后面会做吗

  11. keanucui commented on Mar 22, 2023

    @keanucui

    @xingchensong 你好,wfst的规则转换, 可以像支持tts前端ssml那种功能吗? 就是可以指定某个子串按照某种固定读法读. toy example: <number>1234</number> 中1234 会转换成成:一二三四. 而不是:一千二百三十四.

  12. xingchensong commented on Mar 23, 2023

    @xingchensong
    Member

    @xingchensong 你好,wfst的规则转换, 可以像支持tts前端ssml那种功能吗? 就是可以指定某个子串按照某种固定读法读. toy example: <number>1234</number> 中1234 会转换成成:一二三四. 而不是:一千二百三十四.

    可以,需要单独写一个规则

  13. iPwnXX commented on Apr 17, 2023

    @iPwnXX

    这些case(加空格,大小写)实现起来比较简单,甚至不需要怎么改代码就能支持,我比较关心的是“我有 one thoundsand dollars” 这种涉及数字变化的“我有$1000”,这种case似乎不是很常见

    想问个关于空格切分英文的问题:在用pip源下载导入包的LN normalizer.normalize()时会合并英文词空格,如输入“We Text Processing"会输出成‘WeTextProcessing’; 而使用clone 下来的WeTextProcessing代码仓里的normalize就可以保留空格。两者在tag输出都是一样的,应该是verbalize()的问题。请问这个具体是哪里规则导致的呢?是否保留英文空格是在源文件里哪部处理的

  14. pengzhendong commented on Jun 10, 2026

    @pengzhendong
    Member

    英文 ITN 已经在 #358 和 #361 实现了(469/470 NeMo 测试通过)。

    中英混合 ITN 可以通过语言分段处理实现:按中英文字符边界切分文本,中文段用中文 ITN,英文段用英文 ITN,拼回来。

    例如:

    输入:今天下午两点钟有ten percent概率下雨
    切分:["今天下午两点钟有", "ten percent", "概率下雨"]
    处理:["今天下午2点钟有", "10%", "概率下雨"]
    输出:今天下午2点钟有10%概率下雨
    

    这个在上层做分段即可,不需要改 FST 规则。欢迎 PR~

  15. pengzhendong commented on Jun 10, 2026

    @pengzhendong
    Member

    wfst的规则转换, 可以像支持tts前端ssml那种功能吗?

    这个建议在自己的项目里做上层处理,不需要改 WeTextProcessing 的 FST 规则。思路:

    1. 预处理:正则提取 <tag>content</tag>
    2. 根据 tag 选择处理方式(逐字读、日期、电话等)
    3. 替换回原文后再走正常 TN
    import re
    
    def ssml_normalize(text, normalizer):
        # 提取标签内容,单独处理
        def replace_tag(m):
            tag, content = m.group(1), m.group(2)
            if tag == "number":
                return " ".join(content)  # 逐字读: 1234 -> 1 2 3 4
            return content
        text = re.sub(r"<(\w+)>(.*?)</\1>", replace_tag, text)
        return normalizer.normalize(text)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions