作者langrisser19 (lan)
看板Soft_Job
标题Re: [请益] Alexa费用问题
时间Fri Sep 15 13:58:59 2017
基本上
推文的回覆是错的
如果你要的是speech to text
那你没办法透过alexa拿到使用者的完整对话
https://goo.gl/VsmzHQ
你应该先看一下AVS或是alexa的文件
alexa解决的是辨识使用者的意图
告诉你这个意图对应的slot type & value
举个例子,你要开发一个智慧开灯装置
你必须针对这件事定义出一个intention => ControlLight
然後这个控制灯的意图底下可以有对应的slot
像是LightState:on, off
然後给它几个 Sample Utterances
ControlLight Turn {LightState} the light
ControlLight Turn the light {LightState}
https://goo.gl/WYef22
https://goo.gl/f9siVU
那这样不管使用者说了甚麽
从最简单的turn on light
或是 please turn on light
或是 xxx xxx xxxx turn on light xxxx
alexa都可以解析出使用者要打开灯
然後对应到灯的状态是开
alexa就只做到这个程度
也不会跟你收半毛钱
不过你也拿不到使用者当初到底是怎麽说的
後续你可以在endpoint里面设定这个解析结果要发到哪里
可以是lambda或是你自己的server
然後去做对应的处理
会被收钱的是这部分
然後我看你的要求
如果不排斥大陆人的产品
那就用这个吧
http://ai.chumenwenwen.com/pages/document/android/example
※ 引述《checkIO (chec)》之铭言:
: 大家好
: 不知道有没有版友的专案有使用到Amazon Alexa
: 想了解一下面对一般user的使用量跟费用
: 大概会是多少(多少user跟辨识的用途)
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.169.70.78
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1505455143.A.5AC.html
1F:→ checkIO: 如果我不需要知道使用者说了甚麽 只需要辨识出"开灯意图" 09/15 14:04
2F:→ checkIO: 如果我需要ALEXA回传"TURN ON"字串 这样是不需要收钱的? 09/15 14:05
3F:→ checkIO: 喔...是解析的结果...... 09/15 14:05
看不懂你要的东西耶@@?
解析结果是不收费的啊
但是alexa不会告诉你使用者当时到底是怎麽说的
只会把开灯这个结果传给你指定的位置
後面你再根据这个结果去打开灯
如果你是把结果送到lambda,然後透过aws iot去开灯
那你就会被收费
如果你是把结果送到自己的伺服器,然後自己弄个mqtt server去开灯
那你就不会被收费
如果这是你的需求
你也可以去看一下amazon lex,它是alexa的本体,你把alexa左右两个a拿到就是它了
因为alexa的弹性还是没有lex好
举个例子 定饭店 book hotel
你知道系统要完成订饭店这件事,大概需要日期、时间、地点、房型这些资讯
但是使用者说话没有固定的顺序
它可能说我要订纽约9.10号的饭店
或是我要订9.10号的饭店
或是我要订饭店
还是我要订纽约最高级的饭店
这些都是不固定的对话方式,要用alexa解决会很麻烦
但lex自己会根据缺少的资讯,自动跟使用者对话&询问,把需要的东西补齐
而且它不只语音,连文字也支援
就是可以让你做个chatbot的意思了
不过既然它这样厉害
当然就要收费了
https://aws.amazon.com/tw/lex/pricing/
但amazon目前只支援英文跟德文
如果你要中文
就只能用我上面给的问问了
※ 编辑: langrisser19 (1.169.70.78), 09/15/2017 14:31:35
4F:推 bejoe: 确实可透过lambda那文字意图和部份speech to text,我实作过 09/15 14:37
5F:→ bejoe: 然後再送文字资料到client 09/15 14:38
还是你可以分享一下做法
因为alexa解析出的就是intention & slots
你在lambda收到的就已经是辨识完的结果了
所以amazon官方也是这样回答
test页面有一个 voice simulator
https://imgur.com/a/UeRtV
里面可以看到送出的封包根本不会有使用者当初说的话
不知道你是怎麽作到的 @@?
※ 编辑: langrisser19 (1.169.70.78), 09/15/2017 14:48:28
6F:推 bejoe: lex是另一套,跟alexa没直接关系 09/15 14:41
https://aws.amazon.com/tw/lex/faqs/
问:什麽是 Amazon Lex?
Amazon Lex 是一种服务,用於使用语音和文字来建立交谈界面。Amazon Lex 使用与
Alexa 相同的交谈引擎技术支援,
提供高品质的语音辨识和语言理解功能,因此可在新
的和现有应用程式中加入复杂的自然语言「聊天机器人」。Amazon Lex 简化多平台开发
的工作,让您轻松地将语音或文字聊天机器人发布到行动装置和多种聊天服务 (如
Facebook Messenger、Slack 或 Twilio SMS)。与 AWS Lambda、AWS MobileHub 及
Amazon CloudWatch 的原生相互操作性,以及易於整合 AWS 平台上许多其他服务 (包括
Amazon Cognito 和 Amazon DynamoDB),这些特性让机器人开发变得毫不费力。
※ 编辑: langrisser19 (1.169.70.78), 09/15/2017 14:54:15
7F:→ MOONY135: 好棒的分享 09/15 16:04
8F:推 kurtsgm: 推 09/15 16:15
9F:推 genesic: 我试过把整个speech当作一个slot XD 高机率成功 09/15 20:05
10F:→ genesic: 这样子拿到的就是使用者整个完整的speech 09/15 20:05
11F:→ genesic: 当然这个intention不能跟其他intention的关键字冲到 09/15 20:06
要硬干也是可以
但如果是一些语助词呢
就像开灯
偏偏有人就是喜欢说 乾!给我开灯
这样这句话要完整捕捉到,我还真不知道slottype跟例句要怎麽设
而且如果为了包山包海设了一堆句子,那系统误判的机率又更高了
所以重点还是...
如果只是要把声音转文字,那从一开始就不应该用alexa啊
alexa是要帮你把使用者的意图跟关键字自动抓出来
使用者原先说什麽,在这边根本不是重点
重点是使用者的意图才是
※ 编辑: langrisser19 (114.198.170.96), 09/15/2017 20:27:27
12F:推 genesic: 你好像误会我的意思? 因为问题似乎不是出在你说的case 09/15 21:32
13F:→ genesic: 自订slot type,列举的时候多列一点各种字数的句子 09/15 21:36
14F:→ genesic: 然後整个intent就只有一个slot, ex: "{Message}" 09/15 21:38
15F:→ genesic: 我大概有列了7~8个各种不同字数的句子,高机率能match到 09/15 21:39
16F:→ genesic: 当然如果你的case是没有意义的发音,那本来就转不成文字 09/15 21:40
17F:→ genesic: 另外如果是要speech recognition的话,alexa本来就不太适 09/15 21:42
18F:→ genesic: 合XDD 还不如去用microsoft cognitive 09/15 21:43