前言
本文主要介绍作者关于人工智能(AI)语音测试的各方面知识点和实战技术。
本书共分为9章,第1、2章详细介绍人工智能(AI)语音测试各种知识点和人工智能(AI)语音交互原理;第3、4章介绍人工智能(AI)语音产品需求和评价指标,以及其相对应的验收标准;第5章介绍如何准备语音数据,包括准备方案和具体方法;第6~9章介绍人工智能(AI)语音测试涉及的4大模块,既黑盒测试、自动化测试、算法测试、性能测试。
本书从理论概念到测试实践,从手工测试到自动化测试,内容翔实且丰富,其中的项目方案、范例和实战代码都是经过长时间的验证,可直接用于实际环境。
本书适合初中高级软件测试工程师,测试经理/总监、开发工程师、以及人工智能(AI)语音测试爱好者阅读。
本书详细目录如下:
目 录
第 1 章 人工智能语音测试介绍 1
1.1 语音简介 1
1.1.1 语音的基本概念 1
1.1.2 语音的产生原理 4
1.1.3 语音交互流程 5
1.2 人工智能简介 5
1.2.1 机器学习简介 6
1.2.2 深度学习简介 8
1.3 AI语音简介 9
1.3.1 AI语音技术简介 10
1.3.2 AI语音交互简介 10
1.4 AI语音测试简介 11
1.4.1 AI语音测试的价值 11
1.4.2 AI语音测试的应用 11
第 2 章 AI语音交互原理介绍 12
2.1 AI语音交互 12
2.2 语音采集 13
2.2.1 语音采集流程 13
2.2.2 影响语音采集水平的因素 15
2.3 语音识别技术 17
2.3.1 自动语音识别简介 17
2.3.2 近场语音识别 17
2.3.3 远场语音识别 18
2.3.4 语音识别流程 19
2.3.5 语音预处理(语音增强) 21
2.3.6 传统语音识别-编码(声学特征提取) 24
2.3.7 传统语音识别-解码 27
2.3.8 深度学习语音识别 31
2.4 语音唤醒技术 32
2.4.1 语音唤醒简介 32
2.4.2 语音唤醒流程 32
2.5 自然语言处理技术 33
2.5.1 自然语言处理简介 33
2.5.2 自然语言处理流程 33
2.5.3 自然语言理解 34
2.5.4 对话管理 44
2.5.5 自然语言生成 46
2.6 语音合成技术 49
2.6.1 语言合成简介 49
2.6.2 语音合成的流程 49
2.6.3 扬声器发声 51
第 3 章 AI语音产品需求和适用场景 52
3.1 AI语音产品需求 52
3.1.1 AI语音产品基础功能需求 52
3.1.2 AI语音产品特性功能需求 56
3.1.3 AI语音产品性能需求 62
3.2 AI语音产品分类和应用场景 62
3.2.1 封闭域识别产品 63
3.2.2 开放域识别产品 63
3.2.3 静态环境产品 66
3.2.4 动态环境产品 66
第 4 章 AI语音产品评价指标和行业标准 67
4.1 语音唤醒技术 67
4.1.1 评价指标 67
4.1.2 行业标准 68
4.2 语音识别技术 70
4.2.1 评价指标 70
4.2.2 行业标准 72
4.3 自然语言处理技术 74
4.3.1 评价指标 74
4.3.2 行业标准 75
4.4 语音合成技术 76
4.4.1 评价指标 76
4.4.2 行业标准 76
第 5 章 语音数据准备 78
5.1 语音音频文本准备 78
5.1.1 语音音频文本准备方式 78
5.1.2 语音音频文本准备方案 79
5.2 语音合成工具 80
5.2.1 【批量】语音合成工具使用说明 81
5.2.2 语音合成工具源码 83
5.3 噪音源音频文本准备 90
5.3.1 噪音源音频文本准备方式 90
5.3.2 噪音源音频文本准备方案 90
第 6 章 AI语音产品黑盒测试 91
6.1 AI语音产品黑盒测试简介 91
6.1.1 AI语音效果测试简介 91
6.1.2 AI语音功能测试简介 92
6.2 AI语音唤醒效果测试 92
6.2.1 唤醒率测试(静态环境产品) 92
6.2.2 打断唤醒率测试(静态环境产品) 96
6.2.3 误唤醒率测试(静态环境产品) 100
6.2.4 唤醒率测试(动态环境产品) 102
6.2.5 打断唤醒率测试(动态环境产品) 107
6.2.6 误唤醒率测试(动态环境产品) 111
6.3 AI语音识别效果测试 113
6.3.1 识别率测试(静态环境产品) 113
6.3.2 打断识别率测试(静态环境产品) 118
6.3.3 识别率测试(动态环境产品) 122
6.3.4 打断识别率测试(动态环境产品) 127
6.4 AI语音基础功能测试 132
6.4.1 语音唤醒功能测试 132
6.4.2 语音识别功能测试 134
6.4.3 自然语言处理功能测试 136
6.4.4 语音TTS合成功能测试 141
6.5 AI语音特性功能测试 141
6.5.1 全双工打断 141
6.5.2 跨场景交互 142
6.5.3 可见即可说 143
6.5.4 自定义唤醒词 144
6.5.5 上下文理解 146
6.5.6 非全时免唤醒 147
6.5.7 声源定位 149
6.5.8 声纹认证 150
6.5.9 快捷词免唤醒 151
6.5.10 自定义TTS播报 152
第 7 章 AI语音产品自动化测试 154
7.1 AI语音产品自动化测试简介 154
7.1.1 AI语音产品自动化测试价值 154
7.1.2 AI语音产品自动化测试应用 155
7.2 语音唤醒自动化测试 155
7.2.1 语音唤醒自动化工具框架 155
7.2.2 语音唤醒自动化测试方案 156
7.2.3 语音唤醒自动化工具说明 159
7.2.4 语音唤醒自动化工具操作实战 161
7.2.5 语音唤醒自动化工具源码 162
7.3 语音识别自动化测试 170
7.3.1 语音识别自动化工具框架 170
7.3.2 语音识别自动化测试方案 172
7.3.3 语音识别结果获取工具说明 176
7.3.4 语音识别结果分析工具说明 179
7.3.5 文本转MLF文件工具说明 188
7.3.6 语音识别自动化工具操作实战 189
7.3.7 语音识别自动化工具源码 193
7.4 自然语言处理自动化测试 205
7.4.1 自然语言处理自动化脚本框架 205
7.4.2 自然语言处理自动化测试方案 206
7.4.3 自然语言处理自动化脚本说明 209
7.4.4 自然语言处理自动化脚本操作实战 209
7.4.5 自然语言处理自动化工具源码 210
第 8 章 AI语音算法测试 220
8.1 AI语音算法测试简介 220
8.1.1 AI语音算法应用全流程 220
8.1.2 AI语音算法测试简介 222
8.1.3 AI语音算法测试目的 222
8.1.4 AI语音算法测试应用 222
8.2 算法模型测试种类 223
8.2.1 算法模型评估测试 223
8.2.2 算法模型鲁棒性测试 229
8.2.3 算法模型安全测试 229
8.3 AI语音算法测试方案 230
8.4 数据集简介 233
8.4.1 数据集搭建 233
8.4.2 数据集划分 235
8.4.3 数据标注 238
8.4.4 测试集设计 239
8.5 AI语音算法测试操作实战 241
8.5.1 算法模型评估测试实战 242
8.5.2 算法模型鲁棒性测试 245
8.6 AI语音算法测试源码 245
第 9 章 AI语音性能测试 248
9.1 AI语音性能测试简介 248
9.2 AI语音性能测试目的 248
9.3 AI语音应用性能测试 249
9.3.1 CPU占用 249
9.3.2 内存占用 251
9.3.3 响应时间 253
9.4 NLP接口性能测试 255
9.4.1 NLP接口性能测试简介 256
9.4.2 NLP接口性能测试术语解释 256
9.4.3 NLP接口测试方案 256
总结
如果大家对人工智能(AI)测试有兴趣,欢迎大家加本人微信:WZhang6212;QQ群:725171929。


