HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

使用 AWS Transcribe 配合物联网设备构建一套支持多语种的语音到文本通知系统

  • 2020-09-13
  • 本文字数:3079 字

    阅读完需:约 10 分钟

使用 AWS Transcribe 配合物联网设备构建一套支持多语种的语音到文本通知系统

Original URL: https://aws.amazon.com/cn/blogs/machine-learning/building-a-speech-to-text-notification-system-in-different-languages-with-aws-transcribe-and-an-iot-device/


您是否希望访客能在您不在家时给您留言?是否希望这样的解决方案能够支持您惯常使用的母语?其实很简单,我们可以轻松构建起这样一套具有成本效益的解决方案,而且只需要为实际使用的资源付费。


本文将向大家介绍如何构建一套通知系统,其能够检测造访人士、录制音频、将音频转录为文本、并通过您熟悉的语言将文本发送至移动设备端。这套解决方案中将用到以下服务:


先决条件

要完成本轮演练,您需要做好以下准备:


工作流与架构

当传感器检测到指定范围内的人员时,接入 Raspberry Pi 的扬声器会播放初始问候语,并提示用户录制一条语音消息。该录音将被发送至 Amazon S3,由后者触发 Lambda 函数以使用 Amazon Transcribe 将语音转录为文本。转录完成之后,用户将从 Amazon SNS 处接收转录的文本通知。


下图所示,为这套解决方案的工作流程。



Amazon Transcribe 使用的深度学习过程名为自动语音识别(ASR),能够按照您选定的语种将语音快速准确地转换为文本。它还能自动添加标点符号与格式,确保输出结果具有可与手动转录相媲美的准确度。您还可以使用自定义词汇表配置 Amazon Transcribe,以获取更准确的转录效果(例如,添加家中成员的姓名)。您也可以通过配置词汇表去删除转录结果中的某些特定词汇(例如亵渎或者冒犯性词语)。Amazon Transcribe 支持多种不同语言。关于更多详细信息,请参阅Amazon Transcribe是什么?

上传 CloudFormation 栈

本文将提供一套 CloudFormation 模板,该模板将创建一个输入 S3 存储桶,用于触发 Lambda 函数以将音频转录为文本,而后通过 SNS 通知将文本发送给用户。当然,模板中也包含完成上述流程所需要的权限。


  • 下载 CloudFormation模板

  • 在 AWS CloudForamtion 控制台上,选择 Upload a template file

  • 选择您已经下载完成的文件。

  • 选择 Next

  • Stack Name 部分,输入您的栈名称。

  • Parameters 下,使用以下输入对模板参数进行更新


参数默认说明
MobileNumber必填一个可接收SNS通知的有效手机号码。
LanguageCode必填音频文件的语言代码,例如English US。
SourceS3Bucket必填一个唯一的存储桶名称。


  • 选择 Next

  • Options 页面上,选择 Next

  • 在 Review 页面上,查看并确认各项设置。

  • 选定勾选框以确认由模板创建相关 IAM 资源。

  • 选择 Create


大家可以在 AWS CloudFormation 控制台上查看栈状态。您应该会在 5 分钟左右内看到状态转换为CREATE_COMPLETE


  • Outputs 中记录 BucketNameRaspberryPiUserName

下载欢迎消息

要下载欢迎消息,请完成以下步骤:


  • 在 Amazon Polly 控制台的 Plain text 选项卡上,输入您的欢迎信息。

  • Language and Region 部分,选择您的首选语言。

  • 选择 Download MP3



  • 将该文件重命名为greetings.mp3

  • 将文件移动至raspberrypi /home/pi/Downloads/文件夹。

设置 AWS IoT 凭证提供程序

设置 AWS IoT 凭证之后,我们才能安全地对物联网设备进行身份验证。关于具体操作说明,请参阅如何使用AWS IoT凭证提供程序消除设备中的AWS硬编码凭证需求。在该文第 3 步中添加以下策略,以将文件上传至 Amazon S3(而非更新 Amazon DynamoDB 表):


