借助阿里云【语音服务】实现异常实时报警

本文涉及的产品
语音服务,语音通知 50分钟
简介: 阿里云的【语音服务】,实现异常情况的设备报警快速有效的通知到相关人员

随着物联网的普及,当设备发生异常时候的通知方式也有了多种多样的实现。从传统的后台异常列表,到短信通知,到微信消息通知等。但是当设备探测到异常时,需要实时通知到相关人员。

下面具体介绍如何借助阿里云的【语音服务】实现。

1. 准备工作

1.1 登录阿里云语音服务,进行资质申请,需要准备好企业信息,法人信息以及加盖企业公章的入网承诺书、号码申请公函;
screencapture-dyvms-console-aliyun-dyvms-htm-2019-11-12-17_48_27.png

1.2 资质申请通过后,就可以购买号码了。
注1:目前只能申请企业归属地所属的号码,比如企业是在杭州的,就不能购买上海的号码段;
注2:因为阿里云接入的是移动联通电信三大运营商,号码段经常发生变化,在实际购买时可能存在号码库为空的场合,这种情况下建议下个工单给小二,催下进度;
注3:号码是按月租费计算,实际通话费用按照拨打时间进行附加收费;
image.png

1.3 准备【文本转语音模板】;
注1:模板内容和阿里云短信一样,可以自己定义替换变量;
注2:文本输入完成后,建议试听一下,计算下时长,如果超过1分钟后就按照2分钟进行收费啦;
注3:可以自己选择声音类型,这个功能瞬间点赞;
image.png
C6123AF4-535F-4e32-93BA-7DADECCD97D2.png

2. 试试看效果

