1. 
	介绍
1.1 
	概述
本文档主要介绍产品的语音自检功能。
语音自检即对设备的喇叭和麦克风进行检测,即回声自检;其原理为设备的喇叭放音, 麦克风收音,以此来检测设备的喇叭和麦克风是否正常。常用于远距离检测设备喇叭和麦克风是否正常。下面将对行业设备如何进行语音自检做详细介绍。
1.2 
	适用型号
i12、i11、i16V、i18S、i20S、i30、i32V、i33V、i16SV、i10SV、PA3、PA2S。
1.3 
	语音自检如何工作
设备在喇叭进行放音,例如播放一段音频,然后在麦克风收音,并检测看收到了多少百分比的音频;如果超过一定的阈值,就判定为成功;如果小于一定的阈值,判定为失败。原理图如下图 1 所示:

                                                                                                       图 1 语音自检原理图
1.4 
	语音自检使用场景
语音自检常用于远距离时候设备巡检,为节省时间成本,提高检测效率,当出现广播无声音或广播声音突然中断时,可通过在控制室远距离对设备进行自检。
1.5 
	前提准备工具

                                                                                                   图 2 语音自检场景图
①对讲系列产品一台(此处以 i12 为例),PoE 交换机一台(或者 DC 直流电源),科能服务器一台,将设备接到交换机下。
②调试电脑一台,服务器一台,并将电脑接到交换机下,保证电脑跟设备之间的网络是互相连通的。
1.6 
	设备与电脑连接示意图
①将 i12 连接交换机,服务器连接交换机,并将电脑连接在与设备同一个交换机下, 保证电脑跟交换机之间的网络互相连通,连接示意图如图 3 所示。

                                                      图 3 设备与电脑连接示意图
2. 
	操作指南
实现回声自检有不同的方式,下面将对每种方式做详细介绍。
2.1 
	Active URI 方式
Active URI 是由远端控制台发起 HTTP Get 请求,设备内置的 HTTP Server 来解析指令和响应该请求,以达到远端控制设备的目标。
(1)自检的格式:http://设备 ip/cgi-bin/ConfigManApp.com?key=ECHO_TEST;
①设备 ip:待检测设备的 IP 地址,此处以 172.18.8.15 为例;
②返回结果:当设备喇叭与 mic 正常接入的时候,检测结果为 success;若 spk 或 mic
未接或损坏,则返回 Failure;
(2)举例:在浏览器输入 http://172.18.8.15/cgi-bin/ConfigManApp.com?key=ECHO_TE ST,当设备喇叭与 mic 正常接入的时候,检测结果为 success,如下图 4 所示。

                                                                                                                                               图 4 Active URI  语音自检示意图
2.2 
	HTTP API 方式
HTTP API 是一个应用程序接口,用于与第三方应用程序或管理系统集成。设备是HTTP 服务器,在 URL http://ip/xmlservice 上提供HTTP API 服务。第三方应用程序是 HTTP 客户端,向URL 发送 HTTP post 请求,其内容以 XML 格式封装。
HTTP API 的请求格式如下:
(1)Client -> Server 请求:
<?xml version="1.0" encoding="UTF-8" ?>
<FanvilPhoneExecute beep=”yes” >
<ExecuteItem>URI="cmd:echo_test"</ExecuteItem>
</FanvilPhoneExecute>
cmd:audio_play:表示请求的命令为回声自检;
(2)Server -> Client 响应:
<?xml version="1.0" encoding="UTF-8"?>
<FanvilPhoneExecute>
<ExecuteItem>URI="cmd:echo_test"</ExecuteItem>
<RetCode>0</RetCode>
<info>
<![CDATA[success]]>
</info>
</FanvilPhoneExecute>
(3)返回结果:当设备喇叭与 mic 正常接入的时候,检测结果为 success;若 spk 或
mic 未接或损坏,则返回Failure;
(4)举例:可使用 Postman 或ApiPost 进行测试,请求为POST 请求,路径:http://设备 IP/xmlservice,并将客户端向服务端发送的请求输入正确后,点击“Send”,可成功发送请求并返回检测结果,如下图 5 所示。

                                                                                                                                                   图 5 HTTP API 语音自检示意图
2.3 
	Time Plan 方式
可在时间计划处添加语音自检项,在设置的时间段/时间点设备会进行自检,并将结果通过Action RUL 上报。
(1)登录进设备 web 界面,在“
对讲设置”---“时间计划”---“时间计划规则”处添加时间计划,如下图 6 所示:
①执行类型:选择“
语音自检”;
②执行时间:选择对应的时间段,即在该时间段内设备会执行自检。

                                                                                                                                 图 6 Time Plan 语音自检示意图
(2)添加成功后,在
“时间计划”处会新增一条时间计划,到该时间后,设备即会进行自检;
2.4 
	SIP Message 方式
SIP Message 方式为在公网环境下,通过服务器发送 Message Active URI 指令,设备针对 Message 请求回复 200 OK。设备发送 Message Response 将结果上报平台。平台针对Message Response 请求回复 200 OK。
(1)设备在服务器上注册账号。
(2)在服务器中建立自检任务,此处以科能服务器为例,登录科能服务器web 界面, 选择“自检任务”---“添加”,添加自检任务即可。
(3)添加完后选中任务,点击执行,若设备 spk 和 mic 连接正常,即设备执行成功; 若 spk 或 mic 未接或损坏,则执行异常,并在服务器界面返回异常状态;或可点击服务器web 界面“自检结果”,查看设备的自检结果即可;

                                                                                                                                              图 7 SIP Message 语音自检示意图
(4)也可通过在设备抓包查看自检是否成功或失败,在开始自检前,进入设备web 界面,点击
“系统”---“辅助工具”---“网络报文撷取”,点击“
开始”。

                                                                                                                                              图 8 设备抓包示意图
自检结束后,在设备 web 界面点击“
结束”;使用 wireshark 打开数据包,过滤“
sip”字段,在 MESSAGE 消息中可看到“
Success”字段,表示自检成功;若显示
“Fail”或“Failure” 则自检失败;

                                                                                                                                             图 9 抓包查看自检结果示意图
3. 
	语音自检失败如何处理
在实际使用中,用户可能会遇上语音自检失败的问题,这可能是各种原因引起,可经过排查确认,详细如下:
(1)检查连接
当语音自检显示失败时,可检查喇叭与麦克风连接是否正常;若未接喇叭,结果应该显示为失败,但若检测环境嘈杂,可能会误判为成功;若不接麦克风,则必定会显示失败;
(2)检查配件
若喇叭与麦克风连接都正常,仍显示失败,则检查喇叭与麦克风配件是否损坏;若配件也正常,可联系技术支持。
(3)确认环境是否安静
自检的原理是通过在设备的喇叭播放 1KHz 的音频,然后在麦克风接收此 1KHz 的音频信号。 当环境中存在 1KHz 音频时,可能会导致检测不准确。 即可能喇叭损坏,但是检测到了环境中的 1KHz 音频信号,判断错误认为喇叭是好的。