将开源进行到底!小米新一代Kaldi荣获2022数博会“领先科技成果”奖

2023-05-16

5月26日,数博会开幕式当天揭晓了“2022中国国际大数据产业博览会数博发布之领先科技成果”奖,小米公司“新一代Kaldi”项目,凭借全自研的创新成果和突出的社会价值,获得评委会一致认可,荣获“数博会领先科技成果奖·新技术”奖项!

2c5866ec7a4065c2e7ed190865f387c6.png

中国国际大数据产业博览会(简称数博会),是全球首个以大数据为主题的博览会,自2015年创办以来发展至今,深受党和国家领导人重视,已成为引领行业发展的国际性盛会。今年,数博会领先科技成果奖是在国家科学技术奖励工作办公室备案,唯一以博览会名义设奖和唯一以大数据为主题的专业奖项,有力提升了“数博发布”的权威性和含金量。

继往开来,引领科技前沿

新一代Kaldi为何能获此殊荣?我们要从上一代Kaldi讲起……

Kaldi,当前最流行的开源语音识别工具。大多数人可能比较陌生,但对于语音识别的从业者来说,可谓是无人不晓。大量的语音团队都在使用Kaldi引擎来开发智能解决方案,人们所熟知的“小爱同学”、“苹果Siri”等语音产品,背后都离不开Kaldi。Kaldi集成了多种语音识别模型,包括隐马尔可夫和最新的深度学习神经网络,被认为是业界公认的语音识别框架的基石。

f081a14a6d0aaf30ce0f7ee6a71420f0.png

而新一代Kaldi项目则是从蜚声世界的语音识别开源项目Kaldi发展而来。

它由 Kaldi 之父Daniel Povey 领衔研发,Daniel Povey是国际语音识别和AI领域的知名教授,博士毕业于剑桥大学,先后任职于美国 IBM 和微软公司,后加入约翰斯·霍普金斯大学担任语言和语音处理中心副教授;2019年加入小米,担任小米集团首席语音科学家,组建团队研发“新一代 Kaldi”。

dcee8fca51273de55f1fd232ce229091.png

新一代Kaldi于2021年8月30日在语音识别国际顶级会议Interspeech上发布第一个正式版本,上线之初就获得众多国际知名专家的认可和关注。目前,至少7篇发布在Interspeech、ICASSP等国际顶级会议上的论文使用本项目进行实验或对本项目进行引用。

自主自研,凝聚核心技术

新一代Kaldi作为完全自主研发的原始创新成果,功能强大的背后,离不开大量的先进技术和创新点,可以简单概括为三个子项目、两项关键技术,四大创新点

1、三个子项目

e07b363baef0b9708c118786a38211a5.png

新一代Kaldi三个子项目

(1)核心算法库k2 

k2是整个项目的核心。通过k2可以非常容易实现(置信度逐渐提高的)多轮解码过程,如消除以往语音识别任务中训练跟解码过程不匹配的问题、多轮(可求导)的语音识别过程、在声学网络中嵌入任意辅助信息等。

k2也可以用来很方便地实现很多现有的语音识别模型,如 CTC、LF-MMI、 RNN-T 等。相较于其他一些语音识别库的优势,k2速度更快,通用性强(可以用来建模多种语音识别算法)。

k2更多信息请点击链接查看详情

https://github.com/k2-fsa/k2

(2)通用语音数据处理工具包Lhotse 

Lhotse(训练数据准备部分)将替代以前Kaldi中所有数据准备相关的工作,操作各种音频和文本的元数据。Lhotse除了Kaldi本身,也适用于其他应用。而且Lhotse纯Python代码,方便易用。

Lhotse,不仅可以用在 Icefall 项目里,也可以用在任意其他语音识别库里来处理音频和文本数据。随着新一代 Kaldi 的推广和普及,Lhotse 甚至有可能成为语音领域使用最为广泛的数据准备工具。

Lhotse更多信息请点击链接查看详情:

https://github.com/lhotse-speech/lhotse

(3)语音识别完整解决方案Icefall 

Icefall(示例脚本集合部分)将代替Kaldi中的示例脚本集合,并独立成为一个单独的子项目。之所以要把示例脚本集合与核心算法分开,是考虑到示例脚本可能会非常庞大,且经常变动。

Icefall 项目只需要关注语音识别模型的结构定义部分,这大大降低了整个语音识别过程的耦合性,也方便了网络结构的复用。

