零声母转换，还原原始的韵母

    i行的韵母，前面没有声母的时候，写成yi(衣)，ya(呀)，ye(耶)，yao(腰)，
    you(忧)，yan(烟)，yin(因)，yang(央)，ying(英)，yong(雍)。

    u行的韵母，前面没有声母的时候，写成wu(乌)，wa(蛙)，wo(窝)，wai(歪)，
    wei(威)，wan(弯)，wen(温)，wang(汪)，weng(翁)。

    ü行的韵母，前面没有声母的时候，写成yu(迂)，yue(约)，yuan(冤)，
    yun(晕)；ü上两点省略。

def convert_zero_consonant(pinyin):
    """零声母转换，还原原始的韵母

    i行的韵母，前面没有声母的时候，写成yi(衣)，ya(呀)，ye(耶)，yao(腰)，
    you(忧)，yan(烟)，yin(因)，yang(央)，ying(英)，yong(雍)。

    u行的韵母，前面没有声母的时候，写成wu(乌)，wa(蛙)，wo(窝)，wai(歪)，
    wei(威)，wan(弯)，wen(温)，wang(汪)，weng(翁)。

    ü行的韵母，前面没有声母的时候，写成yu(迂)，yue(约)，yuan(冤)，
    yun(晕)；ü上两点省略。
    """
    # y: yu -> v, yi -> i, y -> i
    if pinyin.startswith('y'):
        # 去除 y 后的拼音
        no_y_py = pinyin[1:]
        first_char = no_y_py[0] if len(no_y_py) > 0 else None

        # yu -> ü: yue -> üe
        if first_char in U_TONES:
            pinyin = UV_MAP[first_char] + pinyin[2:]
        # yi -> i: yi -> i
        elif first_char in I_TONES:
            pinyin = no_y_py
        # y -> i: ya -> ia
        else:
            pinyin = 'i' + no_y_py
        return pinyin

    # w: wu -> u, w -> u
    if pinyin.startswith('w'):
        # 去除 w 后的拼音
        no_w_py = pinyin[1:]
        first_char = no_w_py[0] if len(no_w_py) > 0 else None

        # wu -> u: wu -> u
        if first_char in U_TONES:
            pinyin = pinyin[1:]
        # w -> u: wa -> ua
        else:
            pinyin = 'u' + pinyin[1:]
        return pinyin

    return pinyin