时间:2021-07-15 | 标签: | 作者:Q8 | 来源:AWS Team网络
小提示:您能找到这篇{使用AWS Transcribe配合物联网设备构建一套支持多语}绝对不是偶然,我们能帮您找到潜在客户,解决您的困扰。如果您对本页介绍的使用AWS Transcribe配合物联网设备构建一套支持多语内容感兴趣,有相关需求意向欢迎拨打我们的服务热线,或留言咨询,我们将第一时间联系您! |
< ">您是否希望访客能在您不在家时给您留言?是否希望这样的解决方案能够支持您惯常使用的母语?其实很简单,我们可以轻松构建起这样一套具有成本效益的解决方案,而且只需要为实际使用的资源付费。 < ">本文将向大家介绍如何构建一套通知系统,其能够检测造访人士、录制音频、将音频转录为文本、并通过您熟悉的语言将文本发送至移动设备端。这套解决方案中将用到以下服务: < ">AWS CloudFormation < ">AWS Lambda < ">Amazon Polly < ">Amazon Simple Notification Service(Amazon SNS) < ">Amazon Simple Storage Service(Amazon S3) < ">Amazon Transcribe < ">< font-size: 18px;">先决条件 < ">要完成本轮演练,您需要做好以下准备: < ">运行有Noobs的Raspberry Pi 4设备 < ">接入该Raspberry Pi设备的超声波传感器 < ">麦克风 < ">扬声器 < ">AWS账户 < ">< font-size: 18px;">工作流与架构 < ">当传感器检测到指定范围内的人员时,接入Raspberry Pi的扬声器会播放初始问候语,并提示用户录制一条语音消息。该录音将被发送至Amazon S3,由后者触发Lambda函数以使用Amazon Transcribe将语音转录为文本。转录完成之后,用户将从Amazon SNS处接收转录的文本通知。 < ">下图所示,为这套解决方案的工作流程。 < ">Amazon Transcribe使用的深度学习过程名为自动语音识别(ASR),能够按照您选定的语种将语音快速准确地转换为文本。它还能自动添加标点符号与格式,确保输出结果具有可与手动转录相媲美的准确度。您还可以使用自定义词汇表配置Amazon Transcribe,以获取更准确的转录效果(例如,添加家中成员的姓名)。您也可以通过配置词汇表去删除转录结果中的某些特定词汇(例如亵渎或者冒犯性词语)。Amazon Transcribe支持多种不同语言。关于更多详细信息,请参阅Amazon Transcribe是什么? < ">< font-size: 18px;">上传CloudFormation栈 < ">本文将提供一套CloudFormation模板,该模板将创建一个输入S3存储桶,用于触发Lambda函数以将音频转录为文本,而后通过SNS通知将文本发送给用户。当然,模板中也包含完成上述流程所需要的权限。 < ">下载CloudFormation模板。 < ">在AWS CloudForamtion控制台上,选择Upload a template file。 < ">选择您已经下载完成的文件。 < ">选择Next。 < ">在Stack Name部分,输入您的栈名称。 < ">在Parameters下,使用以下输入对模板参数进行更新 < ">参数< white-space: pre;"> 默认< white-space: pre;"> 说明 < ">< background-color: rgb(242, 242, 242); color: rgb(192, 0, 0);">MobileNumber< white-space: pre;"> 必填< white-space: pre;"> 一个可接收SNS通知的有效手机号码。 < ">< color: rgb(192, 0, 0); background-color: rgb(242, 242, 242);">LanguageCode< white-space: pre;"> 必填 < white-space: pre;"> 音频文件的语言代码,例如English US。 < ">< color: rgb(192, 0, 0); background-color: rgb(242, 242, 242);">SourceS3Bucket< white-space: pre;"> 必填< white-space: pre;"> 一个唯一的存储桶名称。 < ">选择Next。 < ">在Options页面上,选择Next。 < ">在Review页面上,查看并确认各项设置。 < ">选定勾选框以确认由模板创建相关IAM资源。 < ">选择Create。 < ">大家可以在AWS CloudFormation控制台上查看栈状态。您应该会在5分钟左右内看到状态转换为< color: rgb(192, 0, 0); background-color: rgb(242, 242, 242);">CREATE_COMPLETE。 < ">从Outputs中记录< color: rgb(192, 0, 0); background-color: rgb(242, 242, 242);">BucketName与< color: rgb(192, 0, 0); background-color: rgb(242, 242, 242);">RaspberryPiUserName。 < ">< font-size: 18px;">下载欢迎消息 < ">要下载欢迎消息,请完成以下步骤: < ">在Amazon Polly控制台的Plain text选项卡上,输入您的欢迎信息。 < ">在Language and Region部分,选择您的首选语言。 < ">选择Download MP3。 < ">将该文件重命名为< color: rgb(192, 0, 0); background-color: rgb(242, 242, 242);">greetings.mp3。 < ">将文件移动至< color: rgb(192, 0, 0); background-color: rgb(242, 242, 242);">raspberrypi/home/pi/Downloads/文件夹。 < ">< font-size: 18px;">设置AWS IoT凭证提供程序 < ">设置AWS IoT凭证之后,我们才能安全地对物联网设备进行身份验证。关于具体操作说明,请参阅如何使用AWS IoT凭证提供程序消除设备中的AWS硬编码凭证需求。在该文第3步中添加以下策略,以将文件上传至Amazon S3(而非更新Amazon DynamoDB表): < background-color: rgb(242, 242, 242);"> { < background-color: rgb(242, 242, 242);"> "Version": "2012-10-17", < background-color: rgb(242, 242, 242);"> "Statement": { < background-color: rgb(242, 242, 242);"> "Effect": "Allow", < background-color: rgb(242, 242, 242);"> "Action": [ < background-color: rgb(242, 242, 242);"> "s3:PutObject" < background-color: rgb(242, 242, 242);"> ], < background-color: rgb(242, 242, 242);"> "Resource": "arn:aws:s3:::<sourceS3Bucket>" < background-color: rgb(242, 242, 242);"> &nb泉州电商运营sp; } < background-color: rgb(242, 242, 242);"> } < ">< font-size: 18px;">设置Raspberry Pi < ">要设置Raspberry Pi,请完成以下操作步骤: < ">在Raspberry Pi上,打开终端并安装AWS CLI。 < ">为传感器创建一个Python文件与代码,以检测人员对象是否处于特定范围(例如30厘米到200厘米)之间。如果是,播放欢迎消息,在指定时段内(例如20秒)录制音频,而后将音频发送至Amazon S3。具体请参见以下示例代码。 < "> < background-color: rgb(242, 242, 242);">while True: < background-color: rgb(242, 242, 242);"> GPIO.setmode(GPIO.BOARD) < background-color: rgb(242, 242, 242);"> #Setting trigger and echo pin from ultrasonic sensor < background-color: rgb(242, 242, 242);"> PIN_TRIGGER = 7 < background-color: rgb(242, 242, 242);"> PIN_ECHO = 11 < background-color: rgb(242, 242, 242);"> GPIO.setup(PIN_TRIGGER, GPIO.OUT) < background-color: rgb(242, 242, 242);"> GPIO.setup(PIN_ECHO, GPIO.IN) < background-color: rgb(242, 242, 242);"> GPIO.output(PIN_TRIGGER, GPIO.LOW) < background-color: rgb(242, 242, 242);"> print ("Waiting for sensor to settle") < background-color: rgb(242, 242, 242);"> time.sleep(2) < background-color: rgb(242, 242, 242);"> print ("Calculating distance") < background-color: rgb(242, 242, 242);"> GPIO.output(PIN_TRIGGER, GPIO.HIGH) < background-color: rgb(242, 242, 242);"> time.sleep(0.00001) < background-color: rgb(242, 242, 242);"> GPIO.output(PIN_TRIGGER, GPIO.LOW) < background-color: rgb(242, 242, 242);"> while GPIO.input(PIN_ECHO)==0: < background-color: rgb(242, 242, 242);"> pulse_start_time = time.time() < background-color: rgb(242, 242, 242);"> while GPIO.input(PIN_ECHO)==1: < background-color: rgb(242, 242, 242);"> pulse_end_time = time.time() < background-color: rgb(242, 242, 242);"> pulse_duration = pulse_end_time - puls成都网站网站建设建设e_start_time < background-color: rgb(242, 242, 242);"> print(pulse_end_time) < background-color: rgb(242, 242, 242);"> print(pulse_end_time) < background-color: rgb(242, 242, 242);"> #Calculating distance in cm based on duration of pulse. < background-color: rgb(242, 242, 242);"> distance = round(pulse_duration * 17150, 2) < background-color: rgb(242, 242, 242);"> print ("Distance:",distance,"cm") < background-color: rgb(242, 242, 242);"> if 30 <= distance <= 200: < background-color: rgb(242, 242, 242);"> cmd = "ffplay -nodisp -autoexit /home/pi/Downloads/greetings.mp3" < background-color: rgb(242, 242, 242);"> print ("Starting Recorder") < background-color: rgb(242, 242, 242);"> os.system(cmd) < background-color: rgb(242, 242, 242);"> #Recording for 20 seconds, adding timestamp to the filename and sending file to S3 < background-color: rgb(242, 242, 242);"> 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' < background-color: rgb(242, 242, 242);"> os.system(cmd1) < background-color: rgb(242, 242, 242);"> else: < background-color: rgb(242, 242, 242);"> print ("Nothing detected") < ">运行Python文件。 < ">超声波传感器会不断寻找正接近您家附近的人员。当检测到有人时,扬声器会播放欢迎消息并要求访客开始录音。录音随后会被发送到Amazon S3。 < ">如果您的扬声器与麦克风接入多个设备,例如HDMI与USB,请配置asoundrc文件。 < ">< font-size: 18px;">测试解决方案 < ">将Raspberry Pi放置在您家中能够感知到他人并录制音频的位置。 < ">当该人出现在Raspberyy Pi面前时,他们应该听到欢迎消息。他们可以在录制音频后离开,而您能够收到由录制音频转录而成的文本短信。 < ">< font-size: 18px;">总结 < ">本文展示了如何使用AWS服务构建安全的语音到文本通知解决方案。如果您在未来的应用场景中需要使用多种不同语言,将语音内容转换为文本,则可以直接集成这套解决方案。 < font-size: 14px; color: rgb(165, 165, 165);">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/ 本篇作者 Vikas Shah Amazon Web Services公司企业级解决方案架构师。他是一位技术爱好者,乐于帮助客户为复杂的业务挑战找到创新型解决方案。他对机器学习、物联网、机器人技术以及存储抱有浓厚兴趣。在业余时间,Vikas喜欢组装机器人、远足和旅行。 Anusha Dharmalingam Amazon Web Services公司解决方案架构师。她对应用程序开发与大数据解决方案充满热情。Anusha与企业客户合作,帮助他们设计、构建并扩展用于实现业务目标的应用程序。 |
上一篇:如何用Skype准确找到客户
下一篇:如何使用Apache Spark与Amazon EMR改善FRTB的内部模型方
基于对传统行业渠道的理解,对互联网行业的渠道我们可以下这样一个定义:一切...
小米应用商店的后台操作和苹果是比较相似的,因为都能填写100字符关键词,允许...
小米的规则目前是在变更中的,但是根据经验小米的搜索排名评分的高低是个很重...
为了恰饭,有时候是要接入一些广告的,所以FB也专门有一个广告的SDK,这就是A...
在 2018 年于旧金山举行的游戏开发者大会上,Amazon Web Services (AWS) 曾宣布,目前世...
关于Facebook Audience Network如何收款的问题,其实官方已经给了详细的步骤。本文主要...
本文介绍了Audience Network对广告载体的质量检查,以及它重点广告形式需要注意的问...
随着iOS开发,作为开发者或公司需要针对iOS App开发涉及的方方面面作出对应的信息...
Facebook和谷歌对出海企业广告渠道都很熟悉,但事实上,在国外还有一些渠道也很...
卖家从做号的第1分钟开始,就一定要想好变现路径是什么?一定要以变现为目的去...
小提示:您应该对本页介绍的“使用AWS Transcribe配合物联网设备构建一套支持多语”相关内容感兴趣,若您有相关需求欢迎拨打我们的服务热线或留言咨询,我们尽快与您联系沟通使用AWS Transcribe配合物联网设备构建一套支持多语的相关事宜。
关键词:使用AWS,Transcribe配合物联网