Icefall更多信息请点击链接查看详情

https://github.com/k2-fsa/icefall

5b919a6b5eab41054faff985a76f196d.png

新一代Kaldi系统架构图

2、两项关键技术

1)支持GPU的不规则张量

在不规则张量上进行高效运算一直以来是一个难点,本项目提出了一种不规则张量的实现方法,并且在 CPU/GPU 上实现了与其相关的各种与规则张量相似的操作方法。作为一种通用的数据结构,我们实现的不规则张量可适用于各种不规则数据的高效运算。

(2)可微分的加权有限状态自动转换器

有限自动状态转化器是序列建模的有力工具,支持有限自动状态转化器可微分,意味着自动状态转化器可以参与到神经网络的训练中,使实现语音识别系统不仅更加灵活高效,本项目创造性的把有限自动状态转换器无缝集成到了可自动微分的 Pytorch 工具包中,并且基于上述的不规则张量在 GPU 做了高效实现,使其可以和 Pytorch 联合运行,极大的简化了序列建模的任务。

3、四大创新点

新一代Kaldi针对“上一代Kaldi神经网络定制难”、“端到端模型研发过程中训练和解码不一致”以及“如何进行端到端模型的高效训练和部署”等问题进行了攻克。其引入的解决方案是极具创新性的。主要分为以下四个部分。

(1)运用可微分的加权有限状态自动转换器进行序列建模

新一代Kaldi引入可自动求导的 FSA 算法库进行建模,这极大地扩充了语音识别建模方式的可能性,建模中损失函数的使用也不再仅限于标准的 CTC 准则,而是可以根据需要设计不同的拓扑结构,借助高效的可导的 FSA 算法来计算损失函数,并实现梯度的回传。

(2)实现置信度逐步提升的多级解码方法

新一代Kaldi包含了诸如CTC 解码、HLG 解码、语言模型重打分、神经网络语言模型重打分等多种不同层次的解码方法,并且这些解码方法是完全解耦的,用户可以根据产品对性能和效率的要求选择使用对应层级的解码方式。

(3)支持语音识别全流程的GPU加速

新一代Kaldi的各个阶段的流程都支持 GPU 的加速,有效利用了硬件技术进步带来的便利,提升算力的使用率,减小系统的反应时间。解决了当前端到端模型必须将声学模型和解码器分开在不同设备运行的难题,进一步降低系统延时。

(4)提供端到端语音识别系统的构建范式

新一代Kaldi构建了一套完整的端到端语音识别的流程,包含数据处理、深度学习模型构建、模型训练、模型解码、错误率评估等各个阶段的工具集,这将是一个开箱即用的系统,模型和脚本都将具有极大的普适性,产品开发人员将只需要替换数据就可以开发属于自己的系统,极大简化了端到端语音识别系统构建的工作,从技术和规范层面形成更先进的生产力。

开源共享,助力行业发展

新一代 Kaldi 作为开源项目,是一个开箱即用的软件,兼具“易用性”和“实用性”。在工业界和学术界已产生了重要影响,同时也为普通老百姓带来更加美好的语音识别产品体验。

1、显著降低研发成本

新一代Kaldi的大量代码都是基于 C++实现,且支持 GPU 的高效运算,将所有的核心算法都封装在了k2 这个核心模块,且提供了 Python 接口。用户只需要基于项目提供的脚本示例就可以很很容易地基于自己公司产品的数据集进行修改,迅速搭建适合自己业务的语音识别系统,进而快速地搭建线上数据反馈和模型自动迭代更新的流程,极大的缩短模型更新的周期,使原本需要一个大研发团队才能做到的事情,现在只需要几个研发维护人员就可以,显著降低开发和人力成本。

与其他开源语音工具包相比,新一代Kaldi在建设之初就以产品化落地为首要目标,致力于打造语音识别领域最有影响力的开源语音识别库,助力整个行业更加高效地构建AI语音系统。

2、全面提升产品体验

新一代Kaldi目前已在中英文数据集上均取得了优异的识别性能,具有极高的识别准确率。在开源英文数据集Librispeech上的词错率低至2%,中文数据集AIshell上字错率已达到4.26%,在大规模开源数据集(10000小时)GigaSpeech和WenetSpeech上均取得业内最好效果。并且,新一代Kaldi的解码效率极高,解码速度已达到实时解码的400倍。