阿里云上的配置基本做好了,接下来就是如何嵌入我们的代码啦。
2.1 重新梳理一下语音服务的流程。
image.png
2.2 整理好需要用到的阿里云参数资料。
2.2.1 $accessKeyId,$accessKeySecret(可通过https://ak-console.aliyun.com页面创建)
注:由于$accessKeyId,$accessKeySecret是阿里云全局的,比如短信,OSS等,请注意保管,必要时可以通过【创建子用户accessKey】配置权限进行使用;
2.2.2 CalledShowNumber主叫号码,即1.2中购买的号码,用于接听电话时显示;
2.2.3 CalledNumber被叫号码,仅支持中国大陆号码。根据业务需求,设定需要处理该异常消息的人员电话;
2.2.4 TtsCode模板ID,即1.3中配置好的模板ID;
2.2.5 模板中配置的参数值,比如$position(报警地址),$devicename(设备名称),$time(报警时间)
2.3 下载PHP的DEMO,另外,阿里云还支持JavaPython的地址,大家可以去试一下。
注:目前最新的语音服务新版SDK源码已经托管至开源平台Github及主流依赖仓库
2.4 打开【aliyun-dyvms-php-sdk\api_demo\singleCallByTts.php】,代入2.3中的各项参数。

ini_set("display_errors", "on");

require_once dirname(__DIR__) . '/api_sdk/vendor/autoload.php';

use Aliyun\Core\Config;
use Aliyun\Core\Profile\DefaultProfile;
use Aliyun\Core\DefaultAcsClient;
use Aliyun\Api\Dyvms\Request\V20170525\SingleCallByTtsRequest;

// 加载区域结点配置
Config::load();

/**
 * 文本转语音外呼
 *
 * 语音服务API产品的DEMO程序,直接执行此文件即可体验语音服务产品API功能
 * (只需要将AK替换成开通了云通信-语音服务产品功能的AK即可)
 * 备注:Demo工程编码采用UTF-8
 */
function singleCallByTts() {
    //产品名称:云通信语音服务API产品,开发者无需替换
    $product = "Dyvmsapi";

    //产品域名,开发者无需替换
    $domain = "dyvmsapi.aliyuncs.com";

    // TODO 此处需要替换成开发者自己的AK (https://ak-console.aliyun.com/)
    $accessKeyId = "$2.3.1准备的accessKeyId "; // AccessKeyId

    $accessKeySecret = "$2.3.1准备的accessKeySecret"; // AccessKeySecret


    // 暂时不支持多Region
    $region = "cn-hangzhou";

    // 服务结点
    $endPointName = "cn-hangzhou";

    //初始化acsClient,暂不支持region化
    $profile = DefaultProfile::getProfile($region, $accessKeyId, $accessKeySecret);

    // 增加服务结点
    DefaultProfile::addEndpoint($endPointName, $region, $product, $domain);

    // 初始化AcsClient用于发起请求
    $acsClient = new DefaultAcsClient($profile);

    //组装请求对象-具体描述见控制台-文档部分内容
    $request = new SingleCallByTtsRequest();
    //必填-被叫显号
    $request->setCalledShowNumber("$1.2购买的号码");
    //必填-被叫号码
    $request->setCalledNumber("$需要拨打的电话号码");
    //必填-Tts模板Code
    $request->setTtsCode("$1.3配置的模板ID");
    //选填-Tts模板中的变量替换JSON,假如Tts模板中存在变量,则此处必填
    $request->setTtsParam("{\"position\":\"$杭州滨江滨兴路500号\",\"devicename\":\"$烟感\",\"time\":\"$9:10\"}");
    //选填-音量
    $request->setVolume(100);
    //选填-播放次数
    $request->setPlayTimes(3);
    //选填-外呼流水号
    $request->setOutId("213123123");

    //hint 此处可能会抛出异常,注意catch
    $response = $acsClient->getAcsResponse($request);

    return $response;
}

// 调用示例:
set_time_limit(0);
header("Content-Type: text/plain; charset=utf-8");

$response = singleCallByTts();
echo "文本转语音外呼(singleCallByTts)接口返回的结果:\n";
print_r($response);

2.5 执行后的页面输出如下:
文本转语音外呼(singleCallByTts)接口返回的结果:
stdClass Object
(
[Message] => OK
[RequestId] => 9F9310B3-4390-44B9-89B5-C33A907A282D
[Code] => OK
[CallId] => 118407437815^105205032815
)
2.6 耐心等待几秒钟,被拨打的电话号码就会收到一条来电,根据我们的参数配置会循环3遍提示。
【您位于杭州滨江滨兴路500号的烟感在9:10疑似出现XX情况,请您及时确认以免造成人员及财产损失】
大家也可以试听下实际的通话录音

3. 总结

通过阿里云的语音服务,帮助我们能够快速搭建异常通知系统。这里只是介绍其中最简单的一种应用,实际上还有【语音验证码】【智能外呼机器人】等功能,对于拥有自有线路的用户,还可以SIP Trunk的接入方式将语音网关与语音服务平台进行对接。
我们现在主要在以下场景进行了应用:

  • 电网设备报警
  • 物业费用等电话催缴通知
  • 会员服务续费到期通知

最后小小吐槽下,希望提供阿里云语音服务的运营商线路能够稳定些,不要老是进行切换。

相关文章
|
6月前
|
存储 UED
vos3000外呼系统如何使用 IVR 语音流程跟踪分析
在VOS3000外呼系统中实现IVR流程跟踪分析,需配置IVR流程,包括语音菜单和转接等。设置跟踪参数记录用户行为,启用流程跟踪(在系统调试跟踪中开启,可选持续跟踪)。当用户呼叫时,系统自动收集按键和转接数据。通过分析工具解析数据,优化IVR流程以提升用户体验。注意,重新开启调试跟踪或服务重启会中断跟踪,需重新设置。关注博主了解更多系统技术知识。
|
小程序
小程序接入实时日志
小程序接入实时日志
258 0
|
机器学习/深度学习 SQL 存储
SLS智能巡检最佳实践:针对有异常标签数据
日志服务 SLS 智能异常分析 APP 提供自动化、智能化模型训练能力,可以根据设定的历史数据区间进行监督建模。您可以使用模型训练任务通过监督的方式加强对自身数据的异常学习,来提升未来的异常预警的准确率,模型训练任务主要有以下优势:直接使用SLS的智能巡检功能,准确率不及预期,可以选择使用SLS的模型训练任务,来提升异常检测的准确性智能巡检检测出来的异常和您所认为的异常之间可能存在gap,这种情况
208 0
|
弹性计算 监控
直播预告丨阿里云佐井:关注预警6要素,帮助用户实现精准监控和告警
通过监控预警,把问题扼杀在摇篮里,减少故障带来的业务损失。
直播预告丨阿里云佐井:关注预警6要素,帮助用户实现精准监控和告警
|
传感器 算法 安全
雨量预警广播拉网分布遥测仪远程命令语音播报自动化数据平台
全自动监测预警设备,集现场数据采发、区域化广播预警的监测预警功能,可进行多通道的多种传感类型采集,包括电压、电流、数字、脉冲等。内嵌预警算法,可在达到预警条件时实现现场区域化广播预警。支持多种无线数据传输,包括区域自建射频、远程 GSM/GPRS 。
雨量预警广播拉网分布遥测仪远程命令语音播报自动化数据平台
|
存储 域名解析 数据安全/隐私保护
离线云监测系统
OCMS ( Offline Cloud Monitoring System)是利用人们熟知的稳定可靠的第三方电子邮件、FTP 服务商提供的数据永久存储服务作为中间环节,监测设备向服务器发送数据,监测软件从服务器获取数据的以非实时在线的方式工作的无线监测预警系统。 具有数据可靠、部署快捷、操作简单、无需在线等主要优势和特点。
离线云监测系统
|
机器学习/深度学习 运维 自然语言处理
盘点监控系统中的告警智能降噪方案
在监控场景下,一旦出现告警风暴,告警本身就失去了意义和价值。因此需要有一套方案,帮助用户在不遗漏重要告警前提下,有效减少告警数量。本文主要调研了业界常见的监控/告警系统中使用到的智能算法降噪方案。
4397 0
盘点监控系统中的告警智能降噪方案
|
数据采集 自然语言处理 语音技术
分析在智能语音对话流程的各个主要模块交互时序流程okcc呼叫中心
分析在智能语音对话流程的各个主要模块交互时序流程(以呼入为例),主要流程为: 1. 客户拨打电话给智能语音客服。 2. 智能语音客服接听电话后,呼叫中心平台调用业务流程管理接口,启动并初始化对话流程状态图。 3. 业务对话流程管理模块初始化对话流程状态图后,发送开场白话术给呼叫中心。 4. 呼叫中心平台接收到开场白话术,根据配置选择进行TTS语音合成或者直接播放录制好的录音,并进行放音操作通知用户。 5. 客户收到开场白语音后同样做出相应的语音回复,开始进行对话流程。 6. 呼叫中心平台收到用户的回复语音后通过MRCP协议调用ASR服务进行语音识别。 7. 呼叫中心收到ASR返回的文字结果后,
|
消息中间件 存储 运维
平台上配置智能告警
平台上配置智能告警
185 0
|
机器学习/深度学习 编解码 自然语言处理
实时语音质量监控
本文主要想介绍实时语音的质量到底是什么样的,大概介绍一下这个领域的一些已有的一些方法,然后会再介绍一下现有的方法,并且介绍一下未来想做的一些事情。
下一篇
无影云桌面