Json


             {                "Version": "2012-10-17",                "Statement": {                  "Effect": "Allow",                  "Action": [                    "s3:PutObject"                  ],                  "Resource": "arn:aws:s3:::<sourceS3Bucket>"                }              }
复制代码

设置 Raspberry Pi

要设置 Raspberry Pi,请完成以下操作步骤:


  • 在 Raspberry Pi 上,打开终端并安装AWS CLI

  • 为传感器创建一个 Python 文件与代码,以检测人员对象是否处于特定范围(例如 30 厘米到 200 厘米)之间。如果是,播放欢迎消息,在指定时段内(例如 20 秒)录制音频,而后将音频发送至 Amazon S3。具体请参见以下示例代码。


Json


 while True:        GPIO.setmode(GPIO.BOARD)       #Setting trigger and echo pin from ultrasonic sensor        PIN_TRIGGER = 7        PIN_ECHO = 11        GPIO.setup(PIN_TRIGGER, GPIO.OUT)        GPIO.setup(PIN_ECHO, GPIO.IN)        GPIO.output(PIN_TRIGGER, GPIO.LOW)
print ("Waiting for sensor to settle") time.sleep(2)
print ("Calculating distance") GPIO.output(PIN_TRIGGER, GPIO.HIGH) time.sleep(0.00001) GPIO.output(PIN_TRIGGER, GPIO.LOW) while GPIO.input(PIN_ECHO)==0: pulse_start_time = time.time() while GPIO.input(PIN_ECHO)==1: pulse_end_time = time.time() pulse_duration = pulse_end_time - pulse_start_time print(pulse_end_time) print(pulse_end_time) #Calculating distance in cm based on duration of pulse. distance = round(pulse_duration * 17150, 2) print ("Distance:",distance,"cm")

if 30 <= distance <= 200: cmd = "ffplay -nodisp -autoexit /home/pi/Downloads/greetings.mp3" print ("Starting Recorder") os.system(cmd) #Recording for 20 seconds, adding timestamp to the filename and sending file to S3 cmd1 ='DATE_HREAD=$(date "+%s");arecord /home/pi/Desktop/$DATE_HREAD.wav -D sysdefault:CARD=1 -d 20 -r 48000;aws s3 cp /home/pi/Desktop/$DATE_HREAD.wav s3://homeautomation12121212' os.system(cmd1)
else: print ("Nothing detected")
复制代码


  • 运行 Python 文件。


超声波传感器会不断寻找正接近您家附近的人员。当检测到有人时,扬声器会播放欢迎消息并要求访客开始录音。录音随后会被发送到 Amazon S3。


如果您的扬声器与麦克风接入多个设备,例如 HDMI 与 USB,请配置asoundrc文件。

测试解决方案

将 Raspberry Pi 放置在您家中能够感知到他人并录制音频的位置。


当该人出现在 Raspberyy Pi 面前时,他们应该听到欢迎消息。他们可以在录制音频后离开,而您能够收到由录制音频转录而成的文本短信。

总结

本文展示了如何使用 AWS 服务构建安全的语音到文本通知解决方案。如果您在未来的应用场景中需要使用多种不同语言,将语音内容转换为文本,则可以直接集成这套解决方案。如果您有任何问题或者意见,请在评论区中与我们交流。


作者介绍


Vikas Shah


Amazon Web Services 公司企业级解决方案架构师。他是一位技术爱好者,乐于帮助客户为复杂的业务挑战找到创新型解决方案。他对机器学习、物联网、机器人技术以及存储抱有浓厚兴趣。在业余时间,Vikas 喜欢组装机器人、远足和旅行。


Anusha Dharmalingam


Amazon Web Services 公司解决方案架构师。她对应用程序开发与大数据解决方案充满热情。Anusha 与企业客户合作,帮助他们设计、构建并扩展用于实现业务目标的应用程序。


本文转载自亚马逊 AWS 官方博客。


原文链接


