浅谈语音测试方案(一)

简介:

现状

人与之间通过声音来直接沟通交流,人与机器之间的交流也渐渐脱离了传统的沟通模式,进入了语音交流时代。语音交流更是拉近了人和机器之间情感,现在的语音技术就是为了使机器更好的识别人声、并合成接近人类的声音以达到更好的交流。

目前国内研究语音相关的团队主要包括科研院所、语音技术公司以及互联网公司三部分:

  • 科研院所主要包括高校和科学院,比如科学院里有声学所、自动化所,高校里面研究比较多的清华、北大、西工大、科大、上海交大等,这些都是在语音圈里占有较高位置的老牌队伍。
  • 语音技术公司包括我们比较熟悉的科大讯飞、云知声、思必驰、极限元等。
  • 互联网公司包括BAT、搜狗等拥有强大的语音技术团队来支撑着其本身的很多业务。

测试方案

接触语音识别、语音合成项目的测试将近一年,认识还非常浅薄,大家有更好的想法或者技术方案可以多多沟通交流。下面分别从语音识别、语音合成谈谈一些我在项目中用的测试方案。

语音识别

3.png

语音识别的整体流程如上,站在测试角度思考,测试最简单的切入点就是最终生成文本内容的校验上。

目前的测试方案是事先标注一批语音的文本内容,与识别出的文本内容做对比,获取识别的准确率。但是这种准确率统计脱离了实际使用场景,比如车载模式下的噪音、与麦克风的距离都会影响识别准确率。

另外,从上图流程可以看出,识别准确率还会受声学模型、解码器的影响。语音信号经过特征提取得到声学特征,再通过声学特征训练得到声学模型,声学模型结合语言模型以及发音辞典构建声码器以后进行解码来输出文本,所以声学模型的训练结果一定是正确的吗?这也是测试的一个切入点。

语音合成

测试考虑从以下两方面入手:

  • 服务端的文本分析
  • 合成效果的评测

文本分析

语音合成的测试前期工作主要放在前端文本分析上,用python中的Snownlp及pypinyin将文本进行分分词及注音后输出注音及音调,服务端的前端模块输出注音及音调,将脚本输出的结果和服务端输出的结果做对比。这种方式可以对比出音调、多音字的差异。

from pypinyin import pinyin        #pinyin将汉字转为拼音。可以用于汉字注音、排序、检索
from snownlp import normal      #snownlp 转换成拼音,繁体转简体,提取文本关键词
from snownlp import seg
#分词
text_normal = normal.zh2hans(text_path)
sent_normal = normal.get_sentences(text_normal)
words = seg.seg(sent_normal.decode('utf-8'))

#匹配多音字
word = SnowNLP(words_list)
word =  word.sim(sim_word.decode('utf-8'))  
#注音
txt_zhuyin = pinyin(word, style=pypinyin.TONE3)

合成效果评测

成功效果评测的方式也有两种:一种方式众包评测,这种方式是靠人的主管感受去评测合成的语音是否流畅、自然、发音正确等,这种方式的结果更有说服力,但是人力成本较大。

另一种方式是对比语音的波形图,python中的wave模块支持将语音转为波形图,python中还有其他模块如eyeD3,PyAudio,Audacity等等可以处理语音暂且不介绍这些模块。先介绍wave中的一些方法:

  • getparams()
    获取wav文件的参数(以tuple形式输出),依次为(声道数,采样精度,采样率,帧数等)
  • readframes()
    得到每一帧的声音数据,返回的值是二进制数据,在python中用字符串表示二进制数据。

步骤如下:

  • 通过wav库获得night.wav的头文件中的信息,如采样率/声道数等等.
  • 提取出DATA区域的信息,用numpy将string格式数据转化为数组
  • 通过判定声道数将DATA区域数据进行处理(对数组矩阵进行转换)
  • 得到每个绘制点的时间(x坐标)
  • 用matplotlib库提供的方法绘制出波形图

对波形的信息进行对比分析,可以从中得到很多有效信息,但是这些信息是否能有效过滤掉不同的口音、情绪、呼吸等的差异,去提取自己想要的信息如音调差异、错别字的差异还在探索中。

