人形機器人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 ;
}