Ads Top

Sincronia labial em animação com Papagayo

O software de sincronização labial Papagayo até pouco tempo atrás não tinha suporte ao português, devido o mesmo ser open-source tomei a liberdade de adicionar o suporte ao nosso idioma. O suporte aos fonemas são limitados internamente ao uso do set do CMU, advirto que devido a simplificação da fonética convertida em 10 imagens (9 para falar a verdade) dos fonemas de Preston Blair pode não representar perfeitamente a fala por assim dizer.

O Papagayo

É um programa para criar sincronia labial, foi projetado para ajustar a sincronização de falas na animação alinhando fonemas (imagens de boca) com o som gravado por atores reais. Papagayo facilita a criação de "lip sync" para personagens animados, tornando o processo muito simples bastando digitar as palavras faladas (ou copiar e colá-las diretamente do seu roteiro de animação), em seguida, arraste e ajuste as palavras em cima do espectro sonoro (ondas sonoras) até que elas se alinhem com a fala.

O código fonte do software em desenvolvimento pode ser encontrado no Github não sei dizer quando os pacotes distribuídos para usuários finais pela Morevna serão atualizados. Mas se quiser usar agora basta fazer o download do source e copiar os 3 arquivos referentes abaixo nas pastas correspondente no diretório /opt da sua pré-instalação do Papagayo da Morevna em sua distribuição Linux.

/opt/papagayo/breakdowns/init.py
/opt/papagayo/rsrc/languages/portuguese/language.ini
/opt/papagayo//breakdowns/portuguese_breakdown.py


Para fazer a programação do breakdown estudei durante alguns dias as regras de fonética do nosso idioma e tentei cobrir todas elas, mas devido as muitas exceções do idioma algumas poucas palavras terão que ser corrigidas manualmente. Editando o breakdown gerado na timeline do espectro sonoro.

Veja o exemplo com a palavra táxi, que é uma destas exceções:

Papagayo tela

Táxi / T/ A / K / S / I / tem 5 fonemas é uma das varias exceções de palavras que contem a letra x (X neste exemplo tem o som de KS). Vai ser gerado apenas 4 fonemas, pois meu código não trata essa exceção, então basta editar e corrigir o breakdown, clicando com o botão direito em cima do texto em laranja e acrescentar a representação do som k que é "etc". Na imagem logo abaixo você vê o resultado.

Papagayo tela 2

Outra exceção fica por conta de palavras que contenham QU ou GU seguidas de "e ou i" e tenha a letra "u" pronunciada por exemplo, cinquenta e aguentar. Basta executar o procedimento acima da mesma forma e adicionar o breakdown U que é a representação do fonema. Estas são as exceções que consegui identificar que precisam de edição manual, talvez existam mais.

Estive pensando em alternativas para resolver este problema uma delas seria a criação de um arquivo que gere breakdown através de dicionário de palavras como foi feito para o idioma inglês, mas não gosto desta alternativa, pois teria que inserir todas as palavras encontrada no português e converte-las para sua representação em CMU ou o que penso que seria a melhor alternativa o programa suportar um dicionário auxiliar com palavras que não se encaixam na regra de conversão padrão, este dicionário poderia ser importado ou alimentado pelo próprio usuário tornando-o mais preciso.

Obs: é preciso ter instalado o wxpython e pyaudio para o Papagayo funcionar no Linux.

No Ubuntu:

sudo apt-get install python-wxgtk2.8
sudo apt-get install python-pyaudio

Atualização: Alterei o link do Github para a pagina do meu fork para garantir a integridade dos passos deste artigo, pois estão sendo feito algumas alterações de código no fork da Morevna e manterei atualizado este artigo caso tenha alguma alteração ou  criação de pacotes.

Atualização 2: Neste texto Papagayo para o Ubuntu 16.04 publiquei um link para pacote .deb que criei para a nova versão do Ubuntu 16.04 e derivados.

Nenhum comentário:

Cada comentário é apreciado, mas tenha em mente que os comentários são moderados e podem levar algum tempo para aparecer. Todos os comentários de spam serão excluídos.

Tecnologia do Blogger.