ctc网络输出解码

在这里插入图片描述
图 1 alpha矩阵大小
横坐标是声学特征,x1-x6一共有6帧语音,每一帧语音输出是一个v大小概率分布,v是token词典大小,现在假设token单位是字符,并且字典大小是三个字符,[%,c,a,t],所以v的大小是4。
前向概率计算参数包括两点:

  • 1.所有声学特征输出概率分布矩阵y
  • 2 已插入空白符的label序列, 大小为L

y 每列分别是 blank c a t 对应概率

array([[0.17914049, 0.27980623, 0.26827714, 0.27277615],
       [0.23065626, 0.22605778, 0.26611104, 0.27717492],
       [0.1742262 , 0.26031537, 0.27538571, 0.29007271],
       [0.1955796 , 0.19450504, 0.28984316, 0.32007221],
       [0.20306928, 0.2225706 , 0.27792999, 0.29643014],
       [0.15339513, 0.24912987, 0.27953229, 0.3179427 ]])

label

labels = [0, 1, 0, 2, 0, 3, 0]  # 0 for blank id, 1 for 'c' id, 2 for 'a' id, 3 for 't' id

前向概率需要计算一个alpha矩阵, 大小刚好为图1所示大小的转置,
初始化大小为T*L为0矩阵 alpha = np.zeros([T, L])

下面还原前向概率计算方式

  • T1时刻,第一帧语音输出对齐的token有两种可能,也就是label前两个token, 可能是空(blank)或者c, 所以
    alpha[0,0]= y[0, label[0]], # 空blank
    alpha[0,1] = y[0, label[1]] # c 字符
    对应代码为
    alpha[0, 0] = y[0, labels[0]]  #空的概率
    alpha[0, 1] = y[0, labels[1]] #c的概率

alpha值

array([[0.17914049, 0.27980623, 0.        , 0.        , 0.        ,
        0.        , 0.        ],
       [0.        , 0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值