作者最近终于有时间完成了 leaderboard 的代码,本文简要介绍该项目的基本情况,文末有测试集分享。


1. Leaderboard 与 Benchmark 的差别


Leaderboard 是TIOBE Benchmark工作的一个自然的拓展。通过一套标准的评测约定(包括数据格式,识别程序接口,输入输出格式,文本归一化等),为语音识别行业提供一个一致的性能比对平台。


2. 为什么要做 Leaderboard

连通产业界内部:

  • top厂商间的比较可以反应整个行业的 SOTA (参考TIOBE benchmark)

  • 其他厂商、团队、个人可以通过接入 leaderboard 更客观的评估自己系统性能,与行业 SOTA 比较。


连通学术&开源、以及产业界:

  • 学术界、开源领域的数据集在日益增大,眼花缭乱的开源的系统以及 pretrain 模型层出不穷,这些系统和模型是否接近实用?距离产业界的 SOTA 性能还有多远?

  • 让我们联想一下数据库领域,MySQL / PostgreSQL / MongoDB / Cassandra等一众开源系统和 Oracle 相爱相杀的故事...... 大部分的人工智能技术都可以类比成数据库一样的基础能力,那么在语音识别行业,我们走到哪里了?


3. leaderboard 如何工作


  • SpeechIO 提供了公共的网盘空间作为 testset-zoo 和 model-zoo,用户可以通过我们github的提交工具,将自己的模型、测试集提交到 zoo 中。testset-zoo 和 model-zoo 中的每一个对象都有一个独有id,分别叫做 testset_id  和 model_id

  • testset-zoo:目前包含所有的 SpeechIO 测试集,对应 testset_id 为

    • SPEECHIO_ASR_ZH00001

    • SPEECHIO_ASR_ZH00002

    • ...

    如果有朋友愿意分享自己的场景测试集出来,我们热烈欢迎,可以后台私信我们,讨论合作。

  • model-zoo:我们制定了一个最简的模型约定,包括以下几项:

    • "model_dir"指一个独立文件夹,包括一个完整的可以被任何人复现的语音识别解码工作环境。

    • model_dir/docker/Dockerfile:用来描述你的环境依赖(操作系统,环境变量,软件包,机器学习框架,python虚拟环境等)

    • model_dir/model.yaml:必要的识别模型信息,主要为语种,模型的采样率,作者。

    • model_dir/SBI: 模型提交者实现的识别程序。可以是bash, perl, python, c/c++ binary, 实现对一个音频列表进行解码(音频均为30秒以下的短wav)

    • model_dir/README.md(可选):提交者对系统的描述,供他人了解你的系统,建议填入模型参数量、模型结构、目标函数、优化方法等。

    • model_dir/其他资源:包括各种各样的模型资源和配置甚至其他程序和库,提交者可以随意放置,供SBI程序读取和引用。


    我们在定义这个模型约定的时候以简单为首要原则,这基本是复现一个语音识别系统最朴素的要求。很多开发者和研究者总是满足于“在我自己现在的这台机器上能跑通”的假象中,从没有系统的理清自己系统的依赖,导致自己每次换机器之后总要花大量的时间重新折腾环境。接入 SpeechIO Leaderboard 的过程,其实也是梳理自己系统的机会,方便“别人”复现,这个“别人”很可能是未来的自己。配合 model-zoo 的云存储,接入者可以在若干年后轻易的复现自己的本地识别系统。


    目前的 model-zoo 中,遵循上述模型约定,我们首次彻底开源了TIOBE Benchmark中对各厂商的 API 调用代码(基本为各厂商官网的调用示例程序)。对应 model_id 为:

    • aispeech_api

    • aliyun_api

    • ...

    • yitu_api

    相关语音组的同学可以帮忙查验调用的代码,如果有问题,请后台私信或者加微信号 jerryejwt 沟通。


  • 测试的发起人通过定义一个 request.yaml 文件,来描述一组测试请求,其中包括的必要信息:

    • requester: 发起人

    • model: 填入你想测的 model_id

    • test_set: 填入你想测试的 testset_id 列表

    • email: 测试结果接收邮件(可以是多个)


  • 当 model_id 和 testset_id 都是公共可见的模型和测试集时,发起人可以在自己的机器上运行我们 github repo 里的工具自行测试(需要本机有docker)。

  • 当 model_id 和 test_id 中包含非公开模型或测试集时(目前 SpeechIO 的测试集还处于锁定期,没有对外公开),需要测试发起人,将上面的 request.yaml 通过 github pull request 的方式提交到 leaderboard repo,由SpeechIO 帮忙进行测试。

  • 测试的发起人并不一定是模型的提交者,可以是任何人。这个是by design的,我们希望搭建一个更开放的平台,而不仅限于模型提交者和测试集制作者参与其中。

  • 部分 leaderboard 用户可能不希望自己的模型对他人可见,并希望私下反馈结果。这种私有测试请求只对请求人有益,并没有为语音社区增加开源模型和测试集,而且可能需要 SpeechIO 签署某种保密协议,我们会有选择的接受这类请求。有需要请私下与我们沟通具体事宜。


本文只是简单介绍了 SpeechIO Leaderboard 项目,具体信息请移步项目官方 GitHub 地址,上面包含了提交和接入 Leaderboard 的最新文档: