当前位置: 首页 > news >正文

语音识别功能测试:90%问题,可以通过技术解决

现在市面上的智能电子产品千千万,为了达到人们使用更加方便的目的,很多智能产品都开发了语音识别功能,用来语音唤醒进行交互;另外,各大公司也开发出来了各种智能语音机器人,比如小米公司的“小爱”,百度公司的“小度”,三星公司的“bixby”,苹果的“siri”等等。这些语音识别的功能,提高人们使用电子的产品的体验,但是作为一名测试员,给你一款语音识别产品,要怎么进行测试呢?

接下来,我就以小米手机为例,给大家介绍小米手机语音识别如何测试。

小米语音识别功能如何进行测试?

要知道语音识别功能如何测试,我们先了解智能产品语音交互流程:

如果你想学习自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386   

【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)_哔哩哔哩_bilibiliicon-default.png?t=N7T8https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337.search-card.all.click所以,要进行测试的话,我们需要从以下几个维度来准备测试点:

01、基础功能测试:

1、声纹的录入:

语音唤醒,为了确保每个人的声音、每个人在不同场景下的声音都能成功语音唤醒,测试一定要有各种不同的声纹来进行测试。

所以,就需要录入各种不同的声纹,来丰富测试场景的覆盖;

2、语音唤醒:

正常唤醒:使用正常的声纹进行语音唤醒,检查可以成功;

异常唤醒:使用异常的声音,比如视频/录音进行唤醒,音乐声进行唤醒,确保不会有误唤醒。

3、唤醒后的功能:

a、语音找设备:可以唤醒设备,比如手机,通过语音找到设备。

b、音量调节:可以通过语音对设备进行音量调节

c、连续对话:唤醒设备后,可以与其进行持续的语音对话,功能正常。

d、指令识别:唤醒后,可以下发指令比如播放音乐,查询天气,拨打电话、定闹钟等,检查指令可以正常被执行。

 4、功能冲突交互测试

a、中断测试:语音识别过程中,有中断干扰,比如手机唤醒的时候有电话中断;有闹钟中断、低电量中断等,确保这些中断能被正常处理,不会造成异常;

b、麦克风冲突:如果麦克风被占用了,测试是否能被唤醒;

5、多用户场景

因为用户使用语音识别的场景非常多,测试很难进行完全的覆盖。所以,我们需要通过分析用户的主流使用场景,来覆盖主要的场景

通过一些数据的采集,发现用户使用的场景屏幕分布如下:

调查结果发现,用户使用语音功能主要覆盖以下场景:

 所以测试就主要优先去覆盖这些用户场景,其他的场景用例优先级可以逐步降低,调整测试权重,保证用户主流场景的稳定性和准确性。

02、UI 测试

语音唤醒的有 UI 界面需要进行 UI 测试。

比如手机的语音唤醒功能,需要进行 UI 界面的检查,保持 UI 的友好型和美观性;

03、兼容性测试

1,第三方应用的兼容性测试

如果设备里有安装其他的应用,比如手机里的其他应用,是否可以通过语音识别唤醒后进行指定的动作操作;第三方应用兼容性需要保证;

2,外界设备兼容

a、三段式耳机接入

b、四段式耳机接入

c、type-c 数字耳机接入

d、蓝牙耳机接入

通过接入这些第三方的耳机设备,可以进行语音识别并且功能正常。

04、自动化语音识别测试

以上都是通过手工进行测试的,要进行一个比较完整的语音识别覆盖,至少需要以下配置:

测试人数:10/20 人(男女各一半)、

测试次数:每个场景 50 次

测试环境:办公室、会议室

测试场景:亮屏唤醒、灭屏唤醒、手机播放音乐唤醒、声纹误唤醒、基本语句识别率

但是手工测试是有不可忽视的一些严重缺陷的:

1、测试手法不统一:不同的距离和不同的角度都会导致识别结果不一样。