相关实践学习
达摩院智能语音交互 - 声纹识别技术
声纹识别是基于每个发音人的发音器官构造不同,识别当前发音人的身份。按照任务具体分为两种: 声纹辨认:从说话人集合中判别出测试语音所属的说话人,为多选一的问题 声纹确认:判断测试语音是否由目标说话人所说,是二选一的问题(是或者不是) 按照应用具体分为两种: 文本相关:要求使用者重复指定的话语,通常包含与训练信息相同的文本(精度较高,适合当前应用模式) 文本无关:对使用者发音内容和语言没有要求,受信道环境影响比较大,精度不高 本课程主要介绍声纹识别的原型技术、系统架构及应用案例等。 讲师介绍: 郑斯奇,达摩院算法专家,毕业于美国哈佛大学,研究方向包括声纹识别、性别、年龄、语种识别等。致力于推动端侧声纹与个性化技术的研究和大规模应用。
相关文章
|
5月前
|
测试技术 UED
测试方案有点难?ChatGPT助你轻松编写测试方案!
使用ChatGPT辅助编写测试方案,以高级搜索功能为例,涉及关键词搜索、过滤条件、界面兼容性、错误处理等测试点。首先明确测试需求,如按作者、时间范围和分类搜索,产品形态为App和Web应用。然后,通过提示词逐步细化方案,包括App的移动设备适配、耗电量和内存占用测试。通过不断优化提示词,确保测试方案全面覆盖功能性能、用户体验及专项测试内容。
77 1
|
11天前
|
机器学习/深度学习 人工智能 监控
提升软件质量的关键路径:高效测试策略与实践在软件开发的宇宙中,每一行代码都如同星辰般璀璨,而将这些星辰编织成星系的过程,则依赖于严谨而高效的测试策略。本文将引领读者探索软件测试的奥秘,揭示如何通过精心设计的测试方案,不仅提升软件的性能与稳定性,还能加速产品上市的步伐,最终实现质量与效率的双重飞跃。
在软件工程的浩瀚星海中,测试不仅是发现缺陷的放大镜,更是保障软件质量的坚固防线。本文旨在探讨一种高效且创新的软件测试策略框架,它融合了传统方法的精髓与现代技术的突破,旨在为软件开发团队提供一套系统化、可执行性强的测试指引。我们将从测试规划的起点出发,沿着测试设计、执行、反馈再到持续优化的轨迹,逐步展开论述。每一步都强调实用性与前瞻性相结合,确保测试活动能够紧跟软件开发的步伐,及时适应变化,有效应对各种挑战。
|
11天前
|
机器学习/深度学习 存储 测试技术
从0到1:如何规划一套流量回放自动化测试方案
本文介绍了流量回放自动化测试的完整方法,从企业战略到交付的四个关键环节:Discovery(深度挖掘)、Define(定义目标)、Design(详细设计)和Delivery(交付与反馈)。通过这些步骤,帮助企业优化系统性能和稳定性,确保产品的高质量。
25 4
|
14天前
|
存储 NoSQL 大数据
大数据-51 Redis 高可用方案CAP-AP 主从复制 一主一从 全量和增量同步 哨兵模式 docker-compose测试
大数据-51 Redis 高可用方案CAP-AP 主从复制 一主一从 全量和增量同步 哨兵模式 docker-compose测试
25 3
|
2月前
|
测试技术 Linux 虚拟化
iOS自动化测试方案(五):保姆级VMware虚拟机安装MacOS
详细的VMware虚拟机安装macOS Big Sur的保姆级教程,包括下载VMware和macOS镜像、图解安装步骤和遇到问题时的解决方案,旨在帮助读者顺利搭建macOS虚拟机环境。
85 3
iOS自动化测试方案(五):保姆级VMware虚拟机安装MacOS
|
2月前
|
测试技术 开发工具 iOS开发
iOS自动化测试方案(三):WDA+iOS自动化测试解决方案
这篇文章是iOS自动化测试方案的第三部分,介绍了在没有MacOS系统条件下,如何使用WDA(WebDriverAgent)结合Python客户端库facebook-wda和tidevice工具,在Windows系统上实现iOS应用的自动化测试,包括环境准备、问题解决和扩展应用的详细步骤。
155 1
iOS自动化测试方案(三):WDA+iOS自动化测试解决方案
|
2月前
|
测试技术 数据安全/隐私保护 iOS开发
iOS自动化测试方案(四):保姆级搭建iOS自动化开发环境
iOS自动化测试方案的第四部分,涵盖了基础环境准备、iPhone虚拟机设置、MacOS虚拟机与iPhone真机的连接,以及扩展问题和代码示例,确保读者能够顺利完成环境搭建并进行iOS自动化测试。
148 0
iOS自动化测试方案(四):保姆级搭建iOS自动化开发环境
|
2月前
|
测试技术 虚拟化 iOS开发
iOS自动化测试方案(二):Xcode开发者工具构建WDA应用到iphone
这篇文章是iOS自动化测试方案的第二部分,详细介绍了在Xcode开发者工具中构建WebDriverAgent(WDA)应用到iPhone的全过程,包括环境准备、解决构建过程中可能遇到的错误,以及最终成功安装WDA到设备的方法。
137 0
iOS自动化测试方案(二):Xcode开发者工具构建WDA应用到iphone
|
2月前
|
测试技术 开发工具 虚拟化
iOS自动化测试方案(一):MacOS虚拟机保姆级安装Xcode教程
这篇文章提供了一份保姆级的教程,指导如何在MacOS虚拟机上安装Xcode,包括环境准备、基础软件安装以及USB扩展插件的使用,以实现iOS自动化测试方案的第一步。
65 0
iOS自动化测试方案(一):MacOS虚拟机保姆级安装Xcode教程
|
5月前
|
安全 测试技术 网络架构
【专栏】编写网络设备割接方案的七个步骤,包括明确割接目标、收集信息、制定计划、设计流程、风险评估、准备测试环境和编写文档。
【4月更文挑战第28天】本文介绍了编写网络设备割接方案的七个步骤,包括明确割接目标、收集信息、制定计划、设计流程、风险评估、准备测试环境和编写文档。通过实际案例分析,展示了如何成功完成割接,确保业务连续性和稳定性。遵循这些步骤,可提高割接成功率,为公司的网络性能和安全提供保障。
652 0