梁 力 莫晓毅 柯华强
(广汽研究院,广东 广州 511434)
语音识别是机器把获取的语音输入转换为文本输出的过程[1]。从早期的DTW(Dynamic TimeWarping)算法、高斯混合模型到后来的i-vector模型和DNN(Deep Neural Network)网络[2],语音识别技术发展至今,已经有五、六十年的历史。随着计算机科学和通信等学科的发展和成长,基于语音识别技术的设备日益增多[3],而识别的准确率和响应速率却难以衡量。本文旨在以语音识别技术为基础,结合Python开源框架,研究并搭建一个通用测试平台来。
为了实现对语音设备功能和性能的验证,测试平台需要具备对输入语音进行转化并对输出结果进行确认比对的能力。如图1所示,测试平台至少应由输入端、转换端、输出端和外部设备四部分组成。
输入端承担着对输入信息进行过滤的职责。输入的语音经过杂音过滤和噪声降低后到达转换端;输入的文字经过格式调整后到达转换端。
转换端的功能是把输入声音转化成文字或者把输入文字转换成语音并传送到输出端。转换选择是用户根据需求选择语音文字转换或文字语音转换。测试平台根据语料库和转换选择,确定期待输出的语音或文字,为输出结果的判定提供参考依据。
输出端根据用户的选择对输出的语音或文字进行判定。对于输出的语音,通过内置算法和用户主观判定是否符合预期的要求;对于输出的文字,通过查询语料库中的期待输出文字进行对比确认。
图1 测试平台架构
外部设备为平台的输入和输出提供辅助功能。喇叭用于播放设备发出的声音,麦克风用于输入音源的采集,接口用于设备的接入和设备间的信息交互,机柜箱用于放置硬件设备以及提供安静的测试环境。
声音输入有3种场景:用户的声音,录制好的人声文件,工具模拟的音频。由于采集环境的制约,输入的语音大多含有杂音,如果不加处理直接输入到转换端[4],会显著地影响语音识别的正确率。常用的语音降噪方法有:谱减法、滤波法、统计模型法、子空间法[5],本测试平台通过使用Python构建一个降噪系统对输入音频进行降噪[6]。
文字作为输入通常包含一些非法或冗余的字符,可以借助相关Python函数和正则运算法则实现对输入字符串的格式调整[7],程序段实现如下:
语料库是以EXCEL表或数据库的形式存储,可以通过人工配置的方式卸载或者更新。转换选择通过界面上一对互斥的按钮来实现,用户可以根据转换需求选择“文字转语音”或者“语音转文字”。
文字转语音和语音转文字的功能可通过引入服务器实现。转换端将用户提交的语音转换请求转发至服务器端;服务器端把处理好的结果发还给请求的转换端[8]。根据需求的不同,服务器可以部署在本地通过离线语音引擎实现[9],或者部署在云端通过云服务实现,本测试平台的服务器部署在云端。
输出语音的有无可通过软件直接判断,输出内容的正确性通过把语音转换成文字再与语料库中的期待输出进行比对。如果输出的是文字,则直接与语料库中的期待文字进行比对。
除了基本的硬件配置外,本测试平台还集成了一套基于Python开源框架的测试管理软件。该软件可以管理测试过程中的输入、转换和输出环节,并提供可视化的测试脚本编写界面和测试报告。
在语音识别的验证阶段,测试平台通过与待测设备连接交互,模拟真实的用户环境来验证待测设备是否满足期待的指标[10]。语音识别准确率和响应速率是语音识别中两个重要的指标[11]。
使用测试平台对设备A、B、C分别进行准确率和响应速率的测试,测试结果如表1所示。设备A的语音识别正确率最高,而设备C的语音识别响应速率最好。
基于语音识别技术的测试平台通过文字和语音之间的相互转换,实现在日常生活中对语音设备的功能正确性和性能稳定性的检测,为语音识别的验证工作提供了有效的支持。此外,语音输入标准不统一和背景噪声的困扰,从一定程度上仍然制约着语音识别技术的发展,将会成为未来测试平台研究的重点课题。
表1 语音识别功能和性能测试总结