2、测试过程中人员声音波动大

同一算法,同一产品,在测试人员不变,场景一致的情况下,多轮测试的数据差异大;

由此可见,手工测试耗时耗力、测试数据参考价值低。所以,语音识别测试也可以进行一些自动化测试。

05、自动化测试的关键点

1、实现半自动化语音测试

因为手工测试就是没有办法提供那么多人进行不同语料的测试,所以需要实现语料自动合成和模拟。可以采用 python+pyaudio 开发 + 音箱模拟人声,来对语音进行识别测试。

而且通过增加语料量级(至少 40 组声纹),降低唤醒/识别频次;增加不同的噪音环境,不同噪音 + 不同距离,模拟用户真实环境。

这样,就可以覆盖更多的不同的语料以及场景,大大提高识别的正确率。

2、语料自动化播放 + 自动化检测

现在有了语料,但是需要手动播放的话,工作量依然很大,所以需要实现语料自动播放和自动化监测。

3、增加噪声播放系统 + 滑轨控制系统

因为用户的使用场景往往有很多的噪音,如果测试不模拟这种噪音环境,是没有办法真正还原用户场景的。所以,需要设置一些噪音源,可以自动化增加噪音,并可以调整距离。

如下图,就是小米公司的专为为测试语言识别造的混响室,以及自动化调节人头系统

相关文章:

语音识别功能测试:90%问题,可以通过技术解决

现在市面上的智能电子产品千千万,为了达到人们使用更加方便的目的,很多智能产品都开发了语音识别功能,用来语音唤醒进行交互;另外,各大公司也开发出来了各种智能语音机器人,比如小米公司的“小爱”&#xf…...

【Go自学版】01-基础

// 变量 var a, b, c 8, 2.3, "hello" var d float64; e : 6var A []int; var B [10]int; C : [10]int{1, 2, 3, 4} for i : 0; i < len(B); i {} for _, value : range C {} D make([]int, 3) // len 4, cap 10, 扩容方式 cap*2 E : make([]int, 4, 10) E …...

软文开头怎么写才能拿捏用户?媒介盒子为您解答

软文标题是吸引用户点击的关键因素&#xff0c;那软文开头就是决定用户能否读下去的主要因素&#xff0c;很多运营er在写文案时经常会面临的情况之一就是好不容易想到一个标题&#xff0c;点击率不错&#xff0c;但是开头不行用户一看开头&#xff0c;跑了&#xff01;如果不知…...

C语言算法与数据结构,旅游景区地图求最短路径

背景&#xff1a; 本次作业要求完成一个编程项目。请虚构一张旅游景区地图&#xff0c;景区地图包括景点&#xff08;结点&#xff09;和道路&#xff08;边&#xff09;&#xff1a;地图上用字母标注出一些点&#xff0c;表示景点&#xff08;比如&#xff0c;以点 A、B、C、…...

测试:SSE VS WebSocket

SSE&#xff08;Server-Sent Events&#xff09; SSE&#xff08;Server-Sent Events&#xff09;接口是一种实现服务器到客户端单向实时通信的技术。通过SSE&#xff0c;服务器可以主动向客户端推送数据&#xff0c;而不需要客户端不断地向服务器请求数据。这种技术特别适合于…...

Linux+Moba+虚拟机

软件&#xff1a; VMware Workstation ProMobaXterm 简介 是一款由VMware公司开发的强大的虚拟机软件。它可以在单台物理计算机上创建、运行和管理多个虚拟机&#xff0c;每个虚拟机都可以独立运行不同的操作系统和应用程序。 功能&#xff1a; 虚拟化&#xff1a;能…...

快手数仓面试题附答案

题目 1 讲一下你门公司的大数据项目架构&#xff1f;2 你在工作中都负责哪一部分3 spark提交一个程序的整体执行流程4 spark常用算子列几个&#xff0c;6到8个吧5 transformation跟action算子的区别6 map和flatmap算子的区别7 自定义udf&#xff0c;udtf&#xff0c;udaf讲一下…...

