当前位置:首页 >评论专栏 >《科学时评》>正文

直播带货又出新骗局?禁止AI带货方能一劳永逸

 2024/12/16 10:07:38 《科学时评》 作者:红网 黄上平 我有话说(0人评论) 字体大小:+

黄上平(湖南师范大学)

“张文宏是不是带货了?”近日,一段冒充张文宏医生的AI合成视频在网络流传,其形象、口型、声音均与张文宏一致,该视频成功借助AI技术欺骗消费者,不少消费者纷纷下单蛋白棒。针对此类乱象,张文宏医生同样苦恼不已,他多次投诉未果,报警也无法制止对方频繁更换账户的“狡猾”手段。

AI合成视频的骗局屡禁不止,探寻其背后的利益逻辑与猖狂根源是问题所在。随着智能化时代的到来,AI合成技术在各大平台纷纷亮相,吸引众多用户使用该平台进行娱乐。AI合成视频技术准入门槛低、操作便捷、账户追踪困难,让一些不法分子嗅到了“骗机”。他们利用虚拟空间数字人身份的隐蔽性,像毒蛇一样穿梭在平台与用户之间,冒充有社会影响力的名人,盈利的同时借助网络隐身服规避法律责任,被侵权人对此无可奈何,只能通过事后发声、呼吁公众等手段降低事件危害程度,具有极大的滞后性。

从“假靳东”到“假张文宏”,老年人成为AI合成视频的重点受害对象。一些老年人分辨不出伪造白岩松的直播带货视频,基于错误认知购买治疗失眠和白发的药物;65岁的老太太与“假靳东”网恋多日后欲从银行贷款200万给自己的明星男友“靳东”拍戏;“百姓直播间”超过30名粉丝出于对张文宏的信任下单“假带货视频”的蛋白棒,老年人不仅下单还转发到很多群聊。面对层出不穷的技术骗局,仅掌握手机基础操作和购买功能老年人,一方面无法识别复杂的网络手段,一方面又具备被骗的资金实力和操作能力,了解防诈骗宣传信息的可能性较低,由此可知,处于技术边缘的老年人无力与技术中端和核心的骗子对抗。

背后的操作者频繁更换账号以逃避责任,唯有禁止AI合成视频带货方能令其“无处遁形”。此类骗局涉及多方侵权,如侵犯名人肖像权、消费者知情权等等,但是因为网络空间的虚拟性,执法机关往往不能将其绳之以法进行惩戒,只能警示消费者不要上当受骗。此外,网络上还有一些视频指导老年人如何分辨AI视频与真人,其实用性、可行性不强。无论是警示还是指导,都不能从根本上解决问题,若任由AI合成视频发酵,商家也会效法不法分子牟利,网络平台将成为“诈骗平台”。不如禁止AI合成技术入驻直播带货平台,提高技术准入门槛,平台与执法部门双管齐下,实时监测AI合成视频动态,把诈骗苗头扼杀在摇篮中,采用传统的主流带货方式,禁止AI合成视频带货方能一劳永逸。

还被造假者一份安宁,还被骗者继续网购的信心,是禁止AI合成技术的应有之义。AI技术的确为人们的生活带来了便利,但对于其违背法律、漠视正义的问题,社会绝不能坐视不理,必须让技术在人类的掌握中向前发展,正如海德格尔所言:“技术是时代的座驾,然而能够驾驭技术从而影响时代进程的,永远是具有主体意识的人。”