很好奇,就使用rubyonrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提
我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当
我有一个围绕一些对象的包装类,我想将这些对象用作散列中的键。包装对象和解包装对象应映射到相同的键。一个简单的例子是这样的:classAattr_reader:xdefinitialize(inner)@inner=innerenddefx;@inner.x;enddef==(other)@inner.x==other.xendenda=A.new(o)#oisjustanyobjectthatallowso.xb=A.new(o)h={a=>5}ph[a]#5ph[b]#nil,shouldbe5ph[o]#nil,shouldbe5我试过==、===、eq?并散列所有无济于事。
我有一些Ruby代码,如下所示:Something.createdo|x|x.foo=barend我想编写一个测试,它使用double代替block参数x,这样我就可以调用:x_double.should_receive(:foo).with("whatever").这可能吗? 最佳答案 specify'something'dox=doublex.should_receive(:foo=).with("whatever")Something.should_receive(:create).and_yield(x)#callthere
Sinatra新手;我正在运行一些rspec测试,但在日志中收到了一堆不需要的噪音。如何消除日志中过多的噪音?我仔细检查了环境是否设置为:test,这意味着记录器级别应设置为WARN而不是DEBUG。spec_helper:require"./app"require"sinatra"require"rspec"require"rack/test"require"database_cleaner"require"factory_girl"set:environment,:testFactoryGirl.definition_file_paths=%w{./factories./test/
我遵循MichaelHartl的“RubyonRails教程:学习Web开发”,并创建了检查用户名和电子邮件长度有效性的测试(名称最多50个字符,电子邮件最多255个字符)。test/helpers/application_helper_test.rb的内容是:require'test_helper'classApplicationHelperTest在运行bundleexecraketest时,所有测试都通过了,但我看到以下消息在最后被标记为错误:ERROR["test_full_title_helper",ApplicationHelperTest,1.820016791]test
我已经构建了一些serverspec代码来在多个主机上运行一组测试。问题是当任何测试失败时,测试会在当前主机停止。即使测试失败,我也希望它继续在所有主机上运行。Rakefile:namespace:specdotask:all=>hosts.map{|h|'spec:'+h.split('.')[0]}hosts.eachdo|host|begindesc"Runserverspecto#{host}"RSpec::Core::RakeTask.new(host)do|t|ENV['TARGET_HOST']=hostt.pattern="spec/cfengine3/*_spec.r
我在app/helpers/sessions_helper.rb中有一个帮助程序文件,其中包含一个方法my_preference,它返回当前登录用户的首选项。我想在集成测试中访问该方法。例如,这样我就可以在测试中使用getuser_path(my_preference)。在其他帖子中,我读到这可以通过在测试文件中包含requiresessions_helper来实现,但我仍然收到错误NameError:undefinedlocalvariableormethod'my_preference'.我做错了什么?require'test_helper'require'sessions_hel
只是想确保我理解了事情。据我目前收集到的信息,Cucumber只是一个“包装器”,或者是一种通过将事物分类为功能和步骤来组织测试的好方法,其中实际的单元测试处于步骤阶段。它允许您根据事物的工作方式组织您的测试。对吗? 最佳答案 有点。它是一种组织测试的方式,但不仅如此。它的行为就像最初的Rails集成测试一样,但更易于使用。这里最大的好处是您的session在整个Scenario中保持透明。关于Cucumber的另一件事是您(应该)从使用您的代码的浏览器或客户端的角度进行测试。如果您愿意,您可以使用步骤来构建对象和设置状态,但通常您
我有:When/^(?:|I)follow"([^"]*)"(?:within"([^"]*)")?$/do|link,selector|with_scope(selector)doclick_link(link)endend我打电话的地方:Background:GivenIamanexistingadminuserWhenIfollow"CLIENTS"我的HTML是这样的:CLIENTS我一直收到这个错误:.F-.F--U-----U(::)failedsteps(::)nolinkwithtitle,idortext'CLIENTS'found(Capybara::Element