3d6bab7ef9a74d626ab259ba2d2c6cc7.gif

相信随着新一代Kaldi的全面落地,高效的解码速度和低WER(词错误率)将会帮助“小爱同学”等同类语音产品朝着更为智能的方向发展,为每一个人带来更加美好的语音识别产品体验,大大方便了普通用户和家庭的生活。

开源的本质是技术共享。作为一家坚持“技术为本”的公司,未来,我们希望新一代 Kaldi 项目能够惠及全球的开发者、各大中小企业,以及每一位用户,让智能语音更加触手可及!

e910505f5542666aa3ac73341301617f.png

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将开源进行到底!小米新一代Kaldi荣获2022数博会“领先科技成果”奖 的相关文章

  • NVIDIA Jetson Nano 电源适配器 (供电)

    1 Jetson Nano 供电 Jetson Nano 的 micro USB 接口支持 2A 的电流 xff0c DC 供电接口支持 4A 电流 MicroUSB 在安全范围内的最大承载电流为 2A 实际项目中 CPU 满载 43 GP
  • 【搞定算法】常见算法题分类总览

    博主秋招提前批已拿百度 字节跳动 拼多多 顺丰等公司的offer xff0c 可加微信 xff1a pcwl Java 一起交流秋招面试经验 xff0c 可获得博主的秋招简历和复习笔记 完善中 由于本人平时刷题比较零散 xff0c 有时候找
  • 堆、栈的储存内容

    Java的JVM的内存可分为3个区 xff1a 堆 heap 栈 stack 和方法区 method 堆区 1 存储的全部是对象 xff0c 每个对象都包含一个与之对应的class的信息 class的目的是得到操作指令 2 jvm只有一个堆
  • 某32位系统下, C++程序,请计算sizeof 的值.

    某32 位系统下 C 43 43 程序 xff0c 请计算 sizeof 的值 void Foo 1 char str 100 cout lt lt 34 Foo 1 34 lt lt sizeof str lt lt endl char
  • python-pcl安装及使用

    在开始前 xff0c 先说明一下 xff0c pcl的库安装不简单 xff0c 不仅需要pip安装 xff0c 还需要安装C 43 43 的pcl库 xff0c 所以整个流程会比较漫长 鉴于官方参考网站的python pcl太麻烦 xff0
  • ROSBAG解析bag包教程

    一 软件安装教程 1 安装rosbag xff1a https www cnblogs com arkenstone p 6676203 html 2 安装mjepgtools和ffmpeg sudo apt get install mje
  • 双电机同步PID调试方法(二)

    由于双电机的PID上升曲线难以完全重合 xff0c 造成左右电机速度不一致 本文为了解决该问题设计了一种方法 主要思想是将不同速度对应的PWM占空比曲线拟合出来 xff0c 减1000 xff08 总10000 xff09 占空比后作为预设
  • exe打包成安装包

    前面介绍了如何将python代码打包成可执行文件 xff0c 这里再介绍一下如何将exe打包成安装包 一 安装InstallShield2015 百度云网址 xff1a https pan baidu com s 1fFGDeczPduWa
  • Python 打包成 wheel

    1 编写 setup py 在项目的根目录下外面一个文件夹创建 96 setup py 96 96 name 96 xff1a 指的是你打包后发布的名称 xff08 如 96 numpy 96 和 96 torch 96 xff09 96
  • plugins插件使用例程

    最近在看一个pyqt写的工具软件 xff0c 项目中大量使用plugins xff0c 所以了解了一下plugins的功能机制 下面简单分享一个例程 xff0c 代码结构如下 main py platform py init py plug
  • pycharm中.gitignore无效

    1 打开pycharm的命令行 xff0c 输入以下指令 git rm r cached git add 2 再次在pycharm上 xff0c 点击commit 原因 xff1a 这是因为pycharm会自动运行git add 的功能 x
  • Jetson Orin&Nx&Nano平台 FPDlink Ⅲ相机采集---双目场景应用

    1 前言 基于上次在淘宝上采购的FPDlink 相机采集套件使用一段时间之后 不少人对此方案很感兴趣的 又激发了我继续写的激情 上次帖子链接如下 Jetson Orin平台多路 FPDlink 相机采集套装推荐 bingdund的博客 CS
  • SBUS协议:SBUS解析与合成

    在说协议之前 xff0c 我想强调一点 xff1a 信号要取反 xff0c 硬件取反 xff01 xff01 xff01 xff01 xff01 至于为什么强调 xff0c 我会在后面解释 xff0c 你们先记住 SBUS协议 xff1a
  • 上海灵信视觉A4控制板

    资料准备 xff1a 1 LED Player上位机控制 xff1a em span style font size 12px http www 168led com AjaxFile DownLoadFileNew aspx FilePa
  • stm32串口一直进USART1_IRQHandler

    今天在使用USART模块 xff0c 遇到了一些问题并解决了 xff0c 于是发贴共享 问题描述 xff1a 在使用USART做串口通讯时 xff0c 我只把接收中断打开 xff0c 并设置抢占优先级为最低一个级别 xff0c 而接收中断上
  • tensorflow载入报错Process finished with exit code -1073741819 (0xC0000005)

    这几天准备在现有的软件里加上caffe来测试一种新算法 发现windows下python3 6安装caffe是真的难 xff0c 只能装好python2 7的版本就放弃了 回来继续完善软件 xff0c 又发现软件里的tensorflow不能
  • python项目打包(自定义dll) anaconda3+pyinstaller

    目前手上有一个python 43 pyqt的项目需要打包 xff0c 所以查了一下打包的方法 下面介绍一下具体步骤 xff1a python打包有很多方法 xff0c py2exe xff0c pyinstaller等等 xff08 其实我
  • Docker(六)同一镜像有多个Tag情况下,执行 docker rmi 镜像ID 指令无法删除

    删除方法一 docker rmi f 镜像ID 删除方法二 docker rmi repository tag 参考 xff1a 1 https www imooc com article 35040
  • 《ROS机器人开发实践(胡春旭)》第十章MoveIt!机械臂控制 学习笔记

    r 在学习 ROS机器人开发实践 胡春旭 第10章的MoveIt xff01 时 xff0c 因为在自己创建的工作空间中没有下载作者的源代码 xff0c 所有有以下几个问题 xff1a 1 使用moveit setup assistant时
  • Android 根据网络分析运营商信息

    我们想获取手机的运营商信息 通常都会去调用系统的TelephonyManager类的取数据 但是很多时候可能取不到卡的信息 xff08 例如双卡手机和一些特殊卡 xff09 xff0c 这样就区别不了运营商了 但是有时候我们的需求要进行不通

