TensorFlow练习15: 中文语音识别

语音识别的应用领域非常广泛,洋文名Speech Recognition。它所要解决的问题是让计算机能够“听懂”人类的语音,将语音中包含的文字信息“提取”出来。

语音识别是前文《聊天机器人》必不可少的一个组件,本帖就使用TensorFlow做一个中文语音识别。

使用的数据集

THCHS30是Dong Wang, Xuewei Zhang, Zhiyong Zhang这几位大神发布的开放语音数据集,可用于开发中文语音识别系统。

为了感谢这几位大神,我是跪在电脑前写的本帖代码。

下载中文语音数据集(5G+):

在开始之前,先好好检视一下数据集。

训练

后续:从麦克风获得语音输入,使用上面的模型进行识别。

相关资源:

相关文章

《TensorFlow练习15: 中文语音识别》有19个想法

  1. 大神你好,解码的时候,得到的logit是有数值的,但是解码的结果,是一个空值,请问是哪里出错了吗?
    [SparseTensorValue(indices=array([], shape=(0, 2), dtype=int64), values=array([], dtype=int64), dense_shape=array([1, 0]))]

  2. 训练结束后,预测的时候报错,可否指点下?
    Failed precondition: Attempting to use uninitialized value conv1d_18/W

  3. 我自己笔记本连着训练了几天,还没训练完,结果笔记本死机了,估计前面那些是白训练了。后续还有的出吗?

  4. 后续:从麦克风获得语音输入,使用上面的模型进行识别。
    这个后续什么时候能出?
    楼主能给个如何使用这个模型来输出的例子吗?

      1. 大神你好,解码的时候,得到的logit是有数值的,但是解码的结果,是一个空值,请问是哪里出错了吗?
        [SparseTensorValue(indices=array([], shape=(0, 2), dtype=int64), values=array([], dtype=int64), dense_shape=array([1, 0]))]

  5. 我用wav/train/A6/A6_111.wav来预测。结果返回……

    ...
    values=array([ 0, 0, 38, 0, 5, 38, 0, 5, 38, 0, 5, 38, 0, 5, 38, 0, 5,
    9, 0, 5, 9, 0, 5, 15, 0, 5, 9, 0, 16, 0, 6, 0, 5, 6,
    0, 5, 0, 5, 36, 0, 14, 15, 0, 14, 15, 0, 5, 9, 0, 5, 35,
    0, 5, 0, 5, 6, 0, 6, 0, 5, 9, 0, 9, 0, 0, 6, 0, 6,
    15, 0, 6, 15, 0, 5, 15, 0, 14, 9, 0, 14, 15, 0, 0]
    ...

    使用如下代码转换,结果却是乱码,请指教哪儿不对:
    python
    msg=''.join([words[n] for n in output[0][1]])
    print msg

    1. 我识别的时候都是得到这个结果:
      [SparseTensorValue(indices=array([[0, 0],
      [0, 1],
      [0, 2],
      [0, 3],
      [0, 4],
      [0, 5],
      [0, 6],
      [0, 7],
      [0, 8],
      [0, 9]]), values=array([7113, 7113, 7113, 7113, 7113, 7113, 7113, 7113, 7113, 7113]), shape=array([ 1, 10]))]
      是我打开的姿势不对吗?求指教

  6. 楼主你好!非常感谢你分享的实践经验!我在调试运行你的代码,但是发现训练时间实在太长,需要几天的时间。
    1.请问楼主你是用什么硬件资源训练的网络?花费的时间怎样?
    2.还有,我的笔记本配置有限,你可否方便把你训练好的网络发给我研究一下呢?真诚感谢!

发表评论

电子邮件地址不会被公开。 必填项已用*标注