高效团队合作的 10 个关键

有效的团队合作对于任何企业的成功都是至关重要的。它也不限于企业。运动队、乐队,甚至家庭都需要有效的团队合作来完成工作。商业领袖总是对有效团队合作的秘诀感兴趣。毕竟,你不想希望你为一个项目组建的团队会很幸运。 enter image description here 伟大的团队——能够带来非凡成果的团队——具有某些特征。企业可以在创建团队以实现目标时学习和应用它们。例如,如果您知道成功的团队依赖于有效的协作,您可以为您的团队配备工具来帮助他们更好地协作。这比相信一群随机聚集的人会以某种方式取得成功要好得多。

高效团队合作的 10 个关键

企业可能出于各种原因创建团队,包括长期的和短期的。有些团队是临时的,为特定项目创建,然后解散。其他人则更长期,通常跨越数年为组织实施关键项目。

1- 每个团队都应该有明确的目标

有效的团队合作需要几件事,但也许最重要的是有明确定义的目标。很多时候,业务领导者会为定义不明确或含糊不清的任务创建团队。如果团队不知道他们的目标,他们将如何实现目标?

考虑两个团队。一项任务是在 5 年内将成本降低 30%。另一个团队只是被告知要提高业务的盈利能力。第一队比第二队更有可能成功。

为什么?第二队没有数字,也没有明确的指示。他们应该专注于削减成本还是促进销售?他们希望取得多大的进步?

然而,第一队有一个先机。他们已经知道:

  • 他们需要实现的目标——削减成本
  • 多少 – 30%
  • 什么时候——5年内

2- 一个成功的团队有清晰的沟通

团队之间的沟通是成功的关键因素。开放、诚实和清晰的沟通在整个项目中起着重要作用。你如何沟通以及它发生的频率会影响有效性。如果你信任你的同事,你就更有可能分享见解和想法。沟通不仅仅包括谈话,倾听也是一个重要的组成部分。

难怪企业在通信工具上投入如此之多。一个成功的团队需要随时跨渠道沟通的能力。您不希望员工每次需要更新某人或讨论某事时都在玩电话标签。在电话、电子邮件、短信、即时消息、视频聊天、群组通话、电话会议,甚至语音邮件之间,不乏选择。

那么如何确保您的团队有效沟通并完成工作呢?投资一个平台,让您可以将多个渠道集成到一个有凝聚力的系统中。在当今世界,这通常意味着使用 VoIP作为基础的SparkleComm统一通信套件。SparkleCommVoIP 允许企业使用其现有的数据网络进行语音通话、视频通话、群组音频和视频通话、即时消息、可视语音邮件,甚至传真。

确保您的团队能够使用最好的沟通工具,并看到他们的效率飙升。

3-有效的团队合作需要协作

如果你看看成功的团队,你经常会发现一个特定的特质很突出。它是彼此密切协作以创建解决方案的能力。无论是推出新产品还是解决质量保证问题,有效的团队合作都需要密切协作。

曾经有一段时间,协作意味着每个人都出现在会议室中并进行头脑风暴/一起工作。团队使用白板、笔和纸、会议等协作工具。到 2021 年,这种模式对于可能分散在世界各地的团队来说非常有限。

今天的协作工具几乎总是在线并且可以从任何地方访问。会议是虚拟的,文档共享发生在云中,团队甚至可能不会面对面地见面一次。但是这些工具的存在并不意味着您的团队会使用它们。您需要让每个人都尽可能轻松地访问它们。您的业​​务需求决定了您使用的确切应用程序,但您应该涵盖基础知识。

4- 独特的角色和身份

团队合作需要每个人朝着一个共同的目标努力,但每个成员都应该有一个明确的角色。您的员工具有由他们的经验和技能组合塑造的独特身份,因此在组建团队时利用它们来发挥您的优势。一些经理试图通过将已经工作得很好的人聚集在一起来尽量减少团队内部的冲突。但他们的技能或角色可能不适合该项目。

一般来说,团队需要能够履行特定角色的成员,例如:

  • 有大局观的创意者和探索者
  • 有条不紊和有逻辑的人来制定细节,让团队完成任务等
  • 财务专家处理数字并跟踪指标
  • 运营人员设置后勤、配送、物资等

自然,在团队安顿下来之前,角色将是流动的,并且您可能需要更多或更少的角色,具体取决于项目。但在人员配备之前考虑它们至关重要。

5- 从一开始就建立流程

