低延迟实时ASR系统开发

低延迟实时自动语音识别系统的开发

摘要

在本研究中,开发了一种基于Kaldi自动语音识别工具包的实时、低延迟且模型可定制的自动语音识别系统,该系统无需任何互联网连接。所提出的自动语音识别系统包括语音活动检测模块和音频发射器作为前端语音处理,以及用于接收音频信号的解码器。该自动语音识别系统在语音识别准确率和语音处理速度方面进行了评估。结果表明,该自动语音识别系统在自发日语语料库测试集上实现了高语音识别准确率,并具有极低的延迟。

索引术语 —自动语音识别,低延迟,实时,独立式

一、引言

近年来,实时自动语音识别(ASR)服务已广泛应用于智能家居设备和在线会议工具等各种应用中。目前,诸如谷歌云语音转文本API(Google API)[1]、IBM Watson语音转文本云服务[2],以及Rev.ai语音转文本API [3]等实时ASR服务均已部署在云端。此外,通过提供的应用程序接口(API),我们可以方便地在各种应用中使用这些ASR服务。

这些云端服务已经实现了足够高的语音识别准确率和对输入语音的高速处理。而且,近期的研究主要集中在端到端语音识别上,例如ESPnet [4],其在自动语音识别系统方面取得了显著成果。然而,众所周知,与基于深度神经网络(DNN)‐隐马尔可夫模型(HMM)的ASR系统相比,端到端系统需要更多的数据才能实现高性能的语音识别。

木村等人[5]比较了使用谷歌API和全球广泛使用的自动语音识别工具包“Kaldi”[6],对日语语音的ASR性能。该研究证实,当声学模型和语言模型的训练环境与评估环境接近时,Kaldi系统实现了较高的语音识别准确率;而谷歌API在多种环境中也能实现一定的高识别准确率和处理速度。尽管从通用性角度来看谷歌API更具优势,但实验表明,在针对特定领域的声学模型和语言模型适配方面(例如特定领域的口语对话系统),Kaldi优于谷歌API。

在本研究中,我们报告了基于Kaldi工具包开发的用于日语的独立式、低延迟且具有相对较高准确率的实时自动语音识别系统的开发与评估。我们将我们的ASR系统与广泛使用的谷歌API进行了比较。我们的ASR系统在声学模型和语言模型以及识别词典的定制能力方面优于谷歌API。

示意图0

II. 实时语音识别系统

A. 系统架构

图1展示了所开发的自动语音识别系统的系统架构。该自动语音识别系统能够实时直接识别来自麦克风的语音输入,同时还具备通过文件输入和虚拟音频输入/输出设备接收计算机音频直接输入的功能。虚拟音频输入/输出设备使我们能够对来自各种在线会议和视频流媒体工具(如Zoom1和YouTube)输出的会议语音实现实时自动语音识别。输入的音频经过语音活动检测(VAD)处理后,仅将有语音的部分通过GStreamer框架[7]传输至自动语音识别解码器。

我们的ASR系统架构采用客户端‐服务器模型,但识别服务器(解码器)可以在互联网上的计算机或本地计算机上运行。客户端(前端)模块和解码器可以在Linux、macOS以及Windows 10的Windows Linux子系统上运行;因此,它可以在大多数计算机上作为独立系统工作。

示意图1

B. 解码器

使用GStreamer插件gst‐kaldi‐nnet2‐online [8]作为解码器。检测到的音频从客户端发送到GStreamer,音频被顺序转换为16 kHz的采样频率并输入解码器。当客户端的VAD检测到语句结束时,会向GStreamer发送流结束信号。随后解码完成,并确定最终的最优结果。此时,GStreamer以JSON格式将识别时间、每个词的置信度以及被识别音频的长度等信息返回给客户端,转录文本则显示在屏幕上。我们的系统在首次结果显示后并未停止录音和解码;考虑到讲座或会议等可能出现长段语音的使用场景,系统会同时显示前两个结果和最新结果。自动语音识别结果的显示方式可以通过前端代码轻松修改,例如,将所有结果堆叠在一个数组中进行显示。

C. 语音活动检测

我们的ASR系统使用了WebRTC VAD 2的Python绑定。我们的ASR系统以所选采样率将音频按1024个块进行录制。VAD使用录制音频块中最后的20毫秒语音帧来计算结果,判断为静音或语音。我们在客户端侧实现了VAD,以便在Unity等不同客户端侧实现中具有灵活性。

VAD用于判断是否发送录制的音频块;如果检测到静音,客户端侧将发送静音片段的音频,而不是录制的音频。如果服务器端接收到静音片段,则GStreamer解码器将保持静音状态,不会解码特定的音频块。该过程用于减少需要被解码为填充音的背景噪声数量。

我们引入一个timeout参数来统计VAD检测到静音的次数。该timeout参数可用于调整解码器的最终化速度,从而影响自动语音识别结果的性能差异。在本研究中,我们将timeout设为5,意味着如果服务器端检测到5个静音音频块,服务器端将发送EOS(流结束信号)。传递给解码器以完成自动语音识别结果,且timeout将重置为0。最后,作为一个选项,我们提供了一个基于matplotlib3的实时VAD和频谱图可视化功能,用于分析录制的语音(图2),这对于分析录制的语音和自动语音识别结果非常有用。

D. ASR模型与词典

