人形机器人Ameca展示了视觉感知能力与声音克隆能力:学会“睁眼看懂世界”,还来了段名人模仿秀。表情是Ameca的一大特点,她会在回答时直视对方,会歪头端详,会垂眼思考,还会微笑。
作者 |
郑远方
世界上最像人的人形机器人,又进化了。
“Ameca,最近怎么样?”“嗯……就勉强活着吧。”——英国机器人公司Engineered
Arts最新视频中,“当家花旦”人形机器人Ameca以这样一个回答开场后,展示了一番视觉感知能力与声音克隆能力。
机器人“睁眼看世界”不是什么新鲜事,而Ameca这次掌握的,是“睁眼看懂世界”能力,即基于视觉的分辨能力。
当研究人员要求Ameca描述所处的房间时,她会在左顾右盼一番后开始发言,中间还夹杂些许“英式嘲讽”:房间的窗户开着,光线太亮、让人睁不开眼;书架上摆着很多书,不知道是真求知还是假学问;还有桌椅,那是生产力工具,也是拖延症帮手……
被问起研究人员手中拿着什么时,Ameca不仅可以精准识别出机器人玩具、医学人头模型,还会加上细节描述,例如“是过去时代的东西”、“有怀旧气息”、“做得很细致”等。
除了视觉能力,Ameca还学会了声音模仿。
在视频的后半部分,Ameca模仿起了摩根•弗里曼、马斯克、海绵宝宝的声音,在每段模仿秀中,还保留了他们各自的说话风格;最后,还按照研究人员要求,来了一段“海绵宝宝声音、特朗普说话风格”的演讲。
在问答全程中,Ameca的眼珠会跟随研究人员的行动而移动,会在回答时直视研究人员,也会歪头端详,会垂眼思考,还会微笑。
这便是Ameca最突出的特点——表情。之前Ameca就曾因为表情逼真、“过于像人”而走红,甚至一度被称为“最像人”、“最先进”的人形机器人。
这次的视频中,只有半身无手版Ameca出场;而在此前的视频中,全身版Ameca还会在对话过程中,配合不同表情作出不同的手势。
不仅如此,Ameca还接入了GPT-3/4、Stable
Diffusion,熟练掌握语言对话能力、绘画能力。
图|Ameca作画过程图|Ameca作品
值得一提的是,在2024年世界移动通信大会(MWC)上,Engineered
Arts还推出了第二代Ameca机器人,由GPT-4提供支持。
虽然在表情展示方面,Ameca作为人形机器人已遥遥领先,但目前它还不能行走。Engineering
Arts计划未来将其改造升级,让其具备行走、奔跑等更多能力。
-->
`,
"script":[]
}
, "gg_rightside": {
"html":`
`,
"script":[{"type":"text/javascript","src":"//widgets.outbrain.com/outbrain.js","async":"async"}]
}
, "gg_duturandom": {
"html":`
`,
"script":[]
}
, "gg_square": {
"html":`
`,
"script":[]
}
, "gg_topbanner": {
"html":`
`,
"script":[]
}
, "gg_middlesquare": {
"html":`
`,
"script":[]
}
, "gg_dutu": {
"html":`
`,
"script":[]
}
, "gg_botline": {
"html":``,
"script":[]
}
, "gg_dututop": {
"html":`
`,
"script":[]
}
, "gg_shipintop": {
"html":`
`,
"script":[]
}
, "gg_inContent": {
"html":`
`,
"script":[]
}
, "gg_shipinrandom": {
"html":``,
"script":[]
}
, "gg_sideSticky": {
"html":`
`,
"script":[]
}
, "gg_bottombanner": {
"html":`
`,
"script":[{"type":"text/javascript","src":"//widgets.outbrain.com/outbrain.js","async":"async"}]
}
, "gg_marquee": {
"html":`
`,
"script":[]
}
}
const adEnv={
"gg_header": {
"html":``,
"script":[{"type":"text/javascript","exec":` var googletag = googletag || {}; googletag.cmd = googletag.cmd || []; var pbjs = pbjs || {}; pbjs.que = pbjs.que || []; `},{"type":"text/javascript","src":"https://adncdnend.azureedge.net/adn-hb/adn.wnx2.js","async":""},{"src":"https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js","async":"","data-ad-client":"ca-pub-7528949385909099"},{"type":"text/javascript","src":"https://adncdnend.azureedge.net/adn-video/WenxuecityPlayer.js","async":"async"}]
}
}
const wxcEnv = {
"base":{
"exe":[],
"src":[
{"src": "/news/js/recommendednews.js","defer":"true"},
{"src":"/js/wxcFunc.js","defer":"true"}
]
},
"func":{
"exe":[
//展示评论
'function showMoreComments(){let n = 1;for(let i=0;i
2){dom.hide();}}$("#showallcomment").show();$("#showlesscomment").hide();};',
],
"src":[
//图片,搜索,QR code
{"src": "/news/js/view.js?v=05132024"},
//计数器
{"src":"//count.wenxuecity.com/service/count/script/do.php?type=news&id=241310&n=0&out=jsval","defer":"true"},
]
}
}
function wxcCode(){
wxcEnv.base.exe.forEach(x=>{
let tag = buildAdcode(x);
document.head.append(tag);
})
wxcEnv.base.src.forEach(src => {
let tag = buildSrc(src)
document.head.append(tag);
});
wxcEnv.func.exe.forEach(x=>{
let tag = buildAdcode(x);
document.body.append(tag);
})
wxcEnv.func.src.forEach(src => {
let tag = buildSrc(src)
document.body.append(tag);
});
}
function adcode(){
let adkey = Object.keys(ads);
adkey.forEach(x=>{
let code = ads[x].html;
let div = document.getElementById(x);
if(div)div.innerHTML = code;
ads[x].script.forEach(s=>{
if(Object.keys(s).indexOf('src')===-1){
let tag = buildAdcode(s.exec);
document.body.append(tag);
}else{
let tag = buildSrc(s);
document.body.append(tag);
}
})
})
}
function baseCode(){
let baseKeys = Object.keys(adEnv);
baseKeys.forEach(x=>{
adEnv[x].script.forEach(s=>{
if(Object.keys(s).indexOf('src')===-1){
let tag = buildAdcode(s.exec);
document.head.append(tag);
}else{
let tag = buildSrc(s);
document.head.append(tag);
}
})
})
}
function buildAdcode(script){
let tag = document.createElement('script');
tag.innerHTML = script;
return tag;
}
function buildSrc(obj){
let keys = Object.keys(obj);
let tag = document.createElement("script");
keys.forEach(key=>{
tag.setAttribute(key, obj[key]);
})
return tag ;
}