有效的团队合作不仅与个人有关,还与流程有关。每个项目都有里程碑、截止日期、时间表和需要完成的工作任务。这些应记录在案并易于访问。这不仅仅是在项目结束后将它们归档,团队可以而且应该使用它们来完成任务。

从一开始就建立和使用这些流程很重要。考虑团队将如何:

  • 分配工作:谁做什么、何时以及如何
  • 依赖关系:哪些任务需要先完成,哪些可以等待
  • 里程碑:应满足哪些截止日期以及如何相应地安排工作
  • 状态更新:谁应该被告知进度以及这些将如何发送

团队应该就流程达成一致,这样就可以毫无疑问地使用什么工具来达到什么目的。这将使您更容易专注于工作,而不是像使用电子邮件与管理层交谈或安排会议那样的细枝末节。

6- 信任和承诺

成功的团队依赖于相关人员之间的深厚联系。一些团队成员甚至可能在工作之外发展个人友谊。但重要的是每个人都互相尊重和信任。应该有相互信任来鼓励想法分享,没有人应该害怕表达他们的意见。

只有当每个人都坚定地致力于结果时,才会发生有效的团队合作。团队成员应该互相支持,依靠队友一起克服障碍。

7- 鼓励冒险

关于团队有一个基本的误解,那就是每个人都认为团队合作不鼓励冒险。这并不奇怪,因为新闻主要由领导业务变革的有魅力的领导人主导,几乎是在解读对既定做法的讨伐。

但现实情况是,大多数成功的团队都鼓励冒险。成员能够将他们独特的经验和观点带到桌面上。这使个人在做出艰难决定时能够承担风险。他们知道他们的同事会支持他们,并在错误发生时纠正任何错误。团队成员不会因为冒险而受到嘲笑,而是鼓励他们这样做。

8- 创造力和创新

与冒险相似,创造力和创新对于团队合作产生结果是必要的。无论您是在谈论头脑风暴会议以产生独特的想法,还是评估疯狂的策略以推出新产品,创造力都是必不可少的。对持续改进和创新的关注也是如此。

对待风险、创造力和创新的态度是优秀团队与平庸团队的区别。对成功的团队合作进行仔细检查——无论是商业项目、运动队还是乐队——将显示出创造性和创新思想的相同联系。

9- 冲突解决

有效的团队合作并不意味着成员永远不会发生冲突或持有相反的观点。然而,一个成功的团队将有解决此类冲突的适当方法。成员们很体贴,即使他们有不同的意见,也会互相尊重。没有人身攻击或不专业的行为。

一个成功的团队由具有不同观点的独特个人组成。偶尔会有个人之间的冲突,但它永远不会失控,威胁到有效的团队合作。另一个冲突途径是团队面临失败时。发生这种情况时,团队成员不会互相指责。每个人都对自己的行为负责,并通过为总体目标做出贡献而参与其中。

10-决策和领导

几乎每个人都认为强大的领导者对于有效的团队合作是必要的。然而,最成功的团队使用一种参与式领导形式。这意味着不是一个人领导其他人,而是每个人都参与领导团队走向成功。这包括做会议记录、分配任务、做出决定和记录结果等任务。这种领导风格允许每个人为成功的结果做出贡献,而不是将所有责任集中在一个人身上。

SparkleComm会议预约时间规则

首先登录PC版本SparkleComm软件,点击左侧会议图标进入会议主界面,然后点击“预约会议”选项进入预约会议界面,如下图。

enter image description here

1.默认时间,默认的开始时间为当前时间之后的近半小时,比如当前时间10时10分钟左右,开始时间就为10时30分,若分钟数超过了30分钟,则往下一个小时点开始。

2.开始时间,开始时间不能比当前时间早,也就是不能为过去时间,必须比当前时间晚,否则,会议预约时提示“会议时间不能比当前时间早”,而且预约失败。

3.结束时间,默认的结束时间时要比开始时间晚一个小时的,但是在您选择结束时间时,结束时间就为您所选择的时间,注意,选择的结束时间不能比开始时间早,否则会议无效,预约失败。

呼叫中心生产力的重要性

建立和运营呼叫中心是一项艰巨的任务,无论您是一个5 人的小型团队,还是分布在多个办公室的 500 人的部门。初始投资后,呼叫中心经理必须确保一切顺利进行。有效的SparkleComm呼叫中心可以增加收入、增强客户体验并改善企业的整体品牌形象。 enter image description here 呼叫中心生产力的重要性