声学模型是一种包含HMM和DNN的混合模型。该模型使用CSJ的所有语音数据(对话语音除外)、日本报纸文章语音数据库(JNAS)、高级JNAS(S‐JNAS)以及老年人朗读语音语料库进行训练。用于声学建模的语音数据总时长约为750小时。声学模型的训练遵循Kaldi工具包中的CSJ配方。

最后,我们获得了nnet3(TDNN,时间延迟神经网络)模型以及基于HMM的WFST与三元语言模型。

基于三元词组的语言模型是使用日本学术会议所有讲座和演讲的转录文本以及现代日语平衡语料库(BCCWJ)[14]进行训练的。在生成识别词典和训练语言模型之前,这些语料库中的文本句子通过形态分析器MeCab结合UniDic‐2.3.0[15]词典进行了分词处理。词典中收录的词汇数量约为16.4万。

III. 实验

A. 评估指标

我们基于以下几点评估了我们的语音识别系统:
- 在CSJ eval3测试集上的语音识别准确率(词错误率,WER),
- 实时因子(RTF)和延迟,以及
- 不同麦克风对词错误率的影响。

B. 实验条件

我们使用CSJ eval3测试集评估了我们的ASR系统。该测试集的自动语音识别是从语音文件进行的,并通过词错误率(WER)进行评估。我们还对同一测试集评估了谷歌API以进行比较。我们测量了我们的ASR

通过计算话语结束时间与识别结果确认时间之间的差值来衡量系统的延迟。由于我们无法了解谷歌API对录制语音的处理方式,因此无法将谷歌API自动语音识别系统的延迟与我们的自动语音识别系统进行比较。我们通过测量从向谷歌API云端服务发送音频文件到接收到自动语音识别结果所需的时间,来计算谷歌API的实时因子。我们的ASR系统的实时因子在与谷歌API相同的条件下进行测量。

RTF是自动语音识别处理时间与待识别的音频片段 y 时长之比。为了比较RTF,我们使用2017款MacBook Pro(MBP)和CSJ eval3测试集对两个自动语音识别系统进行了测试。RTF的计算采用以下公式1。

$$
RTF = \frac{time(ASR(y))}{length(y)}
\tag{1}
$$

准备了四种类型的麦克风:全向桌面麦克风、2017款MacBook Pro(MBP)内置麦克风、苹果公司(Apple Inc.)的AirPods Pro(带麦克风的耳机)以及ReSpeaker麦克风阵列v2.0(四麦克风阵列)。五名男性朗读了从日本学术会议(CSJ)学术讲座中选取的四段演讲,每段演讲均通过上述麦克风录制为WAVE文件。录制的语音由我们的ASR系统和谷歌API进行语音识别。我们研究了不同类型的麦克风对词错误率(WER)的影响。

C. 识别词语的归一化

由于我们的ASR系统识别出的词表示方式与谷歌API不同,因此在计算词错误率之前,我们对两个ASR系统的识别结果进行了如下归一化处理。
1) 将字母转换为小写字母
2) 将全角字符转换为半角字符
3) 将阿拉伯数字转换为汉字数字
4) 删除特殊符号
5) 删除填充词
6) 删除感叹词

D. 结果与讨论

表I显示了CSJ eval3测试集的词错误率和实时因子(延迟)结果。表I表明,我们的ASR系统在词错误率和实时因子方面均超过了谷歌API。这在一定程度上是由于声学模型和语言模型处于封闭环境中。然而,该结果表明,定制模型和识别词典显著提高了识别准确率。此外,在识别速度方面,实时因子优于谷歌API,因为我们的ASR系统可以独立运行,无需互联网连接。在语音结束后的0.5秒内即可确认识别结果。从感官上判断,其运行速度似乎远快于谷歌API。

表I CSJ EVAL3测试集上的词错误率和实时因子(延迟)评估。
谷歌API 我们的ASR
词错误率 [%] 28.16 6.45
RTF 0.324 0.167
延迟 [s] 0.436

表II还展示了使用四种麦克风录制的五名成年男性的词错误率。即使更换麦克风,谷歌API产生的词错误率仍然稳定;然而,我们的ASR系统由于麦克风环境的变化,得到的词错误率差异很大。谷歌的模型是通过在各种环境中录制的音频进行训练的,使模型对环境变化更具鲁棒性。因此,我们还需要使用在各种环境中录制的音频来训练声学模型。

表II 四种麦克风录制的五位说话人语句的词错误率。
麦克风类型 谷歌API 我们的ASR
桌面麦克风 17.65 10.78
MacBook Pro内置麦克风 11.76 9.80
AirPods Pro 14.71 19.61
Respeaker 12.75 15.69
平均值 14.22 13.97

第四节 结论

在本研究中,我们提出并评估了一种低延迟实时自动语音识别系统,并将其与谷歌API进行了比较。我们的系统比谷歌API具有更低的延迟,在封闭环境中,其识别准确率也超过了谷歌API。作为一个选项,我们提供了基于matplotlib的频谱图和语音活动检测(VAD)分析可视化功能。由于可视化过程可能引入额外的计算,自动语音识别系统的延迟可能会受到影响。

通过将可视化方式从matplotlib改为基于多线程PyQT5的可视化,可以提高可视化速度。未来,我们计划增加更多分析器,例如语音音频的抖动、基频、shimmer(振幅微扰)、平均词级振幅可视化等。这将有助于我们更深入地了解影响真实环境中自动语音识别系统性能的问题。

未来,我们计划改进自动语音识别系统的前端,使其能够适应噪声环境,并改进声学模型以提高其实际应用性。此外,我们还希望将延迟与其他更多的自动语音识别系统进行比较。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值