版权声明:本文转载仅仅是出于传播信息的需要,并不意味着代表本网站观点或证实其内容的真实性;如其他媒体、网站或个人从本网站转载使用,须保留本网站注明的“来源”,并自负版权等法律责任;作者如果不希望被转载或者联系转载稿费等事宜,请与我们接洽。
element block and removes // previous instances of the identical script. var found = false; for (var child = 0; child < head.childNodes.length; child++) { var control = head.childNodes[child]; if (typeof(control.tagName) == "string") { if (control.tagName.toUpperCase() == "SCRIPT") { if (script.src.length > 0) { if (script.src == control.src) { found = true; break; } } else if (script.innerHTML.length > 0) { if (script.innerHTML == control.innerHTML) { found = true; break; } } } } } if (found) { head.removeChild(control); } var scriptAddedToHead = false; if (typeof script.readyState != "undefined" && !window.opera) { script.onreadystatechange = function() { if (script.readyState != "complete" && script.readyState != "loaded") { return; } else { Anthem_LoadPageScript(result, index + 1); } } } else { if (isExternalScript) // if it's an external script, only execute the next script when the previous one is loaded. { script.onload = function() { Anthem_LoadPageScript(result, index + 1); } } else // I didn't find a way for script blocks to fire some onload event. So in this case directly call the Anthem_LoadPageScript for the next script. { document.getElementsByTagName('head')[0].appendChild(script); scriptAddedToHead = true; Anthem_LoadPageScript(result, index + 1); } } // Now we append the new script and move on to the next script. // Note that this is a recursive function. It stops when the // index grows larger than the number of scripts. if (!scriptAddedToHead) document.getElementsByTagName('head')[0].appendChild(script); } } catch (e) { Anthem_DebugError("Error adding page script to head. " + e.name + ": " + e.message); } } } function Anthem_EvalClientSideScript(result) { if (result.script) { for (var i = 0; i < result.script.length; ++i) { try { eval(result.script[i]); } catch (e) { alert("Error evaluating client-side script!\n\nScript: " + result.script[i] + "\n\nException: " + e); } } } } //Fix for bug #1429412, "Reponse callback returns previous response after file push". //see http://sourceforge.net/tracker/index.php?func=detail&aid=1429412&group_id=151897&atid=782464 function Anthem_Clear__EVENTTARGET() { var form = Anthem_GetForm(); Anthem_SetHiddenInputValue(form, "__EVENTTARGET", ""); } function Anthem_InvokePageMethod(methodName, args, clientCallBack, clientCallBackArg) { Anthem_Clear__EVENTTARGET(); // fix for bug #1429412 return Anthem_CallBack(null, "Page", null, methodName, args, clientCallBack, clientCallBackArg, true, true); } function Anthem_InvokeMasterPageMethod(methodName, args, clientCallBack, clientCallBackArg) { Anthem_Clear__EVENTTARGET(); // fix for bug #1429412 return Anthem_CallBack(null, "MasterPage", null, methodName, args, clientCallBack, clientCallBackArg, true, true); } function Anthem_InvokeControlMethod(id, methodName, args, clientCallBack, clientCallBackArg) { Anthem_Clear__EVENTTARGET(); // fix for bug #1429412 return Anthem_CallBack(null, "Control", id, methodName, args, clientCallBack, clientCallBackArg, true, true); } function Anthem_PreProcessCallBack( control, e, eventTarget, causesValidation, validationGroup, imageUrlDuringCallBack, textDuringCallBack, enabledDuringCallBack, preCallBackFunction, callBackCancelledFunction, preProcessOut ) { var valid = true; if (causesValidation && typeof(Page_ClientValidate) == "function") { valid = Page_ClientValidate(validationGroup); } if (typeof(WebForm_OnSubmit) == "function") { valid = WebForm_OnSubmit(); } if (valid) { var preCallBackResult = true; if (typeof(preCallBackFunction) == "function") { preCallBackResult = preCallBackFunction(control, e); } if (typeof(preCallBackResult) == "undefined" || preCallBackResult) { var inputType = control.getAttribute("type"); inputType = (inputType == null) ? '' : inputType.toUpperCase(); if (inputType == "IMAGE" && e != null) { var form = Anthem_GetForm(); if (e.offsetX) { // IE Anthem_SetHiddenInputValue(form, eventTarget + ".x", e.offsetX); Anthem_SetHiddenInputValue(form, eventTarget + ".y", e.offsetY); } else { // FireFox + ??? var offset = GetControlLocation(control); Anthem_SetHiddenInputValue(form, eventTarget + ".x", e.clientX - offset.x + 1 + window.pageXOffset); Anthem_SetHiddenInputValue(form, eventTarget + ".y", e.clientY - offset.y + 1 + window.pageYOffset); } } if (imageUrlDuringCallBack || textDuringCallBack) { var nodeName = control.nodeName.toUpperCase(); if (nodeName == "INPUT") { if (inputType == "CHECKBOX" || inputType == "RADIO" || inputType == "TEXT") { preProcessOut.OriginalText = GetLabelText(control.id); SetLabelText(control.id, textDuringCallBack); } else if (inputType == "IMAGE") { if (imageUrlDuringCallBack) { preProcessOut.OriginalText = control.src; control.src = imageUrlDuringCallBack; } else { preProcessOut.ParentElement = control.parentElement ? control.parentElement : control.parentNode; if (preProcessOut.ParentElement) { preProcessOut.OriginalText = preProcessOut.ParentElement.innerHTML; preProcessOut.ParentElement.innerHTML = textDuringCallBack; } } } else if (inputType == "SUBMIT" || inputType == "BUTTON") { preProcessOut.OriginalText = control.value; control.value = textDuringCallBack; } } else if (nodeName == "SELECT" || nodeName == "SPAN") { preProcessOut.OriginalText = GetLabelText(control.id); SetLabelText(control.id, textDuringCallBack); } else { preProcessOut.OriginalText = control.innerHTML; control.innerHTML = textDuringCallBack; } } // Disable the control during callback if required control.disabled = (typeof(enabledDuringCallBack) == "undefined") ? false : !enabledDuringCallBack; return true; } else { // Callback cancelled if (typeof(callBackCancelledFunction) == "function") { callBackCancelledFunction(control, e); } return false; } } else { // Validation failed return false; } } function Anthem_PreProcessCallBackOut() { // Fields this.ParentElement = null; this.OriginalText = ''; } function Anthem_PostProcessCallBack( result, control, e, eventTarget, clientCallBack, clientCallBackArg, imageUrlDuringCallBack, textDuringCallBack, postCallBackFunction, preProcessOut ) { if (typeof(postCallBackFunction) == "function") { postCallBackFunction(control, e); } // Re-enable the control if it was disabled during callback control.disabled = false; var inputType = control.getAttribute("type"); inputType = (inputType == null) ? '' : inputType.toUpperCase(); if (inputType == "IMAGE") { var form = Anthem_GetForm(); Anthem_RemoveHiddenInput(form, eventTarget + ".x"); Anthem_RemoveHiddenInput(form, eventTarget + ".y"); } if (imageUrlDuringCallBack || textDuringCallBack) { var nodeName = control.nodeName.toUpperCase(); if (nodeName == "INPUT") { if (inputType == "CHECKBOX" || inputType == "RADIO" || inputType == "TEXT") { SetLabelText(control.id, preProcessOut.OriginalText); } else if (inputType == "IMAGE") { if (imageUrlDuringCallBack) { control.src = preProcessOut.OriginalText; } else { preProcessOut.ParentElement.innerHTML = preProcessOut.OriginalText; } } else if (inputType == "SUBMIT" || inputType == "BUTTON") { control.value = preProcessOut.OriginalText; } } else if (nodeName == "SELECT" || nodeName == "SPAN") { SetLabelText(control.id, preProcessOut.OriginalText); } else { control.innerHTML = preProcessOut.OriginalText; } } if (typeof(clientCallBack) == "function") { clientCallBack(result, clientCallBackArg); } } function Anthem_FireCallBackEvent( control, e, eventTarget, eventArgument, causesValidation, validationGroup, imageUrlDuringCallBack, textDuringCallBack, enabledDuringCallBack, preCallBackFunction, postCallBackFunction, callBackCancelledFunction, includeControlValuesWithCallBack, updatePageAfterCallBack ) { // Cancel the callback if the control is disabled. Although most controls will // not raise their callback event if they are disabled, the LinkButton will. // This check is for the LinkButton. See SourceForge Patch 1639700. if (control.disabled) return; var preProcessOut = new Anthem_PreProcessCallBackOut(); var preProcessResult = Anthem_PreProcessCallBack( control, e, eventTarget, causesValidation, validationGroup, imageUrlDuringCallBack, textDuringCallBack, enabledDuringCallBack, preCallBackFunction, callBackCancelledFunction, preProcessOut ); if (preProcessResult) { var eventType = e.type; Anthem_FireEvent( eventTarget, eventArgument, function(result) { Anthem_PostProcessCallBack( result, control, eventType, eventTarget, null, null, imageUrlDuringCallBack, textDuringCallBack, postCallBackFunction, preProcessOut ); }, null, includeControlValuesWithCallBack, updatePageAfterCallBack ); } } function AnthemListControl_OnClick( e, causesValidation