每个企业都需要能够处理客户查询并解决与产品/服务相关的问题的员工。您在这方面做得如何将影响客户保留率、满意度和整体盈利能力。对您的呼叫中心体验不佳的客户不仅会转向从竞争对手那里购买,还会告诉他们知道的每个人。现在这似乎还不错,但在当今的数字世界中,他们认识的每个人都可以轻松地遇到成千上万的人!

另一方面,良好的客户互动可以帮助您留住现有客户并培养忠诚的基础,他们不会在丝毫挑衅下转向竞争对手。由于电话仍然是消费者联系组织的最流行方式,SparkleComm呼叫中心在这项工作中起着至关重要的作用。即使是处理电子邮件、实时聊天和社交媒体互动的多渠道联络中心,仍然会看到他们的大部分查询是通过电话输入的。

呼叫中心与客户服务评分的关系

高效的SparkleComm呼叫中心会影响您的整体客户服务水平。但是你如何衡量一些无形的东西,比如满意度?从少数客户那里获得推荐或在线评论是不够的。你需要知道你在哪里,你想去哪里,以及你所在行业的规范是什么。

这就是指标的用武之地。指标允许组织衡量无形的东西,如客户满意度和忠诚度。

衡量客户服务水平的指标

1.客户满意度评分 (CSAT) – CSAT 显示客户对您的服务的满意程度(或不满意程度)。它是使用带有问题的客户调查来衡量的——“您如何评价您对业务/产品/服务的整体满意度?” 它是客户在某个时间点对产品、服务或整个业务的满意度的指标。

2.客户努力得分 (CES) – CES 表明客户必须付出多少努力才能与您的业务互动。换句话说,它指的是与贵公司开展业务的便利性。要获得 CES,您会问客户——“订购 XYZ/获得支持/订阅服务有多容易?” 企业通常会在特定交易(例如服务电话或在线购买)之后立即向客户提出这个问题。CES衡量个别交易的短期影响。

3.净推荐值 (NPS) – NPS 是衡量长期忠诚度的指标。您可以通过询问客户来计算 NPS——“您向他人推荐业务/产品/服务的可能性有多大?” 根据 10 分制的回答,您将客户分为促进者(会向他人推荐您的忠诚客户)、被动者(中立且容易受到竞争对手产品的影响)或批评者(不太可能再次向您购买,也会劝阻其他人这样做)。

很明显,您的呼叫中心对客户满意度有直接和直接的影响。但是您如何知道您的呼叫中心员工是否高效?有没有办法查看如何或在哪里可以提高服务水平?就像客户满意度得分一样,您可以使用多个指标来衡量呼叫中心的生产力、资源利用率和时间管理。

如何开展有效的呼叫中心活动:权威指南

呼叫中心活动对任何组织都至关重要。小型企业可能有 2 名员工接听电话,而大型公司可能有多个办公室,每天有数百名座席处理电话。无论规模和复杂程度如何,创建和运行有效的呼叫中心活动都是管理呼叫中心运营的一种方式。 enter image description here 就整个公司而言,呼叫中心活动似乎没什么大不了的。但是,SparkleComm呼叫中心执行关键功能,包括:

  • 提供优质的客户服务
  • 通过产生潜在客户来提高销售额
  • 解决客户疑问以留住客户

通过使用交叉销售和追加销售策略最大限度地提高盈利能力 呼叫中心的策略可能类似于“专注于持续创新和改善客户体验”。虽然这作为使命宣言很有效,但很难以有意义的方式量化。持续是否意味着您每天都会改变流程?这可能不是一个好主意,因为随着事情的变化,您的代理将难以工作。你怎么知道任何改变都改善了客户体验?这就是呼叫中心活动可以派上用场的地方。

什么是呼叫中心活动?

呼叫中心活动是通过根据特定标准对呼叫进行细分来改善销售或客户服务的集体和专注的努力。它包括一系列针对特定类型呼叫的活动,例如特定区号的客户、对品牌表示兴趣的潜在潜在客户等。

让我们分解呼叫中心活动的定义,以了解它的含义以及它与常规呼叫中心运营的不同之处。

一个典型的活动包括呼叫中心的所有或大部分员工,尽管较大的办公室可能同时运行多个活动。经理需要使用某些资源(代理、呼叫脚本、客户信息等)来计划活动,并有一个特定的目标。一个活动将有一个结束日期和指标来衡量实现目标的进度。

呼叫中心活动与呼叫中心运营

SparkleComm呼叫中心活动不同于常规操作。

假设呼叫中心使用分机,因此座席可以正确重定向客户呼叫。这被认为是常规操作,而不是活动的一部分,因为它没有开始或结束日期。没有要达到或超过的目标,也没有办法衡量指标来查看进度。可能会监控一些呼叫以确保代理正确地转移呼叫,但除非出现问题(客户抱怨转移到错误的人/部门、转移过多或类似问题),否则不会审查该过程。