如何在Go中编写包

包由位于同一目录中的Go文件组成,这些文件在开头具有相同的package语句。你可以从包中包含额外的功能,使程序更复杂。有些包可以通过Go标准库获得,因此与Go安装一起安装。其他可以使用Go的go get命令安装。您还可以通过使用必要的package语句在要共享代码的相同目录中创建Go…...

JVM类加载全过程

Java虚拟机类加载的全过程&#xff0c;即加载&#xff0c;验证&#xff0c;准备&#xff0c;解析&#xff0c;初始化 一、加载 加载 是 类加载过程中的一个阶段&#xff0c; 有以下三部分组成 1&#xff09;通过一个类的全限定名来获取定义此类的二进制流 2&#xff09;将这…...

Uniapp安卓原生插件开发Demo

文章目录 前言一、安装开发工具二、导入uni插件原生项目三、开发Module四、开发Component五、合并原生代码到uniapp项目中总结 前言 当HBuilderX中提供的能力无法满足App功能需求&#xff0c;需要通过使用Andorid/iOS原生开发实现时&#xff0c;可使用App离线SDK开发原生插件来…...

Axure的安装与基本使用

目录 一.Axure是什么 二.Axure安装 2.1 一键式安装 2.2 汉化 2.3 授权登录 三.Axure的界面介绍及基本使用 3.1 菜单栏的使用 3.2 工具栏的使用 3.3 页面概要的使用及组件的使用 3.4 组件的样式设计 一.Axure是什么 Axure是一个流行的交互式原型设计工具&#xff0c;一般是…...

分布式锁实现方案 - Lock4j 使用

一、Lock4j 分布式锁工具 你是不是在使用分布式锁的时候&#xff0c;还在自己用 AOP 封装框架&#xff1f;那么 Lock4j 你可以考虑一下。 Lock4j 是一个分布式锁组件&#xff0c;其提供了多种不同的支持以满足不同性能和环境的需求。 立志打造一个简单但富有内涵的分布式锁组…...

[虚拟机]使用VM打开虚拟机电脑重启解决方案。

问题&#xff1a;打开虚拟机点击启动后&#xff0c;电脑会自动重启。&#xff08;WINDOWS10 20版本&#xff09; 解决步骤&#xff1a; 1、对Windows功能进行操作。 上图三个启用。 上图一个取消。 再次打开后&#xff0c;不报警&#xff0c;显示下图问题&#xff1a; 继续解…...

Linux 详细介绍strace命令

system call(系统调用)是程序向内核请求服务的一种编程方式&#xff0c;strace是一个功能强大的工具&#xff0c;可以跟踪用户进程和 Linux 内核之间的交互。 要了解操作系统如何工作&#xff0c;首先需要了解系统调用如何工作。操作系统的主要功能之一是为用户程序提供了一个…...

【知识分享】__RS485-嵌入式常用的通信协议

目录 前言 一、RS485简介 什么是串口 什么是串行通信 什么是并行通信 二、接口原理 1. 连接方式 2. 差分信号 三、485通讯接口的优势 1. 接口电平低&#xff0c; 不易损坏芯片。 2. 传输速率高 3. 抗干扰能力强 4. 传输距离远&#xff0c;支持节点多。 四、常见…...

Qt生成动态链接库并使用动态链接库

项目结构 整个工程由一个主程序构成和一个模块构成(dll)。整个工程的结构目录如下 Define.priMyProject.proMyProject.pro.user ---bin ---MainProgrammain.cppMainProgram.proMainProgram.pro.userwidget.cppwidget.hwidget.ui ---MathDllMathDll.proMathDll.pro.userMyMath.…...

E4990A 阻抗分析仪,20 Hz 至 10/20/30/50/120 MHz

