;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Sistema com IA cria vídeo a partir de uma única foto (imagine as fake news)

Pixabay
Imagem: Pixabay

Aurélio Araújo

Colaboração para Tilt, em São Paulo

19/09/2022 12h15

Imagine criar um vídeo a partir de apenas uma fotografia estática e um texto. Essa é a premissa básica da plataforma Creative Reality Studio, criada pela empresa israelense D-ID.

Basicamente, o software usa inteligência artificial para "encaixar" o som de alguém falando na boca da pessoa registrada na foto.

A ideia, segundo a empresa, é que a tecnologia atenda demandas de áreas como treinamentos corporativos, educação a distância, comunicação empresarial interna e externa, além de marketing e vendas, segundo informações do site TechCrunch.

Isso porque, em vez de preparar um cenário e equipá-lo com material de captação de vídeo e de áudio, basta selecionar uma imagem e a inteligência artificial faz todo o resto.

Como o sistema funciona

Os usuários devem fazer o de uma foto com o rosto da pessoa quem desejam ter como apresentador(a) do vídeo. Há também opções pré-selecionadas de apresentadores pelo próprio Creative Reality Studio.

s do plano mais caro da plataforma ganham a possibilidade de selecionar apresentadores "mais expressivos", com mais opções de expressões faciais e gestos com as mãos.

O som que a inteligência usa para simular a pessoa da foto falando é gerado a partir de um texto digitado pelo usuário ou de um áudio gravado e subido na plataforma. A empresa diz que a 119 idiomas (como inglês, mandarim, espanhol, árabe e afrikaans — um dos idiomas da África do Sul. Não tem em português).

Observe abaixo um exemplo da tecnologia funcionando:

Os interessados podem escolher também o clima do vídeo, entre opções como "feliz", "triste", "empolgado" e "amigável".

"Ler documentos e ar por apresentações pode ser seco e chato. Além disso, é preciso gastar milhares de dólares para contratar atores e criar vídeos educativos. Então, usamos nossa IA para criar apresentadores e tutores e tornar o conteúdo mais engajante e efetivo", explicou Gil Perry, chefe-executivo da D-ID, ao TechCrunch.

Tem potencial de fake news?

Uma preocupação óbvia ao modelo de negócios do Creative Reality Studio está na geração de notícias falsas. A técnica do site é similar aos vídeos deepfake, uma técnica digital em que se usa inteligência artificial para gerar conteúdo com a imagem e até com a voz de uma pessoa que nunca gravou o que está sendo dito.

A disputa eleitoral deste ano no Brasil, inclusive, já está sendo alvo de várias deepfakes.

Para diminuir os riscos, a D-ID diz que tomou algumas medidas. Primeiro, foi colocado um filtro que impede a reprodução de palavrões e xingamentos racistas. Além disso, a IA possui capacidade de reconhecimento de imagem, para impedir que os rostos escolhidos para as gravações sejam de pessoas famosas.

A empresa ainda proíbe a criação de conteúdo político. Caso detecte uma quebra de suas regras, ela alerta que pode suspender a conta responsável por isso e remover o vídeo gerado de sua biblioteca.

São medidas necessárias, mas a criatividade humana ainda será um desafio. Não parece nada difícil que vídeos com rostos de pessoas desconhecidas reando informações falsas como se fossem verdade continuem circulando. E isso pode piorar se elas estiverem associadas a cargos e especialidades que deem a impressão relevância em suas falas — a psicologia explica porque tantas pessoas acreditam em fake news.

Treinando a IA

Segundo o TechCrunch, para os interessados na plataforma, há um período grátis para testes de 14 dias, nos quais se pode gerar até 5 minutos de vídeo. Já a custa US$ 49 dólares (R$ 258,60 na conversão direta) por mês, e dá direito a gerar 15 minutos de vídeo, na melhor qualidade que o site oferece.

A ideia é atrair s, em especial aqueles que estejam dispostos a colaborar para aprimorar ainda mais a IA da plataforma. Os interessados podem fazer o da própria voz, para que a clonagem de áudio fique mais inteligente e precisa.

Em breve, a plataforma, de acordo com a empresa, terá a possibilidade de de vídeo, para que a IA aprenda a imitar melhor o gestual e a entonação de cada apresentador.

Essas características, porém, estão limitadas aos contratos corporativos, para evitar a geração de fake news.