另一方面,活动需要具体的活动和目标才能有效,并且需要显示结果。

一个典型的活动可能是通过电话推销为产品产生潜在客户。它将有一个开始和结束日期,比如 3 个月。目标是每月产生 X 数量的潜在客户。呼叫中心经理将计划具体活动,例如使用冷呼叫脚本和通过冷呼叫列表联系潜在客户。每个月底,可能会召开一次会议,审查实现目标的进展情况,并在必要时进行更改。

为什么活动对呼叫中心很重要?

活动对于呼叫中心非常重要。原因之一是它可以让您衡量进度,并显示有效呼叫中心的重要性。虽然每个人都同意呼叫中心对于处理客户查询或提供技术支持是必要的,但经理们可能需要证明需要额外预算或获得新技术是合理的。成功活动的结果可帮助您向管理层展示呼叫中心的绩效。

另一个原因是它允许您根据不同的要求组织呼叫中心。SparkleComm呼叫中心是根据业务需求配置的,这意味着一个办公室可能有多个围绕不同目标组织的团队。有时,组织将呼叫中心管理外包给专业的第三方供应商。在这种情况下,一个呼叫中心可以为多个客户提供服务。SparkleComm呼叫中心活动允许经理有效地利用可用资源来实现目标。

最后,呼叫中心活动有助于优化个别座席的才能和技能,同时最大限度地提高盈利能力或改善客户体验。它提供了一组可见的目标,员工可以在到达那里时努力实现并获得奖励。

wav2letter++_最高效的语音识别系统

wav2letter++_最高效的语音识别系统

论文译文

外文原文题目:WAV2LETTER++: THE FASTEST OPEN-SOURCE SPEECH RECOGNITION SYSTEM

中文译文题目:WAV2LETTER++,最高效的开源语音识别系统

原文作者: Vineel Pratap, Awni Hannun, Qiantong Xu, Jeff Cai, Jacob Kahn, Gabriel Synnaeve, Vitaliy Liptchinsky, Ronan Collobert

所属单位:Facebook AI Research

译文作者:岳昕阳

所属单位:重庆劳格科技有限公司

原文发表于:Cornell University网站

https://arxiv.org/abs/1812.07625

版权所有 非授权谢绝转载    





摘 要

这篇论文将会介绍当前最高效的基于深度学习的语音识别架构——wav2letter++。wav2letter++完全由C++语言编写并使用了能最大化提升效率的ArrayFire张量库。本文将介绍wav2letter++系统的整体框架与设计并将其与其他现存常见的主要的开源语音识别系统相比较。比较后可以发现在一定情况下wav2letter++比其他已经经过优化的端到端语音识别神经网络训练速度快超过两倍以上。我们同样会展示在对一亿个参数的模型进行训练测试时,wav2letter++的训练次数最多线性扩展到了64GPU。高性能结构可以加快迭代速度,而迭代速度很多时候又是直接关乎研究与训练新的数据库或任务模型的成功率的重要参数。

关键词:语音识别,开源软件,端到端





1. 介绍

随着大众对于自动语音识别(automatic speech recognition,ASR)技术关注的不断加强,在众多开源软件社区中语音识别软件系统与工具包软件激增。其中包括Kaldi[1]、ESPNet[2]、OpenSeq2Seq[3]和Eesen[4]。经过过去十年的发展,这些框架已经从传统的基于隐马尔可夫模型(Hidden Markov Models,HMM)和高斯混合模型(Gaussian Mixture Models,GMM)发展到基于端到端的神经网络模型。许多当前的ASR工具包都不是基于声音单位(phonemes)的而是使用基于图形单位(graphemes)的端到端声学建模。本文章所介绍的ASR工具包也是如此。产生这样的转变主要有以下两方面原因:首先,端到端模型十分简单;其次,此模型与HMM/GMM系统之间原有的精确度差距正在急剧缩小。