随机推荐

  • 简单又好看的按钮,扁平化按钮。

    今天分享一下流行的扁平化按钮 完全不需要用到图片哦 效果图如下 xff1a 里面有2个按钮都是一样的模式 只要修改的色值就可以 下面跟我来更新你的UI吧 首先编写 button xml 代码如下 lt xml version 61 34 1
  • Android 获取运营商信息(完整版)-解决高通,MTK等双卡问题

    由于国内的运营商问题 xff0c 双卡手机获取IMSI号问题要根据厂商API 来实现 下面我们就来做一套完整的分析运营商获取IMSI号逻辑 1 xff0c 首先我们要判断手机的平台 1 1 xff0c 判断手机是否MTK平台 public
  • AstarPathfindingProject 中RVO碰撞体扩展

    原本库中只有矩形RVO碰撞体 xff0c 如果要添加自己的需要继承RVOObstacle抽象类 xff0c 重写里面的方法 例如下面的圆柱形碰撞 using UnityEngine if UNITY EDITOR using UnityEd
  • Android中抓取手机视频流数据。

    目前实时抓取手机视频数据有2种方法 xff0c 一种是通过camera的回调获取源数据 xff0c 这里获取的源数据是没有编码的数据 有的人发送yuv数据然后在那绘制图片 xff0c 也说视频聊天 xff0c 真是可笑 这种方式是可是实现视
  • Android 使用AudioRecord录音相关和音频文件的封装

    在Android中录音可以用MediaRecord录音 xff0c 操作比较简单 但是不够专业 xff0c 就是不能对音频进行处理 如果要进行音频的实时的处理或者音频的一些封装 就可以用AudioRecord来进行录音了 这里给出一段代码
  • Android 中使用MediaRecorder进行录像详解(视频录制)

    在这里给出自己的一个测试DEMO xff0c 里面注释很详细 简单的视频录制功能 package com video import java io IOException import android app Activity import
  • Android手机中获取手机号码和运营商信息

    代码如下 xff1a package com pei activity import android app Activity import android os Bundle import android view View import
  • C语言下划线开头的函数

    首先 xff0c C 43 43 里关于下划线的问题是源于C语言 xff0c 因为C 43 43 允许用extern C 来修饰代码以C语言语法方式编译 然后说C语言里的下划线 xff1a C语言确实允许以下划线开头的函数存在 xff0c
  • 校验和计算方法

    1 说明 xff1a 1 校验和覆盖的内容 xff1a IP校验和 xff1a IP首部 ICMP校验和 xff1a ICMP首部 43 ICMP数据 xff1b UDP TCP校验和 xff1a 首部 43 数据 43 12个字节伪首部
  • 布谷鸟算法浅谈与简单应用

    简介 布谷鸟算法是由剑桥大学Xin She Yang教授和S Deb于2009年提出的一种新兴的启发算法 xff0c 是一种通过模拟自然界当中布谷鸟 xff08 也就是杜鹃 xff0c 故该算法也称为杜鹃算法 xff09 在繁育后代的行为而
  • torchvision中inception v3的实现

    一 torchvision中inception v3的网络结构 论文中给的结构如下图所示 但是torchvision中的inception v3结构中并不是这么实现的 下面解释一下torchvision中的inception v3结构 xf
  • 实践 基于Arduino 的 平衡车

    完成样子 因为只是学习验证 xff0c 没用电烙铁 xff0c 只用了面包板来连接各个组件 xff0c 中间用扎带固定 xff08 不稳定 xff09 完成后能基本保持平衡 xff0c 但太大力去推容易倒 平衡原理 通过负反馈实现平衡 xf
  • CMake入门-04-自定义编译选项

    工作环境 系统 xff1a macOS Mojave 10 14 6CMake Version 3 15 0 rc4 Hello World 自定义编译选项 CMake 允许为项目增加编译选项 xff0c 从而可以根据用户的环境和需求选择最
  • Linux 驱动开发简单实例

    Xiuye XY于 2021 08 03 19 17 07 发布343 收藏 3 分类专栏 xff1a 笔记 C C 43 43 Linux 版权 编辑笔记同时被 3 个专栏收录正在上传 重新上传取消 128 篇文章0 订阅 订阅专栏 编辑
  • ros下编译安装package

    原文地址 配置Release目录 catkin config install修改CMakeList txt文件 修改节点中CMakeLists txt文件 假设此处我们的节点项目名称为 test node 即CMakeLists txt中p
  • 什么是解耦?

    什么是解耦 解耦就是用数学方法将两种运动分离开来处理问题 对项目划分为多个模块这种做法你有什么看法 xff1f 优势 劣势有哪些 xff1f 多模块化项目优势在于 xff1a 提高代码的重用率 xff0c 可维护性高 xff0c 架构灵活
  • HDFS-Tiering 数据分层存储

    1 背景 随着小米业务迅猛发展 xff0c 存储到 HDFS 集群的数据量不断增大 xff0c 存储成本也不断攀升 尤其是海外 HDFS 集群每 GB 数据的成本是国内集群的 10 倍左右 xff0c 如何优化海外集群的存储成本变得非常迫切
  • 米家插件平台的技术实践之路

    2016年小米正式发布米家品牌 xff0c 此后米家开始接入第三方的智能硬件产品 xff0c 小米的IoT生态也迎来了快速发展 截止到2020年Q3 xff0c 小米AIoT平台已连接的IoT设备 xff08 不包括智能手机及笔记本电脑 x
  • 拥抱开源 | Xiaomi Vela团队成果连连,喜讯不断

    Xiaomi Vela是基于开源实时操作系统NuttX打造的物联网操作系统 xff0c Vela可以在各种物联网硬件上提供统一的软件平台 xff0c 通过丰富的组件和标准化的软件框架 xff0c 打通碎片化的物联网应用场景 今年Xiaomi
  • 将开源进行到底!小米新一代Kaldi荣获2022数博会“领先科技成果”奖

    5月26日 xff0c 数博会开幕式当天揭晓了 2022中国国际大数据产业博览会数博发布之领先科技成果 奖 xff0c 小米公司 新一代Kaldi 项目 xff0c 凭借全自研的创新成果和突出的社会价值 xff0c 获得评委会一致认可 xf