语音识别损失函数chain 和ctc 的异同

本文对比分析了Chain_Numerator和CTC两种语音识别损失函数的异同。相同之处在于两者都在多条路径的前向后向运算中发挥作用。不同点主要包括:路径生成方式,Chain_Numerator依赖alignment,CTC则通过特定方式;blank label的处理,Chain_Numerator每个三音节有自己的空白标签,而CTC所有音素共享一个;是否考虑语言模型,Chain_Numerator考虑权重,CTC忽略跳转概率;训练样本时长,Chain_Numerator可控制长度,CTC使用完整样本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

总结: 1个相同点, 4个不同点。

相同点:

  1. 都是在label生成的多条特定路径后的前向后向运算

不同点:

  1. label生成的多条特定路径的方式不同。

chain numerator的多条特定路径是alignment出来的;

ctc是通过下图方式(原始链接)得到

2. blank label 不同。

chain numerator 没有blank label,如果认为triphone 三个state 中的最后一个state 是blank label的话,那么chain numerator 的每个triphone都有自己的blank label,;

在ctc中所有的phone 共享一个blank label.(或许这是ctc spike timings 的原因? I am not sure)

3. 是否考虑了language model.

在chain numerator 计算前向/后向 probability时, 每一个跳转的概率都有自己的权重。chain分子前向对应代码

而在ctc 中,每一步跳转都认为是等概率的,直接忽视跳转概率,ctc 前向对应代码

4. 训练样本的时长不同

由于chain numerator 是alignment的路径,所以长度可以控制。无论输入是多少,最终都可以截断成150frames的训练数据。

而ctc 是把整个样本全部拿来训练。

转载自:语音识别损失函数chain_numerator 和ctc 的异同分析 - 知乎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值