C++是当前世界上第三广泛使用的编程语言,能够完全控制高性能任务关键型系统的所有资源。更重要的是,C++中所具有的静态数据类型可以在对大规模程序进行编译时捕捉所有协议不匹配错误(contract mismatches)。不仅如此,事实上几乎所有编程语言都可以轻松调用本地库(native libraries)。尽管在机器学习领域采用C++语言会遇到一定的困难,例如在主流框架里缺少经过完善定义的C++应用程序编程接口(API)以及在工作中C++几乎都被应用于关键性能组件方面而不是机器学习方面,由于常用语言的不同可能导致的学习成本增加等问题。但是随着机器学习代码库变得愈加庞大,在脚本语言与C++之间来回切换也变的愈发困难且容易出错。与此同时,随着现代C++的发展,只要有足够的库支持C++语言的编程速度和脚本语言的编程速度之间已经没有太大的差距。在本文中,我们将介绍第一款完全由C++语言开发的开源语音识别系统。 我们利用现代C++语言对机器学习系统进行的设计可以在不牺牲编程简易度的情况下保持软件的高效率与高可扩展性。在本工作中,我们主要将聚焦于例如训练时间、解码速度与可扩展性等ASR系统的技术方面。


接下来,我们将在第二节讨论wav2letter++的具体设计;在第三节大致讨论其他现存主要的开源系统;并在第四节中将这些系统与我们的系统进行比较。




2.设计

wav2letter++的设计主要需要满足三项需求。首先,工具包必须可以在包含数千小时语音数据的数据库中高效的训练模型。第二,必须能尽量简单地合并与表达新的网络结构和损失函数,尽可能简化其他代码操作。第三,从模型研究到模型部署的路径应该在保证研究的灵活性的基础上尽量做到简洁、直白并尽可能减少对新代码的需求。



2.1ArrayFire张量库

我们之所以采用ArrayFire作为张量操作的库主要是有以下几个原因:首先,ArrayFire是一种可以执行多种后端包括CUDA GPU后端和CPU后端的已经经过了高度优化的张量库。其次,ArrayFire使用即时代码生成技术(just-in-time code generation,也被称为惰性编译技术,lazy evaluation)来将数条简单的操作合并成一条内核调用,这可以加快内存带宽限制操作的执行速度并减少峰值内存的使用时间。另一个ArrayFire的重要特点是它具有简单的阵列构建与操作界面。与其他同样支持CUDA的C++张量库相比,ArrayFire界面不那么冗长且更少的依赖C++特性。

enter image description here

图1 wav2letter++库结构



2.2数据准备与特征提取

我们的特征提取支持多种音频文件格式(例如wav、flac.../mono、stereo/int、float)和数种特征类型,包括原始音频、线性可扩展功率谱、log-Mels(MFSC)和MFCC等。我们使用FFTW库来计算离散傅里叶变换。wav2letter++的数据加载过程是先进行动态特征计算,再进行网络评估,再加上完全端到端管道可以以单二进制文件运行,这让搜索替代特征更加简单,并使得本设计允许动态数据扩充,让模型部署变得更加简单。为了在训练模型时提高效率,我们采取并行异步的方式来加载和解码音频文件以及计算特征。对于我们已经尝试过的模型与批量大小来说,花费在数据加载上的时间是可以忽略不计的。



2.3模型

我们支持数种端到端模型。每个模型分别由“网络”和“标准”两部分组成。“网络”部分是只与输入有关的函数而“标准”部分是与输入和靶转录(target transcription)都有关的函数。与“网络”部分总是有参数不同,“标准”部分的函数并不一定有参数。这种抽象概念允许我们可以很轻松的利用相同的训练管道训练不同的模型。支持的标准包括基于神经网络连接的时序分类(Connectionist Temporal Classification,CTC)[7],原始wav2letter的AutoSegCriterion(ASG)[8],和拥有注意力算法的序列到序列模型(S2S)[9,10],其中CTC标准没有参数而ASG和S2S模型都包含可被学习的参数。与此同时,我们注意到由于像ASG和CTC这样的损失函数可以在C++中被高效使用,添加新的序列标准变得十分简单。我们同样兼容支持大量网络框架与激活函数,这里就不再一一列举。


我们用更高效的cuDNN算法扩展了核心ArrayFire CUDA后端,在cuDNN提供的众多程序中主要使用1D和2D卷积以及RNN程序。由于使用的网络库提供动态图型构造与自动微分功能,我们不用费多大劲就能进行类似新建层这样的基本操作。后文将举出一个例子展示如何建立与训练一个拥有二进制交叉熵损失的一层MLP(如图2),以此来论证C++界面的简易性。

enter image description here

图2 例:由二进制交叉熵和SGD训练的单隐藏层MLP,使用自动微分。



2.4训练与扩展

我们的训练管道为使用者使用不同的特征、框架与优化参数进行实验提供了最大程度的灵活性。训练程序可以在三种模式下运行:-train(平启动(flat-start)训练),continue(从检查点位置继续)和fork(例如转移学习)


