使用AWS Transcribe配合物联网设备构建一套支持多语

时间: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与企业客户合作,帮助他们设计、构建并扩展用于实现业务目标的应用程序。

使用AWS Transcribe配合物联网设备构建一套支持多语

上一篇:如何用Skype准确找到客户
下一篇:如何使用Apache Spark与Amazon EMR改善FRTB的内部模型方


版权声明:以上主题为“使用AWS Transcribe配合物联网设备构建一套支持多语"的内容可能是本站网友自行发布,或者来至于网络。如有侵权欢迎联系我们客服QQ处理,谢谢。
相关内容
推荐内容
扫码咨询
    使用AWS Transcribe配合物联网设备构建一套支持多语
    打开微信扫码或长按识别二维码

小提示:您应该对本页介绍的“使用AWS Transcribe配合物联网设备构建一套支持多语”相关内容感兴趣,若您有相关需求欢迎拨打我们的服务热线或留言咨询,我们尽快与您联系沟通使用AWS Transcribe配合物联网设备构建一套支持多语的相关事宜。

关键词:使用AWS,Transcribe配合物联网

关于 | 业务 | 案例 | 免责 | 隐私
客服邮箱:sales@1330.com.cn
电话:400-021-1330 | 客服QQ:865612759
沪ICP备12034177号 | 沪公网安备31010702002418号