01 E4990A 阻抗分析仪 20 Hz 至 10/20/30/50/120 MHz 产品综述&#xff1a; E4990A 阻抗分析仪具有 20 Hz 至 120 MHz 的频率范围&#xff0c;可在宽阻抗范围内提供出色的 0.045%&#xff08;典型值&#xff09;基本准确度&#xff0c;并内置 40 V 直流偏置源&#xff0c;适…...

k8s volumes and data

Overview 传统上&#xff0c;容器引擎(Container Engine)不提供比容器寿命更长的存储。由于容器被认为是瞬态(transient)的&#xff0c;这可能会导致数据丢失或复杂的外部存储选项。Kubernetes卷共享 Pod 生命周期&#xff0c;而不是其中的容器。如果容器终止&#xff0c;数据…...

万宾科技智能水环境综合治理监测系统效果

水环境综合治理是一项旨在全面改善水环境质量的系统工程。它以水体为对象&#xff0c;综合考虑各种因素&#xff0c;通过科学规划和技术手段&#xff0c;解决水环境污染、生态退化等问题&#xff0c;核心理念是“统一规划、分步实施&#xff1b;标本兼治&#xff0c;重在治本&a…...

掌控安全 暖冬杯 CTF Writeup By AheadSec

本来结束时发到了学校AheadSec的群里面了的&#xff0c;觉得这比赛没啥好外发WP的&#xff0c;但是有些师傅来问了&#xff0c;所以还是发一下吧。 文章目录 Web签到&#xff1a;又一个计算题计算器PHP反序列化又一个PHP反序列化 Misc这是邹节伦的桌面背景图什么鬼&#xff1f;…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;Ingress是一个API对象&#xff0c;它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress&#xff0c;你可…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络&#xff0c;将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具&#xff0c;支持 Chrome、Firefox、Safari 等主流浏览器&#xff0c;提供多语言 API&#xff08;Python、JavaScript、Java、.NET&#xff09;。它的特点包括&a…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 &#xff08;1&#xff09;设置网关 打开VMware虚拟机&#xff0c;点击编辑…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

前端开发面试题总结-JavaScript篇(一)

文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包&#xff08;Closure&#xff09;&#xff1f;闭包有什么应用场景和潜在问题&#xff1f;2.解释 JavaScript 的作用域链&#xff08;Scope Chain&#xff09; 二、原型与继承3.原型链是什么&#xff1f;如何实现继承&a…...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容&#xff08;一&#xff09;CDN 基础概念1. 定义2. 组成部分 &#xff08;二&#xff09;CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 &#xff08;三&#xff09;CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...

代码规范和架构【立芯理论一】(2025.06.08)

1、代码规范的目标 代码简洁精炼、美观&#xff0c;可持续性好高效率高复用&#xff0c;可移植性好高内聚&#xff0c;低耦合没有冗余规范性&#xff0c;代码有规可循&#xff0c;可以看出自己当时的思考过程特殊排版&#xff0c;特殊语法&#xff0c;特殊指令&#xff0c;必须…...

redis和redission的区别

Redis 和 Redisson 是两个密切相关但又本质不同的技术&#xff0c;它们扮演着完全不同的角色&#xff1a; Redis: 内存数据库/数据结构存储 本质&#xff1a; 它是一个开源的、高性能的、基于内存的 键值存储数据库。它也可以将数据持久化到磁盘。 核心功能&#xff1a; 提供丰…...

ArcGIS Pro+ArcGIS给你的地图加上北回归线!

今天来看ArcGIS Pro和ArcGIS中如何给制作的中国地图或者其他大范围地图加上北回归线。 我们将在ArcGIS Pro和ArcGIS中一同介绍。 1 ArcGIS Pro中设置北回归线 1、在ArcGIS Pro中初步设置好经纬格网等&#xff0c;设置经线、纬线都以10间隔显示。 2、需要插入背会归线&#xf…...