此设计支持标准优化算法包括SGD和其他常用的基于梯度的优化器。我们通过数据并行同步SGD将wav2letter扩展为一个更大的数据库。使用英伟达多GPU通信库(NVIDIA Collective Communication Library,NCCL2)实现进程内通信。


为了尽可能减小进程间等待时间并提升单一进程工作效率,我们会在建立训练批次前对数据库中的数据按输入长度进行分类。



2.5解码

wav2letter++使用的解码器是经过数次提升效率优化的柱状搜索解码器,与文献[13]使用的相同,包含了来自语言模型与词语插入项的限制。解码器接口接收来自声学模型的输出与转换(如果相关)。我们同时为解码器设置了一个包含词语字典和语言模型的字典树。此解码器支持所有拥有解码器所需接口的语言模型,包括N元语言模型(n-gram LMs)和无状态参数语言模型(stateless parametric LM),并为N元语言模型提供基于KenLM的简易封装。




3. 相关工作

我们对其他常用开源语音识别系统做了一个简要概括,包括Kaldi[1],ESPNet[2]和OpenSeq2Seq[3]。卡迪语音识别工具包(The Kaldi Speech Recongnition Toolkit,Kaldi)目前是上述系统中出现时间最早的,它拥有一套独立式命令行工具包。Kaldi支持HMM/GMM与混合式基于HMM/NN的声学模型并包含基于电话的菜单(phone-based recips)。


端到端语音处理工具包(End-to-End Speech Processing Toolkit,ESPNet)与Kaldi之间联系很紧密,ESPNet将Kaldi用来进行特征提取与数据预处理。ESPNet一般将Chainer[15]或PyTorch[16]用作后端来训练语言模型,虽然主要用Python编写,但与Kaldi风格相同,高级工作流程采用实用脚本程序(bash scripts)编写。虽然这样便于系统组件的解耦,但同时也缺乏拥有静态类型的面向对象的编程语言所具有的类型安全、可靠性高和交互界面直观等优点。ESPNet具有同时拥有基于CTC的和基于注意力的解码译码器以及结合这两个标准的混合模型的特点。


OpenSeq2Seq与ESPNet类似,都具有基于CTC和拥有编码器解码器模型的特点,且都是用Python编写的,都使用TensorFlow作为后端而不使用PyTorch。若要处理高级工作流,OpenSeq2Seq同样依赖于调用Perl和Python脚本的实用脚本程序。OpenSeq2Seq系统的一个值得注意的特点是它支持混合精度训练。而且,ESPNet和OpenSeq2Seq支持文本到语音模型(Text-To-Speech,TTS)。


表1描述了这几个开源语音识别系统的具体情况。如表所示,wav2letter++是唯一一个完全使用C++编写的系统,它事实上可以很简单的和现存的用任何语言编写的应用程序整合到一起。由于它使用的C++语言具有静态变量且面向对象,所以它可以更好地适应大规模开发需求。在第四章中,我们可以看到它在与其他系统相对比时同样具有最大效率。与他形成对比的是类似Python这样的动态类型语言虽然可以提高原型设计的速度,但强制静态类型的缺失总是会妨碍大规模开发。 enter image description here

表1 主要开源语音识别系统




4.实验

在这一章我们将通过对比研究讨论ESPNet、Kaldi、OpenSeq2Seq和wav2letter++之间的表现差距,通过利用华尔街日报(WSJ)数据库中的大量词汇对自动语音识别系统进行工作评估。我们会测量训练中的平均历元时间以及平均语音解码延迟。来实验的机器硬件配置如下:每台机器配置装有八个NVIDIA Tesla V100 Tensor Core GPU的NVIDIA SXM2 模块和16GB内存,每个计算节点拥有两个Intel Xeon E5-2698 v4 CPU,总共40个核心,80个硬件线程,工作频率2.20GHz。所有机器通过100Gbps无线带宽网络进行连接。



4.1训练

我们通过扩展网络参数和增加GPU使用数量评估训练时间。我们考虑两种神经网络结构:循环结构网络,拥有三千万个参数;还有纯卷积模式,拥有一亿个参数。两种网络结构分别在图4的上下两幅图中做出了具体描述。


对于OpenSeq2Seq,我们同时考虑float32和混合精度float16训练。对于两种网络,我们使用40维log-mel滤波器组作为输入以及CTC作为标准(基于CPU的实现,CPU-based implementation)。


