自顶向下分析一个简单的语音识别系统(十)

接着上回结束的地方,本回我们来分析sparse_tuple_to_texts函数和ndarray_to_text函数。首先分析sparse_tuple_to_texts函数。

1.sparse_tuple_to_texts函数

给出代码如下:

def sparse_tuple_to_texts(tuple):
    indices = tuple[0]
    values = tuple[1]
    results = [''] * tuple[2][0]
    for i in range(len(indices)):
        index = indices[i][0]
        c = values[i]
        c = ' ' if c == SPACE_INDEX else chr(c + FIRST_INDEX)
        results[index] = results[index] + c
    # List of strings
    return results

由前文可知indices是一个[[a b][c d]]类型的数组(其中a、c表示第几个seq,b、d表示该seq中的第几个time_slice),values对应着所有seq的数值表示,tuple[2][0]为seq个数。result返回数据文件夹中test目录下标注文本的信息。

2.ndarray_to_text函数

这个函数很简单,只是将输入的数值型数组value转化为字符串输出,代码如下:

def ndarray_to_text(value):
    results = ''
    for i in range(len(value)):
        results += chr(value[i] + FIRST_INDEX)
    return results.replace('`', ' ')

至此,我们的语音识别系统的代码基本分析完了。但是细心的小伙伴可能已经想问了CTC loss是怎么定义的?AdamOptimizer又是怎么定义的?后文我们将对这两个部分进行相关说明。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值