使用 AWS Transcribe 配合物联网设备构建一套支持多语种的语音到文本通知系统


2020-09-13 10:001182

评论

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

谈谈基于JS实现阻止别人调试通过控制台调试网站的问题

南极一块修炼千年的大冰块

7月月更

易观分析:以用户为中心提升手机银行用户体验,助力用户价值增长

易观分析

数据分析 用户体验 手机银行

不用Swagger,那我用啥?

江南一点雨

行业落地呈现新进展 | 2022 开放原子全球开源峰会 OpenAtom OpenHarmony 分论坛圆满召开

kk-OSC

开放原子全球开源峰会

要想组建敏捷团队,这些方法不可少

敏捷开发

团队管理 敏捷开发 敏捷团队

语音聊天app——如何规范开发流程?

开源直播系统源码

软件开发 直播系统源码 语音聊天系统

定了!就在7月30日!

腾源会

开源

本地化、低时延、绿色低碳:阿里云正式启用福州数据中心

阿里云弹性计算

公有云 本地Region

API 网关 APISIX 在Google Cloud T2A 和 T2D 的性能测试

API7.ai 技术团队

网关 API Gateway 谷歌云 网关性能测试

18张图,直观理解神经网络、流形和拓扑

OneFlow

神经网络 深度学习

华为发布HarmonyOS 3及全场景新品,智慧体验更进一步

Geek_2d6073

什么样的知识付费系统功能,更有利于平台与讲师发展?

CRMEB

什么是WordPress

hum建应用专家

Wordpress 博客部署 WordPress

JAVA编程规范之应用分层

源字节1号

软件开发 前端开发 后端开发 小程序开发

OpenAtom OpenHarmony分论坛圆满举办,生态与产业发展迈向新征程

OpenHarmony开发者

OpenHarmony

论治理与创新 | 2022 开放原子全球开源峰会 OpenAnolis 分论坛圆满召开

kk-OSC

开放原子全球开源峰会

《我的Vivado实战—单周期CPU指令分析》

攻城狮杰森

cpu 计算机组成原理 7月月更 vivado 计算机科学与技术

Linux操作系统下Docker的完整部署过程

Java永远的神

Docker 程序员 架构 程序人生 云原生

新闻速递 | MobTech袤博科技参与中国信通院“绿色SDK产业生态共建行动”

MobTech袤博科技

数据安全 sdk

数字经济时代的开源数据库创新 | 2022 开放原子全球开源峰会数据库分论坛圆满召开

kk-OSC

开放原子全球开源峰会

备战金九银十,Java研发面试题整理PDF,走到哪刷

程序知音

Java 程序员 java面试 后端技术 八股文

Qt | 信号和槽的一些总结

YOLO.

qt 7月月更

精品方案|海泰方圆全栈式数据安全治理方案 为数据设一把“安全锁”

电子信息发烧客

苹果手机iCloud钥匙串的加密缺陷

神锁离线版

apple 密码管理 密码技术 icloud keychain

疫情期间佩戴口罩检测之训练检测口罩模型算法实现口罩检测步骤以及报错解决

南蓬幽

Python AI OpenCV 7月月更

分布式定时器

腾讯企点技术团队

redis 分布式 定时器

巧用ngx_lua做流量分组

转转技术团队

nginx

开源汇智创未来 | 2022 开放原子全球开源峰会 OpenAtom openEuler 分论坛圆满召开

kk-OSC

开放原子全球开源峰会

产学研用 共建开源人才生态 | 2022 开放原子全球开源峰会教育分论坛圆满召开

kk-OSC

开放原子全球开源峰会

开源社区三十年 | 2022 开放原子全球开源峰会开源社区三十年专题活动圆满召开

kk-OSC

开放原子全球开源峰会

聚变云原生,赋能新里程 | 2022 开放原子全球开源峰会云原生分论坛圆满召开

kk-OSC

使用 AWS Transcribe 配合物联网设备构建一套支持多语种的语音到文本通知系统_大数据_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章