对于Kaldi,由于CTC训练标准在标准Kaldi菜单(recipes)中不可用,我们使用LF-MMI[19]标准。 所有模型都使用带动量(momentun)SGD进行训练。 我们使用的批次大小为每个GPU处理4条语音。每次运行限制每个GPU最多使用5个CPU核心。 图3可以提供关于训练管道主要组件的更多细节,图中展示单个GPU运行情况下在一个完整的历元时间内,对每个批次所消耗的时间进行的平均处理。


对于只有三千万个参数的更小的模型来说,就算是在单个GPU上运行wav2letter++也比第二优秀的系统快15%以上。需要注意的是由于我们使用的是8GPU设备,当我们需要进行16、32甚至64GPU实验的时候,需要引入多节点通信。但ESPNet并不支持多节点训练开箱即用(out-of-the-box)。我们通过使用PyTorch的DistributedDataParallel模式和NCCL2后端对它进行扩展。ESPNet依赖于对输入特征的预先计算,而wav2letter++和OpenSeq2Seq则由于对灵活性的需求而选择在程序运行过程中计算特征。在一些情况下,混合精度训练可以将OpenSeq2Seq的历元时间降低1.5倍以上,这项优化在未来也可以被运用在wav2letter++上。由于Kaldi的菜单在进行LF-MMI时无法同步SGD上传数据的梯度,导致每次历元花费的时间慢了20倍以上。(The Kaldi recipe for LF-MMI does not synchronize gradients for each SGD update; the per-epoch time is still more than 20x slower.)由于使用了不同的标准(LF-MMI)和优化算法导致难以进行比较,我们并没有把Kaldi包含进表4中。 enter image description here

图3 训练循环中主要步骤消耗毫秒数。



4.2解码

wav2letter++包含一个用C++实现的单通柱状搜索解码器(详见2.5节)。我们将此解码器与OpenSeq2Seq和ESPNet中可获得的其他柱状搜索解码器相比较。不把Kaldi引入比较主要是因为它内置了的基于WFST的解码器并不支持CTC解码。我们利用在LibriSpeech上通过Wave2Letter+训练的完全优化的OpenSeq2Seq模型产生完全相同的,经过预先计算的数据并传输给两个解码器,这样我们就可以得到在相同模型情况下的独立的实验结果数据。由于ESPNet并不支持N元语言模型解码,我们使用的4元LibriSpeech语言模型主要用来给OpenSeq2Seq与wav2letter++提供数据。在表2中,我们主要汇报了基于LibriSpeech dev-clean的单线程解码的解码时间与峰值内存使用,验证其误码率是否低于5%并记录每个框架最低可达到的误码率。我们对超参数进行了严格的调整这样报告就可以反映在报告误码率下最大可能达到的速度。最终结果显示,mav2letter++不仅比类似的解码器表现优秀一个数量级以上,还可以大量节约内存资源。

enter image description here

表2 基于LibriSpeech dev~clean的解码表现   enter image description here

图4 训练时间对比图。上方图是一个三千万参数RNN[12], 下方图是一个一亿参数CNN[13]。




5.结论

本论文主要介绍了wav2letter:一个用于开发端到端语音识别器的高速简单系统。其框架完全通过C++实现,这使得它不仅可以高效训练模型还可以进行实时解码。我们的初步实践与其他语音框架相比展现了极大的前景,而且wav2letter++可以在未来的进一步更新中持续优化。由于它简单且可扩展的界面,wav2letter++很适合成为端到端语音识别的快速研究平台。与此同时,我们依然保留了对基于Python的ASR系统进行优化的可能性,以使其缩小与wav2letter++的差距。




  .

参考文献

[1] Daniel Povey, Arnab Ghoshal, Gilles Boulianne, Lukas Burget, Ondrej Glembek, Nagendra Goel, Mirko Han- nemann, Petr Motlicek, Yanmin Qian, Petr Schwarz, et al., “The kaldi speech recognition toolkit,” in IEEE 2011 workshop on automatic speech recognition and understanding. IEEE Signal Processing Society, 2011, number EPFL-CONF-192584.

[2] Shinji Watanabe, Takaaki Hori, Shigeki Karita, Tomoki Hayashi, Jiro Nishitoba, Yuya Unno, Nelson En- rique Yalta Soplin, Jahn Heymann, Matthew Wiesner, Nanxin Chen, et al., “Espnet: End-to-end speech processing toolkit,” arXiv preprint arXiv:1804.00015, 2018

[3] Oleksii Kuchaiev, Boris Ginsburg, Igor Gitman, Vi- taly Lavrukhin, Carl Case, and Paulius Micikevicius, “Openseq2seq: extensible toolkit for distributed and mixed precision training of sequence-to-sequence mod- els,” arXiv preprint arXiv:1805.10387, 2018.

