写点什么

使用 Amazon Polly 提供实时家居监控警报

  • 2019-10-11
  • 本文字数:1573 字

    阅读完需:约 5 分钟

使用 Amazon Polly 提供实时家居监控警报

这是 Y-cam Solution 高级开发人员 Siva K. Syamala 撰写的客座博客文章。用她自己的话说,“Y-cam 是高质量安保视频解决方案提供商,我们的愿景是让智能家居安防系统变得简单,方便所有人使用。” | 原文链接


家居安防是家庭自动化和物联网的重要组成部分。Y-cam Solutions Limited 在 Amazon 的大力支持下,提供了一个智能安防系统,该系统可通过智能手机在世界任何地方进行监视和控制。为了改进警报、通知和系统控制方式,Y-cam 使用 Amazon Polly 提供一流的 AI 服务。利用该服务,用户可通过语音与安防系统进行交互。

我们的服务的工作方式

当触发报警时,我们通过 Twilio 以语音电话的方式通知客户。在建立呼叫后,Twilio 将逐步执行 TwiML 指令,并使用从 Amazon Polly 检索的合成语音开始向客户传送信息。电话接听方通过按手机键盘上的按钮 (DTMF 代码) 来做出回应。根据具体的 DTMF 代码,我们的服务会采取指定的操作,并返回从 Amazon Polly 检索的合成语音所对应的 TwiML 指令。为了让用户听起来像一个真实的对话,Amazon Polly 必须快速做出回应。延迟和等待会让人不满,并更有可能会导致接听方挂断电话。


下面是触发警报时向客户拨打的电话的示例音频剪辑。


##架构


呼叫 Amazon Polly

以下 Java 代码说明了从 Amazon Polly 请求合成语音并将其存储在 S3 存储桶中的过程。


public String convertTextToSpeech(final String text, final String polyVoiceId) {  log.info("Converting " + text + " to speech");  // Create speech synthesis request.  SynthesizeSpeechRequest synthesizeSpeechRequest = new SynthesizeSpeechRequest()  .withText(text)  .withVoiceId(polyVoiceId)  .withOutputFormat(OutputFormat.Mp3);
// Get the synthesized speech audio stream. SynthesizeSpeechResult synthesizeSpeechResult = awsPollyClient.synthesizeSpeech(synthesizeSpeechRequest); // store audio stream of Polly to S3 as an MP3 file byte[] bytes = null; try { bytes = IOUtils.toByteArray(synthesizeSpeechResult.getAudioStream()); } catch (IOException e) { log.error("Could not get bytes from the audio stream " + e.getMessage()); } ObjectMetadata omd = new ObjectMetadata(); omd.setContentType(synthesizeSpeechResult.getContentType()); omd.setContentLength(bytes.length); ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes); String fileName = getRandomString(); final PutObjectRequest s3Put = new PutObjectRequest(pollySpeechBucket, fileName, byteArrayInputStream, omd).withCannedAcl(CannedAccessControlList.PublicRead);
amazonS3Client.putObject(s3Put);
return S3URL;}
复制代码

为什么选择 Amazon Polly?

在使用 Amazon Polly 之前,我们使用过另一家 TTS 提供商,该提供商提供的语音不真实,并且存在可扩展性问题。很显然,机器人的声音不会带来良好的客户体验。我们希望声音更加自然,更加接近人类声音。Amazon Polly 为我们提供了一个非常简单、灵活、自然和可扩展的文本到语音的解决方案,而且成本非常低。另外,Amazon Polly 还支持不同的语音和语言。Amazon Polly 可以在数毫秒内处理数据,这样我们的客户不需要长时间等待回应。

未来的发展

我们计划在未来使用 Amazon Lex,以便客户可以向自己的家居安防系统发出控制命令,而不是输入 DTML 代码。Amazon Lex 提供了自动语音识别 (ASR) 的深度学习功能,可将语音转换为文本;并且提供了自然语言理解 (NLU) 来识别文本的意思。我们的目标是为用户提供全语音用户接口。


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/using-amazon-polly-to-provide-real-time-home-monitoring-alerts/


2019-10-11 11:19833
用户头像

发布了 1964 篇内容, 共 168.7 次阅读, 收获喜欢 83 次。

关注

评论

发布
暂无评论
发现更多内容

Android客户端网络预连接优化机制探究

vivo互联网技术

android TCP HTTP

JAVA笔记(四)--三大结构语句

加百利

Java 后端 6月日更 结构语句

使用 Python 对数据进行压缩

★忆先★

初探Deno.js

★忆先★

deno

全面赋能泛娱乐社交场景

anyRTC开发者

音视频 WebRTC 泛娱乐社交

智慧水务|大坝水利可视化管理,综合态势一屏掌握

一只数据鲸鱼

数据可视化 智慧水务 三维可视化 水利 水力发电

为什么服务实例在隔离之后还在继续处理请求?

BUG侦探

TCP 半关闭连接 接收缓存

多种数据形式下智能问答的应用解读

百度大脑

一文讲全了Python类和对象内容

华为云开发者联盟

Python

第一次见家长送禧大福酒好吗?

Geek_50a546

HarmonyOS Connect伙伴峰会于厦门举办 硬件生态快速发展

科技汇

技术实践 | 如何基于 Flink 实现通用的聚合指标计算框架

网易云信

框架 flink 执行

专访关涛:阿里EB级大数据体系,背后的计算平台竟是这样(采访提纲)

花花

试用期 签约计划

线上程序cpu占用过高、程序死锁,该如何定位问题?

李尚智

网络研讨会|想弄明白应用安全?我们为你准备了5个锦囊!

鉴释

DevSecOps 安全编码规范 应用安全 静态分析

校友会小程序开发笔记五:找校友功能模块设计与实现

CC同学

校友录小程序

向996宣战!快乐工作,健康生活的互联网要来了吗?

架构精进之路

话题讨论 话题 996 6月日更

百度C++工程师的那些极限优化(并发篇)

百度Geek说

c++ 性能优化

Python3.10中的结构化模式匹配语法

★忆先★

Python

公安情指勤合成作战系统搭建,情报指挥系统搭建

为什么一款看似美好的产品会没有市场?

boshi

创业心态 产品经历

算法导论的道与术、工程师思维奠定能走多远-John 易筋 ARTS 打卡 Week 51

John(易筋)

ARTS 打卡计划

重塑价值:新一代ITSM平台的建设、咨询与实施

云智慧AIOps社区

ITSM 智能运维

朋友乔迁住新房 禧大福酒竟成为宴席最大赢家

Geek_50a546

失业这件事,你认真考虑过吗?| 话题

Albert

6月日更

使用poetry进行Python项目开发

★忆先★

Python

Keepalived+Nginx 搭建高可用集群

逸少

nginx 高可用 keepalive

用 Go struct 不能犯的一个低级错误!

煎鱼

Go 语言

保姆级教学,22张图揭开ThreadLocal

程序猿阿星

内存泄露 ThreadLocal 线程安全 弱引用 ThreadLocalMap

Java 连接操作 MySQL 数据库(增删查改操作)

若尘

MySQL 数据库 java编程 驱动 6月日更

Linux 中实用但很小众的 11 个炫酷终端命令

学神来啦

云计算 Linux 运维 linux运维 网络运维

使用 Amazon Polly 提供实时家居监控警报_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章