[4] Yajie Miao, Mohammad Gowayyed, and Florian Metze, “Eesen: End-to-end speech recognition using deep rnn models and wfst-based decoding,” in Automatic Speech Recognition and Understanding (ASRU), 2015 IEEE Workshop on. IEEE, 2015, pp. 167–174.

[5] James Malcolm, Pavan Yalamanchili, Chris McClana- han, Vishwanath Venugopalakrishnan, Krunal Patel, and John Melonakos, “Arrayfire: a gpu acceleration plat- form,” 2012.

[6] Matteo Frigo and Steven G. Johnson, “The design and implementation of FFTW3,” Proceedings of the IEEE, vol. 93, no. 2, pp. 216–231, 2005, Special issue on “Pro- gram Generation, Optimization, and Platform Adapta- tion”.

[7] Alex Graves, Santiago Ferna ́ndez, Faustino Gomez, and Ju ̈rgen Schmidhuber, “Connectionist temporal classifi- cation: labelling unsegmented sequence data with recur- rent neural networks,” in Proceedings of the 23rd inter- national conference on Machine learning. ACM, 2006, pp. 369–376.

[8] Ronan Collobert, Christian Puhrsch, and Gabriel Synnaeve, “Wav2letter: an end-to-end convnet- based speech recognition system,” CoRR, vol. abs/1609.03193, 2016.

[9] Dzmitry Bahdanau, Kyunghyun Cho, and Yoshua Ben- gio, “Neural machine translation by jointly learning to align and translate,” arXiv preprint arXiv:1409.0473, 2014.

[10] Jan K Chorowski, Dzmitry Bahdanau, Dmitriy Serdyuk, Kyunghyun Cho, and Yoshua Bengio, “Attention-based models for speech recognition,” in Advances in neural information processing systems, 2015, pp. 577–585.

[11] Sharan Chetlur, Cliff Woolley, Philippe Vandermersch, Jonathan Cohen, John Tran, Bryan Catanzaro, and Evan Shelhamer, “cudnn: Efficient primitives for deep learn- ing,” arXiv preprint arXiv:1410.0759, 2014.

[12] Awni Hannun, Carl Case, Jared Casper, Bryan Catan- zaro, Greg Diamos, Erich Elsen, Ryan Prenger, San- jeev Satheesh, Shubho Sengupta, Adam Coates, et al., “Deep speech: Scaling up end-to-end speech recogni- tion,” arXiv preprint arXiv:1412.5567, 2014.

[13] Vitaliy Liptchinsky, Gabriel Synnaeve, and Ronan Col- lobert, “Letter-based speech recognition with gated con- vnets,” CoRR, vol. abs/1712.09444, 2017.

[14] Kenneth Heafield, “Kenlm: Faster and smaller language model queries,” in Proceedings of the Sixth Workshop on Statistical Machine Translation. Association for Com- putational Linguistics, 2011, pp. 187–197.

[15] Seiya Tokui, Kenta Oono, Shohei Hido, and Justin Clay- ton, “Chainer: a next-generation open source frame- work for deep learning,” in Proceedings of workshop on machine learning systems (LearningSys) in the twenty- ninth annual conference on neural information process- ing systems (NIPS), 2015, vol. 5, pp. 1–6.

[16] Adam Paszke, Sam Gross, Soumith Chintala, Gregory Chanan, Edward Yang, Zachary DeVito, Zeming Lin, Alban Desmaison, Luca Antiga, and Adam Lerer, “Au- tomatic differentiation in pytorch,” 2017.

[17] Mart ́ın Abadi, Paul Barham, Jianmin Chen, Zhifeng Chen, Andy Davis, Jeffrey Dean, Matthieu Devin, San- jay Ghemawat, Geoffrey Irving, Michael Isard, et al., “Tensorflow: a system for large-scale machine learn- ing.,” in OSDI, 2016, vol. 16, pp. 265–283.

[18] Douglas B Paul and Janet M Baker, “The design for the wall street journal-based csr corpus,” in Proceedings of the workshop on Speech and Natural Language. Associ- ation for Computational Linguistics, 1992, pp. 357–362.

[19] Daniel Povey, Vijayaditya Peddinti, Daniel Galvez, Pe- gah Ghahremani, Vimal Manohar, Xingyu Na, Yim- ing Wang, and Sanjeev Khudanpur, “Purely sequence- trained neural networks for asr based on lattice-free mmi.,” in Interspeech, 2016, pp. 2751–2755.