ES2230290T3 - Animacion de personajes. - Google Patents

Animacion de personajes.

Info

Publication number
ES2230290T3
ES2230290T3 ES01919631T ES01919631T ES2230290T3 ES 2230290 T3 ES2230290 T3 ES 2230290T3 ES 01919631 T ES01919631 T ES 01919631T ES 01919631 T ES01919631 T ES 01919631T ES 2230290 T3 ES2230290 T3 ES 2230290T3
Authority
ES
Spain
Prior art keywords
data
presentation
processor
phoneme
visema
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES01919631T
Other languages
English (en)
Inventor
Jonathan Simon c/o Ananova Limited JOWITT
William James c/o Ananova Limited COOPER
Andrew Robert c/o Ananova Limited BURGESS
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange Personal Communications Services Ltd
Original Assignee
Orange Personal Communications Services Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Orange Personal Communications Services Ltd filed Critical Orange Personal Communications Services Ltd
Application granted granted Critical
Publication of ES2230290T3 publication Critical patent/ES2230290T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Processing of the speech or voice signal to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/06Transformation of speech into a non-audible representation, e.g. speech visualisation or speech processing for tactile aids
    • G10L21/10Transforming into visible information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/06Elementary speech units used in speech synthesisers; Concatenation rules
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/08Text analysis or generation of parameters for speech synthesis out of text, e.g. grapheme to phoneme translation, prosody generation or stress or intonation determination
    • G10L13/10Prosody rules derived from text; Stress or intonation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Processing of the speech or voice signal to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/06Transformation of speech into a non-audible representation, e.g. speech visualisation or speech processing for tactile aids
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Processing of the speech or voice signal to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/06Transformation of speech into a non-audible representation, e.g. speech visualisation or speech processing for tactile aids
    • G10L21/10Transforming into visible information
    • G10L2021/105Synthesis of the lips movements from speech, e.g. for talking heads

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Processing Or Creating Images (AREA)
  • Table Devices Or Equipment (AREA)
  • Developing Agents For Electrophotography (AREA)
  • Details Of Garments (AREA)
  • Surgical Instruments (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

Aparato para la generación de una representación animada de un personaje, comprendiendo el aparato un sistema de procesado provisto de: una entrada para recibir unos datos de entrada etiquetados que incluyen: i.unos datos de contenido que representan un discurso que ha de ser presentado; y, ii. unos datos de presentación que representan una presentación audiovisual que incluye el modo en el cual el discurso ha de ser presentado, un procesador acoplado a la entrada para la generación de datos de acuerdo con una base de tiempos definida, conteniendo los datos: i.unos datos de fonema generados de acuerdo con los datos de contenido; y, ii. unos datos de visema generados de acuerdo con los datos de fonema y los datos de presentación; estando el procesador adaptado además para: iii. modificar los datos de visema de acuerdo con los datos de presentación; iv. generar unos datos de sonido de acuerdo con los datos de fonema; v.generar unos datos de imagen de acuerdo con los datos de visema modificados y los datos de presentación; y, vi. sincronizar la emisión de los datos de sonido e imagen de acuerdo con la base de tiempos definida.

Description

Animación de personajes.
Campo de la invención
La presente invención se refiere a un método para la generación de una representación animada de un personaje utilizando un sistema de procesado y a un aparato para la generación de una representación animada de un personaje. En particular, la presente invención se refiere a un sistema que utiliza unos datos de entrada que comprenden unos datos de contenido y unos datos de presentación, para animar un personaje representativo de una persona, tal como un lector de noticias, un anunciante, un presentador o similares.
Antecedentes de la invención
La animación de personajes se ha obtenido previamente en una diversidad de maneras. El sistema más básico es la animación estándar dibujada a mano, obtenida dibujando un número de cuadros en secuencia y mostrando después los cuadros a alta velocidad para generar la apariencia de movimiento del personaje. Sin embargo, la producción de dichos cuadros requiere mucho tiempo y requiere una gran habilidad para producir la apariencia deseada.
Más recientemente, la animación de personajes ha sido obtenida utilizando sistemas basados en ordenador. Sin embargo, en sistemas como éstos, de nuevo la animación está predeterminada por un artista, requiriendo una gran habilidad y cantidad de trabajo para producir la apariencia deseada.
También se ha obtenido una animación automatizada de personajes que funciona mediante la conversión de un archivo estándar de texto en un discurso y utilizando a continuación unos visemas para animar al personaje. Sin embargo, estos sistemas presentan el inconveniente de que la gama de movimientos que presenta el personaje está limitada, y en particular está normalmente limitada a los movimientos requeridos para presentar los visemas. Cualquier movimiento adicional del personaje debe ser incorporado manualmente después y no puede ser incorporado de manera automática. Adicionalmente, los personajes pueden exhibir sólo una respuesta lineal muy limitada respecto al texto. De acuerdo con lo anterior, cada vez que el personaje lee el texto, la apariencia del personaje es idéntica. Un ejemplo de un sistema de este tipo está descrito en el documento US-A-5.657.426, así como en el documento GB-A-2328849.
Por lo tanto, este sistema no presenta una apariencia muy humana, en la cual el movimiento específico del personaje variaría cada vez que el texto es leído en voz alta. Adicionalmente, cuando no se está leyendo ningún texto el personaje no se mueve, contribuyendo de nuevo a la falta de personalidad humana o de caracterización del personaje.
Sumario de la invención
De acuerdo con la invención, se proporciona un aparato tal como se indica en la reivindicación 1, un método tal como se indica en la reivindicación 30, y unos datos tal como se indica en la reivindicación 29 y en la reivindicación 50, que sincronizan la salida de la información de sonido e imagen de acuerdo con la base de tiempo definida.
La presente invención proporciona un método y un aparato para la generación de una representación animada de un personaje. Esta se obtiene mediante la utilización de unos datos etiquetados que incluyen tanto unos datos de contenido como unos datos de presentación. A continuación, el sistema utiliza esta información para generar unos datos de fonema y visema que representan el discurso que ha de ser presentado por el personaje. Mediante el suministro de los datos de presentación se asegura que se producirá, por lo menos, alguna variación en la apariencia del personaje más allá de los visemas requeridos para aparentar que el personaje habla. Esto contribuye a que el personaje tenga una mayor apariencia de estar vivo.
Los datos de entrada etiquetados pueden ser introducidos manualmente, por ejemplo tecleando un texto en un terminal, o pueden ser obtenidos desde una fuente de datos. Esto permite que el sistema sea utilizado para la presentación automatizada de información provenientes de fuentes de noticias y datos y similares.
El procesador incluye normalmente:
un procesador conversor de texto a voz para la generación de los datos de fonema y los datos de sonido;
un procesador de animación para la generación de los datos de visema y los datos de imagen; y
un analizador para:
analizar los datos etiquetados recibidos;
detectar unos datos de contenido predeterminado que ha de ser presentado de un modo predeterminado;
generar datos de presentación representativos del modo predeterminado; y,
modificar los datos etiquetados recibidos con los datos de presentación generados.
La utilización de procesadores conversores de texto a voz y de animación especializados permite al sistema generar los datos de sonido y los datos de imagen en tiempo real, acelerando por tanto el proceso de animación del personaje. Los datos de sonido y de imagen pueden ser generados al mismo tiempo o en tiempos diferentes, y/o en diferentes ubicaciones, según se requiera. Se apreciará que los procesadores conversores de texto a voz y de animación especializados, pueden estar implementados como un programa dentro de un único procesador, o pueden estar implementados de forma alternativa en distintos componentes de equipos o hardware.
El análisis de los datos etiquetados recibidos permite que los datos de presentación sean agregados, lo que a su vez permite que los datos no etiquetados o etiquetados mínimamente sean procesados por la presente invención. Asimismo, esto permite que un contenido predeterminado sea representado según un modo predeterminado. Adicionalmente, esto permite que el personaje animado acentúe ciertas palabras, tales como números, nombres y negaciones, aunque esto no es esencial para la presente invención.
El sistema de procesado incluirá normalmente un dispositivo de almacenamiento para almacenar datos, el analizador estando acoplado al dispositivo de almacenamiento para obtener una indicación de los datos de contenido predeterminado del mismo. Esto permite que la información referente a las etiquetas que han de ser agregadas sea almacenada de forma central de manera que pueda ser accedida directamente por el analizador. De forma alternativa, la información puede ser obtenida a través de un sistema de comunicaciones, tal como una LAN (Red de área local) o similar, desde un dispositivo de almacenamiento remoto.
El aparato incluye típicamente un procesador lingüístico adaptado para:
analizar los datos de contenido;
determinar los fonemas requeridos para representar los datos de contenido; y,
generar referencias temporales del fonema para cada uno de los fonemas, la referencia temporal del fonema indicando el tiempo en el cual el fonema respectivo debería ser presentado, con respecto a una base de tiempos.
Es preferible utilizar fonemas para generar los datos de sonido que han de ser presentados por el personaje animado ya que esto permite que un pequeño número de unidades elementales de sonido representen la mayoría de sonidos que se necesitarían realizar por el personaje para presentar el discurso. Además, los sistemas de procesado para la determinación de fonemas a partir de texto son bien conocidos y fácilmente implementables.
Adicionalmente, la generación de las referencias temporales del fonema permite la disposición temporal de cada uno de los fonemas que han de ser mantenidos, así como permite la sincronización de las etapas restantes del
proceso.
Típicamente, el procesador lingüístico está adaptado adicionalmente para:
analizar los datos de contenido;
generar un número de etiquetas para representar los datos de presentación; y,
generar referencias temporales de la etiqueta para cada una de las etiquetas, indicando la referencia temporal de la etiqueta el tiempo en el cual el fonema respectivo debería modificar el modo de presentación, con respecto a una base de tiempos.
El uso de referencias temporales de la etiqueta permite mantener la posición temporal de los datos de presentación de forma relativa respecto los datos de fonema. De modo alternativo, pueden utilizarse otras técnicas de sincronización.
Normalmente el procesador lingüístico está acoplado al dispositivo de almacenamiento para obtener una indicación de los fonemas requeridos para representar unas palabras respectivas. En este caso, la indicación tiene normalmente la forma de un conjunto de reglas que especifican cómo los fonemas deben ser determinados a partir del texto. Asimismo, puede disponerse un diccionario para las excepciones que no encajan dentro de estas reglas más generales. Esto proporciona una técnica sencilla para obtener los fonemas en base a los datos recibidos. Sin embargo, puede utilizarse cualquier técnica utilizada en el estado de la técnica.
El procesador conversor de texto a voz incluye preferentemente un procesador de concatenación adaptado para:
determinar los datos de fonema que representan a cada uno de los fonemas; y,
concatenar los datos de fonema de acuerdo con las referencias temporales del fonema para generar unos datos de sonido que representen al discurso.
La utilización de un procesador de concatenación especializado asegura que los datos de fonema, que son obtenidos normalmente desde el dispositivo de almacenamiento, pueden ser combinados fácilmente para formar los datos de sonido requeridos.
Adicionalmente, el procesador de concatenación está asimismo adaptado para modificar los datos de sonido y de fonema de acuerdo con los datos de presentación. Esto permite que la voz audible del personaje sea controlada conjuntamente con la apariencia del personaje. De esta manera, por ejemplo, puede utilizarse un tono, una altura tonal y una velocidad de habla dependiendo de si se supone que el personaje está feliz, triste, serio o similares. Sin embargo, de modo alternativo, la voz audible puede permanecer inalterada independientemente de la apariencia del personaje. Una alternativa adicional es separar las distintas modificaciones de la voz especificadas en los archivos de datos, independientes de los datos de presentación.
El procesador de animación incluye preferentemente un procesador de fonema adaptado para:
obtener los fonemas determinados, y las referencias temporales del fonema asociadas, desde el procesador lingüístico;
determinar los visemas correspondientes a cada uno de los fonemas determinados; y,
determinar una referencia temporal del visema para cada visema de acuerdo con la referencia temporal del fonema del fonema correspondiente.
Debido a que sólo existe un número limitado (48 aproximadamente) de fonemas y un número limitado (20 aproximadamente) de visemas, es relativamente fácil convertir cada fonema en un visema correspondiente. En este caso, utilizar las referencias temporales del visema correspondientes a las referencias temporales del fonema asegura de manera ventajosa la sincronización de los visemas con los fonemas. Esto a su vez asegura que el movimiento de los labios es sincronizado con la producción de sonido para obtener la sincronización de los labios.
El procesador de animación asimismo incluye normalmente un procesador de visema acoplado al dispositivo de almacenamiento, el procesador de visema estando adaptado para obtener unos datos de visema desde el dispositivo de almacenamiento de acuerdo con los visemas determinados, los datos de visema incluyendo un número de parámetros que representan la variación requerida respecto una imagen base de personaje para representar el visema respectivo. La utilización de los datos que representan la variación respecto un rostro de base permite que un amplio margen de configuraciones faciales sean implementadas sin requerir la cantidad de potencia de procesado requerida para generar la representación a partir de cero para cada rostro. Esto ayuda a acelerar el tiempo de proceso permitiendo que los datos de imagen sean generados en tiempo real a medida que los datos de contenido son "leídos" por el personaje.
Preferentemente, el procesador de animación incluye por lo menos un procesador de modificación adaptado para modificar los datos de visema de acuerdo con los datos de presentación. Mediante la modificación de los datos de visema, esto ayuda a variar la apariencia del personaje para hacer que el personaje parezca más que estuviera vivo. Esto se obtiene típicamente mediante la modificación de los parámetros de los datos de visema de acuerdo con los datos de modificación obtenidos desde el dispositivo de almacenamiento.
El procesador de animación incluye normalmente por lo menos un procesador de modificación adaptado para modificar por lo menos una de una expresión, comportamiento y acción especificados. Esto permite que diferentes aspectos de la apariencia del personaje sean alterados.
Preferentemente, se implementa un procesador respectivo para modificar distintamente el comportamiento, la expresión y las acciones. Esto permite que apariencias más generales tales como movimientos globales de la cabeza sean controladas de forma distinta para apariencias específicas tales como sonreír, fruncir el ceño o similares. De esta manera, la apariencia general puede ser triste en cuyo caso el personaje puede parecer triste en general, con una disposición triste de la boca, o similar. Sin embargo, una apariencia específica puede ser una risa o sonrisa y, de esta manera, incluso aunque el personaje tiene la apariencia global de estar triste, esto permite todavía generar una sonrisa. De acuerdo con lo anterior, esto permite la modificación detallada de la apariencia de los personajes tal como se requiere, ayudando por lo tanto a la generación de una imagen realista.
Obtener esto mediante modificación progresiva de los parámetros de los datos de visema permite que las modificaciones de la acción, la expresión y el comportamiento sean implementadas sin excesivas complicaciones. Sin embargo, de forma alternativa, distintas secuencias de imágenes que representan a los visemas, las expresiones, las acciones y los comportamientos pueden ser generadas y combinadas después de una etapa posterior.
Típicamente el o cada procesador de modificación está adicionalmente adaptado para la modificación de los datos de visema de acuerdo con datos pseudo-aleatorios. Esto permite movimientos aleatorios de la cabeza, o apariencias faciales que han de ser incluidas en el sistema, asegurando por lo tanto que la animación del personaje no sea idéntica incluso si está basada en el mismo archivo de datos de entrada para cualquier par de animaciones sucesivas. Esta ayuda reduce la repetición de ciertas palabras, frases o combinaciones de apariencia, ayudando por lo tanto a mejorar la apariencia natural del personaje animado.
El procesador de animación normalmente incluye adicionalmente un procesador de interpolación para interpolar los datos de visema para determinar la apariencia del personaje en tiempos entre los visemas especificados. Esto permite generar una secuencia de imágenes continuas.
Un procesador de renderizado está acoplado al procesador de interpolación para generar unos datos de imagen de acuerdo con los datos de visema interpolados, los datos de imagen representando al personaje presentando el discurso definido por los datos de contenido. En particular, si el sistema de procesado incluye adicionalmente un procesador de vídeo, el procesador de renderizado puede formar parte del procesador de vídeo. Esto permite que los datos de imagen sean renderizados en tiempo real sin utilizar los recursos del procesador principal, ayudando por lo tanto a implementar la invención en tiempo real. El procesador de renderizado puede estar implementado de forma alternativa como un programa dentro del mismo procesador principal, si se dispone de los recursos suficientes.
Típicamente el procesador de vídeo también genera datos de vídeo que representan la secuencia del personaje animado. Esto permite de manera ventajosa que el personaje animado sea visualizado bien como datos de imagen o bien como datos de vídeo, permitiendo que sea visualizado en una amplia gama de diferentes dispositivos de visualización.
Opcionalmente, el sistema puede incluir de manera adicional, una interfaz de red de comunicaciones, que durante su utilización acopla al dispositivo de cálculo a la red de comunicaciones, permitiendo por tanto que la representación de un personaje animado sea transferida a otros sistemas de procesado acoplados a la red de comunicaciones.
En este caso, la entrada puede estar adaptada para recibir datos etiquetados desde una red de comunicaciones, permitiendo que archivos etiquetados externamente sean utilizados en la generación de una secuencia de un personaje animado.
Típicamente el archivo de datos es un archivo XML (Lenguaje de Etiquetado Extensible). Esto es particularmente ventajoso ya que permite que los datos de presentación sean especificados dentro del archivo XML etiquetados con XML. De acuerdo con lo anterior, los datos de contenido que son utilizados para controlar la apariencia del personaje, pueden ser anotados con los elementos apropiados que definen las características de la presentación, que deberían ser implementados a medida que las palabras respectivas son pronunciadas.
El sistema puede ser implementado como un sistema de procesado autónomo. De forma alternativa, el sistema puede ser implementado en una red de comunicaciones, tal como la Internet, una red de área local o amplia (LAN o WAN), o similares, de manera que las imágenes pueden ser generadas de forma central y vistas de forma remota.
Breve descripción de los dibujos
A continuación se describirá con detalle un ejemplo de la presente invención en relación con los dibujos adjuntos, en los cuales:
la figura 1 es un diagrama esquemático de un sistema de procesado adecuado para implementar la presente invención; y,
la figura 2 es un diagrama esquemático del programa implementado en el equipo o hardware representado en la figura 1.
Descripción detallada
La figura 1 muestra un sistema de procesado adecuado para la implementación de la presente invención. El sistema de procesado consiste de un dispositivo de cálculo compuesto de un dispositivo de entrada/salida (I/O) 1, un procesador 2, una memoria 3, un dispositivo de almacenamiento 4, un procesador de vídeo 5, un procesador de sonido 6 y un adaptador de red 7, todos los cuales están conectados entre sí a través de un bus 8. El dispositivo de cálculo puede ser realizado por lo tanto en un ordenador personal, una agenda electrónica, un ordenador portátil estándares, o similares, adaptados con el equipo o hardware gráfico apropiado. Sin embargo, también son posibles implementaciones sobre programas y equipos dedicados. Esto podría ser potencialmente integrado en electrodomésticos y dispositivos de consumo.
Durante su utilización, la tarjeta de red 7 puede estar conectada a una red de comunicaciones 10 para facilitar comunicaciones con unas estaciones terminales adicionales N1, N2 ... Nn. La red de comunicaciones puede ser por lo tanto cualquier forma de red, tal como una LAN, una WAN, una red inalámbrica de comunicaciones, la Internet, o similares.
El programa implementado en el procesador está representado esquemáticamente en la figura 2. Tal como se muestra, los datos etiquetados de entrada son recibidos por el procesador 2 y son transferidos al analizador A1. El analizador funciona para analizar los datos y transferir los resultados al extensor A2, que a su vez extiende los datos antes de transferir los datos al procesador conversor de texto a voz B y al procesador de animación C.
El procesador conversor de texto a voz B incluye un procesador lingüístico B1, un procesador de concatenación B2 y un procesador de sonido B3, tal como se muestra.
El procesador de animación C incluye un procesador de fonema C1, un procesador de visema C2, un procesador de expresión C3, un procesador de comportamiento C4, un procesador de acción C5, un procesador de interpolación C6 y un procesador de renderizado C7, conectados entre sí en secuencia, tal como se muestra. El procesador conversor de texto a voz B y el procesador de animación C funcionan para generar datos de salida de sonido y de imagen respectivamente, que son emitidos desde el procesador 2.
El analizador, el extensor y los procesadores pueden obtener los datos respectivos tal como se muestra en la figura 2. Estos datos de entrada son utilizados durante la generación del personaje animado, tal como se explicará con mayor detalle a continuación. Los datos de entrada pueden ser introducidos directamente, por ejemplo, por un teclado, obtenidos desde un archivo local en el dispositivo de almacenamiento 4, o desde una fuente remota a través de la red 10.
El funcionamiento del sistema mostrado en las figuras 1 y 2 será descrito ahora.
Durante su utilización, el procesador 2 utiliza los datos etiquetados para generar una representación animada de un personaje. Los datos etiquetados pueden o bien ser recibidos en el dispositivo de entrada/salida (I/O) 1, tal como se representa con I, o de forma alternativa los datos etiquetados pueden ser recibidos desde la red 10 a través del adaptador de red 7. Además, por supuesto, los datos etiquetados pueden ser almacenados en el dispositivo de almacenamiento 4. Los datos etiquetados pueden ser transferidos a continuación al procesador 2 a través del bus 8.
Los datos etiquetados son típicamente suministrados al procesador 2 en la forma de un archivo XML que incluye unos datos de contenido que representan las palabras que han de ser pronunciadas por el personaje, junto con los datos de presentación que representan el modo en que es presentado el discurso. En este caso, los datos de contenido normalmente tienen la forma de texto correspondiente a las palabras que han de ser pronunciadas, aunque pueden utilizarse notaciones numéricas o de otros tipos.
Por el contrario, los datos de presentación pueden incluir varias formas diferentes. La forma principal de datos de presentación utiliza elementos predefinidos o etiquetas para etiquetar los datos de contenido que han de ser pronunciados por el personaje animado. De esta manera, en este caso, las etiquetas XML son utilizadas para modificar el modo en que se presenta el texto que cubren.
Además de esto, ciertas secuencias de caracteres y ciertas palabras pueden funcionar asimismo como datos etiquetados. De esta manera, por ejemplo, la presencia de tres caracteres periódicos puede hacer que el personaje haga una pausa antes de pasar a la siguiente palabra representada por los datos de contenido.
Los datos de presentación incluyen generalmente elementos referidos a, aunque no limitados a, el contexto, el tono, la emoción, la expresión, las acciones, o otros eventos de presentación. Además de esto, sin embargo, los datos de presentación pueden especificar otros elementos de la presentación, tales como unas producciones audiovisuales.
De esta manera, por ejemplo, se pueden definir parámetros de presentación persistentes y que pertenecen a la duración de la presentación. Por ejemplo, las dimensiones de la imagen de salida pueden ser especificadas como un parámetro de presentación. De forma alternativa, pueden ser utilizados unos eventos de presentación que corresponden con una indicación de tiempo que tiene lugar en un tiempo relativo a su posición en los datos de contenido. Por ejemplo, un cambio en la vista de la cámara virtual puede ser incluido como un evento de presen-
tación.
De acuerdo con lo anterior, los datos de entrada pueden ser considerados como una forma de secuencia de instrucciones que contiene el contenido y las indicaciones asociadas para permitir la producción de una presentación animada.
Estos datos de entrada pueden ser introducidos manualmente, pueden ser obtenidos de una fuente de datos, o ser obtenidos como una combinación de entradas manuales y automatizadas. De manera similar, el etiquetado puede ser aplicado manualmente, o generado por un sistema externo.
El protocolo de etiquetado realmente utilizado variará dependiendo de la implementación específica de la invención. Sin embargo, un ejemplo del esquema de etiquetado utilizado por la implementación real se muestra en el Apéndice A, juntamente con una secuencia de instrucciones a título de ejemplo de historias de noticia a ser leídas en voz alta. El ejemplo mostrado especifica diferentes acciones y aspectos de comportamiento del personaje animado. Sin embargo, estas especificaciones no son concretas pero son bastante indicativas de un comportamiento general que es implementado a continuación por el procesador 2.
Tal como se muestra en este ejemplo, las etiquetas XML son utilizadas para especificar varias acciones, eventos y emociones, que el personaje ha de interpretar cuando lee el texto asociado en voz alta. En este ejemplo, el texto asociado es el texto comprendido por la etiqueta dada. De esta manera, en el ejemplo del Apéndice A, la frase "American Beauty recibió también el premio al mejor actor, guión y fotografía" sería presentado en un modo feliz debido a la presencia de la etiqueta de emoción "felicidad".
Durante su utilización, tal como se ha mencionado anteriormente, el archivo XML es recibido por el analizador, que funciona para analizar los datos XML. El analizador utiliza unos datos de configuración a1 para interpretar los contenidos del archivo XML y para proporcionar la configuración por defecto.
Esto permite la presentación por defecto de los datos que han de ser agregados al archivo, tal como corresponde. Esto puede incluir por ejemplo, una indicación de la ubicación a la cual se ha de emitir la representación animada de un personaje o el formato requerido de la salida. Asimismo, pueden agregarse datos de presentación más complicados referentes a la animación en curso del personaje.
De esta manera, por ejemplo, normalmente es deseable poner un mayor énfasis sobre ciertas palabras a medida que son presentadas por el personaje. En particular, palabras tales como nombres, sustantivos, negaciones y números son típicamente acentuadas debido a que normalmente tienen mayor importancia que otras palabras en el texto. El analizador estará por lo tanto adaptado para detectar y agregar a continuación unos datos de presentación apropiados que hagan que las palabras sean acentuadas a medida que son presentadas.
Además de esto, si el archivo contiene algunos o ningún dato de presentación, el analizador puede agregar datos de presentación rudimentarios de acuerdo con los datos de configuración. Esto asegura que incluso si el archivo recibido no incluye ninguna etiqueta de presentación, el personaje animado seguirá mostrando al menos algunas características por defecto.
Los datos de presentación y de contenido son transferidos a continuación al extensor que puede hacer varias substituciones y extensiones sobre los datos según se requiera. Esto se obtiene utilizando unos datos de automatización a2, que pueden especificar cualquier cambio requerido sobre los datos.
Una vez que esto se ha completado, los datos de entrada son traducidos en datos de contenido que representan al texto del discurso que ha de ser presentado y los datos o etiquetas de presentación representan cambios de estado a medida que se producen en el discurso. De esta manera, los datos de presentación incluirán no sólo las etiquetas incluidas originalmente en el archivo XML, sino que incluirán asimismo unas etiquetas adicionales, que representan aspectos de la presentación indicados por la presencia de ciertos caracteres o palabras.
Los datos de contenido y los datos de presentación son transmitidos a continuación al procesador conversor de texto a voz B. Varias implementaciones de estos sistemas están disponibles comercialmente, aunque todos funcionan de la misma forma general.
En primer lugar, las palabras que han de ser presentadas son descompuestas por el procesador lingüístico B1 en unidades elementales de sonido, o fonemas, de una duración dada. A medida que se encuentra cada fonema, se anota una referencia temporal de la posición temporal del fonema en relación a una base de tiempos.
Los fonemas que han de ser presentados por el personaje son determinados mediante la exploración de los datos de contenido recibidos y haciendo una correlación de éstos con los datos de un diccionario de excepciones b1, el cual indica los fonemas requeridos para representar a las palabras que han de ser pronunciadas.
Los datos de presentación pueden ser utilizados para controlar el modo en los cuales se presentan los fonemas. De esta manera, el volumen, la altura tonal y la velocidad pueden ser modificados directa o indirectamente de acuerdo con los datos de presentación. Los datos de presentación pueden asimismo, introducir directa o indirectamente una interrupción o pausa en los datos de sonido.
De esta manera, por ejemplo, si el tipo de tono es "divertido", entonces las palabras serán pronunciadas generalmente más deprisa que si el tono es de tipo "serio". De acuerdo con lo anterior, la referencia temporal de los fonemas individuales será alterada de acuerdo con esta información.
La inflexión es asimismo proporcionada en los datos de presentación. Esta será aplicada a menudo a palabras concretas tales como nombres, sustantivos, negaciones y números, que han sido etiquetadas por el analizador. La inflexión dada a cada fonema variará de nuevo dependiendo del tipo de tono especificado. De esta manera, un tipo de tono "divertido" resultará en un discurso que suena más optimista que el tipo de tono "serio".
El procesador lingüístico puede asimismo proporcionar datos de retroalimentación referentes a características lingüísticas halladas en los datos de contenido, tales como los límites de una oración.
Además de proporcionar unas referencias temporales para cada fonema, las referencias temporales pueden ser generadas asimismo para cada una de las etiquetas y elementos que representan los datos de presentación, y otros datos de retroalimentación.
Los datos que representan los fonemas determinados, los datos de presentación, cualquier dato de retroalimentación y las referencias temporales asociadas, son transferidos, a continuación, al procesador de fonema C1, en el procesador de animación C, tal como se explicará con mayor detalle a continuación.
Una indicación de los fonemas y sus respectivas referencias temporales es transferida hacia el procesador de concatenación B2. El procesador de concatenación accede a los datos de fonema b2, que representan cada uno de los fonemas y concatena estos datos de fonema para formar unos datos que representan la secuencia de fonemas que han de ser presentados por el personaje.
En esta implementación, los datos de fonema están formados de sonido muestreado juntamente con unos datos apropiados de configuración, pero pueden utilizarse sistemas alternativos.
Se apreciará que alguna modificación de los datos de fonema puede ser requerida para asegurar que todos los fonemas encajan conjuntamente en secuencia, y para asegurar que todos los datos de presentación son presentados correctamente.
Estos datos son transferidos a continuación al procesador de sonido B3 que funciona para generar datos de sonido que, cuando son presentados por un sistema de reproducción de sonido, corresponden a las palabras que han de ser pronunciadas por el personaje. El procesador de sonido transfiere asimismo los datos de tiempo al procesador de interpolación C6, tal como se describirá con mayor detalle a continuación.
Los datos de sonido son emitidos desde el procesador conversor de texto a voz B y transferidos a la salida designada en los datos de configuración, tal como se explicará con mayor detalle a continuación.
El procesador de animación C funciona para generar una secuencia de imágenes del personaje animado. Tal como se ha mencionado anteriormente, los datos que representan los fonemas determinados, los datos de presentación, cualquier dato de retroalimentación y las referencias temporales asociadas, son recibidas por el procesador de fonema C1 desde el procesador lingüístico B1.
El procesador de fonema C1 utiliza la indicación de los fonemas para determinar los visemas relacionados. Típicamente, el número de visemas reconocibles es inferior al número de fonemas reconocibles. Aproximadamente de 10 a 20 visemas pueden proporcionar resultados aceptables, mientras que pueden requerirse sobre unos 40 fonemas. Diferentes fonemas pueden resultar por lo tanto en la emisión de visemas idénticos.
De acuerdo con lo anterior, una tabla de consulta (LUT) de fonema a visema puede ser utilizada para especificar un visema correspondiente a cada fonema. Otras técnicas pueden ser utilizadas también para reducir el número de visemas requeridos para proporcionar resultados aceptables.
El procesador de fonema C1 accede a la tabla de consulta de fonema a visema y para cada fonema especifica un visema correspondiente. El procesador de fonema C1 determina por lo tanto los visemas con referencias temporales que corresponden a cada fonema en la secuencia de fonemas generada.
Una indicación de los visemas que han de ser utilizados es transferida al procesador de visema C2. El procesador de visema utiliza esta información para acceder a los datos de visema c2. Los datos de visema, que tienen típicamente la forma de un número de parámetros, definen la configuración facial del personaje cuando el visema tiene que ser presentado. Esto se define típicamente en términos de una variación a partir de una configuración facial de base.
Además de la determinación de los visemas correspondientes a los fonemas utilizados para construir las palabras que han de ser presentadas, la configuración facial puede ser modificada adicionalmente de acuerdo con los datos de presentación. Esto permite que el personaje muestre acciones, expresiones y otras características de comportamiento definidas por los datos de presentación.
Esto es obtenido mediante la utilización de las referencias temporales de los visemas y de los datos de presentación para determinar que visemas han de ser modificados de acuerdo con qué dato de presentación, para representar una expresión, comportamiento o acción apropiados.
Para obtenerlo, los datos de visema son presentados al procesador de expresión C3, al procesador de comportamiento C4 y al procesador de acción C5. Esto funciona para modificar aspectos respectivos de la apariencia del personaje para asegurar que se ha generado una representación que parezca que está vivo. En cada procesador C3, C4, C5 los datos de presentación son utilizados para acceder a los respectivos datos morfológicos de expresión, comportamiento y acción c3, c4, c5 que definen las modificaciones sobre la apariencia del personaje.
Los datos de presentación pueden especificar la modificación absoluta o relativa de la apariencia visual. De esta manera, los datos relativos especificarán típicamente una modificación de los parámetros en los datos de visema desde un nivel existente, mientras que un valor absoluto establecerá el parámetro a un nivel especificado.
De esta manera, una etiqueta de expresión puede estar asociada con parámetros que definen adicionalmente la configuración facial del personaje, típicamente definida en términos de variación respecto a una configuración facial de base.
Las expresiones generales pueden estar especificadas de acuerdo con unas proporciones de emociones básicas tales como alegría, tristeza, ira, miedo, disgusto y sorpresa. De esta manera, una etiqueta de expresión para alegría podría, por ejemplo, especificar una variación que hace que el personaje aparezca sonriendo. La etiqueta de expresión puede especificar un nivel como un parámetro, produciendo por lo tanto una sonrisa de un cierto grado.
Un elemento de presentación puede especificar múltiples parámetros de presentación, permitiendo un control sofisticado de la presentación utilizando un etiquetado relativamente escaso. Múltiples expresiones de diferentes grados pueden ser superpuestas, permitiendo la creación de expresiones faciales complejas. Esto permite la creación de una amplia variedad de apariencias faciales. De esta manera, se apreciará que el visema utilizado para cada sonido variará dependiendo del grado en el que la etiqueta especifica la alegría, la tristeza o similares.
Además de las expresiones faciales, los datos de presentación pueden especificar diferentes acciones o gestos que son implementados por los procesadores de comportamiento y acción C4, C5. Esto permite manipular de forma independiente características faciales, por ejemplo, levantar la ceja o hacer que el personaje guiñe el ojo. Las acciones y los gestos, tales como movimientos de cabeza y de cuerpo, pueden ser asimismo iniciados, así como la modificación de la orientación de los elementos del personaje, tales como el ángulo de la cabeza.
Estas acciones pueden ser especificadas en términos de cambios con respecto al tiempo, permitiendo que un grado de comportamiento o de interpretación sea representado en el personaje. Las acciones pueden ser invocadas explícitamente como resultado de unos datos de presentación etiquetados producidos como resultado de los datos de contenido o generados automáticamente.
Por ejemplo, una etiqueta para especificar una acción de guiño en los datos de entrada haría que el personaje apareciera guiñando en ese punto del discurso que ha de ser presentado. De forma alternativa, la presencia de una palabra acentuada, tal como una negación, haría que el personaje moviese ligeramente la cabeza en ese punto del discurso que ha de ser presentado.
Diferentes reglas pueden ser empleadas para modificar la aplicación de diferentes parámetros de acuerdo con el contexto actual. Por ejemplo, la tasa de parpadeo puede aumentar si el estado actual del personaje está definido como uno de ira. Los datos de base del personaje, modificados por los datos de visema, los datos de expresión, los datos de comportamiento y los datos de acción son utilizados para generar datos de imagen que representan el personaje en un momento particular. De esta manera, una etiqueta de expresión para alegría podría, por ejemplo, especificar una variación que hace que el personaje aparezca sonriendo.
Las expresiones o acciones pueden ser asimismo modificadas de acuerdo con la presencia de una o más palabras predeterminadas, que serán identificadas por el analizador y etiquetadas apropiadamente, tal como se ha descrito anteriormente.
Además de las variaciones destacadas anteriormente, los procesadores de expresión, comportamiento y acción pueden implementar un comportamiento pseudo-aleatorio. Esto asegura de forma efectiva que para los mismos datos de entrada, la apariencia del personaje para dos animaciones sucesivas cualesquiera, pueden ser diferentes, aumentando por lo tanto la naturalidad aparente de la presentación animada.
Esto es obtenido agregando un grado de aleatorización en los parámetros contenidos en la secuencia de visemas. El nivel de este comportamiento aleatorio está controlado dentro de niveles predefinidos para asegurar que el personaje permanece tal que parece que está vivo. Esto asegura algún grado de variación en la presentación que no depende de los datos de entrada.
Por ejemplo, un comportamiento definido puede especificar que el personaje realizará una pausa y tomará un respiro después de una frase. Este comportamiento puede ser modificado de modo pseudo-aleatorio, de manera que no es aplicado cada vez, de manera que el espectador no tiene la sensación de que los mismos procedimientos son repetidos una y otra vez.
Los rasgos de comportamiento característicos, tales como un parpadeo involuntario, pueden por lo tanto ser iniciados de forma periódica. Comportamientos de este tipo pueden continuar incluso cuando el personaje no está hablando, resultando en una apariencia más natural.
La combinación de unos datos de contenido, unos datos de presentación y un comportamiento automático produce una gama compleja de variación. La combinación de efectos que pueden ser obtenidos a partir de etiquetados de presentación limitados resulta en un número virtualmente indefinido de posibles secuencias visuales.
Los datos de presentación, además del etiquetado referente al personaje, pueden especificar otros elementos de la presentación. Esto incluye, pero no está limitado a, eventos y parámetros de producción audiovisual.
Un parámetro de presentación es persistente y pertenece a la duración de la presentación. Por ejemplo, las dimensiones de la imagen de salida pueden ser especificadas como un parámetro de presentación.
Un evento de presentación corresponde a una indicación de tiempo que se produce en un tiempo relativo a su posición en los datos de contenido. Por ejemplo, un cambio en la vista de una cámara virtual puede ser incluido como un evento de presentación.
Los datos de visema, una vez modificados tal como se indica anteriormente, son transferidos a continuación al procesador de interpolación C6. En cuanto a los datos de tiempo asociados con cada visema, el estado del personaje puede ser determinado con respecto al tiempo para el fonema que ha de ser presentado. El procesador de interpolación C6 utiliza a continuación los parámetros de los datos de visema para interpolar entre los visemas y calcular los parámetros que representan la apariencia visual de las posiciones del rostro intermediadas a aquellas definidas por esos visemas definidos. De acuerdo con lo anterior, esto genera una secuencia de parámetros representativos de la apariencia facial del personaje, que varía a lo largo del tiempo.
La interpolación es realizada de manera que las imágenes serán generadas de acuerdo con, o aproximándose a, una base de tiempos o tasa de fotogramas dadas. Mediante la interpolación de la modificación de los datos de personaje a lo largo del tiempo, el estado del personaje puede ser determinado para cualquier tiempo en la presentación.
Tal como será apreciado por una persona experta en la materia, la interpolación es realizada de acuerdo con los datos de tiempo recibidos desde el procesador de sonido para asegurar que los fonemas o visemas generados son generados en los tiempos correspondientes para asegurar la sincronización de los labios del personaje.
El procesador de interpolación secuencia todos los parámetros conjuntamente para generar una única secuencia de animación, que es transferida al procesador de renderizado C7 para generar la secuencia de imágenes.
La producción de imágenes por parte del procesador de renderizado utiliza procesos estándar y procedimientos empleados a medida en animación por ordenador. De esta manera, la representación del personaje es típicamente almacenada como datos geométricos tridimensionales, aunque alternativamente también pueden utilizarse datos bidimensionales. Esto representa típicamente un modelo abstracto por ordenador del personaje en un estado neutral.
Los datos geométricos son típicamente transformados matemáticamente de acuerdo con el visema, los datos de expresión y animación, utilizando unas técnicas estándar empleadas convencionalmente en animación por ordenador.
El procesador de renderizado puede estar constituido completamente de un programa implementado en el procesador 2. Sin embargo, preferentemente, por lo menos una parte del procesador de renderizado está implementado dentro del procesador de vídeo 5. En este caso, las instrucciones y la geometría requeridas para cada imagen que han de ser renderizados son calculadas por el procesador 2 y son transferidas al procesador de vídeo 5 a través del bus 8.
El procesador de vídeo funciona a continuación para renderizar y texturizar una imagen en tiempo real utilizando un equipo o hardware diseñado para este fin. Diferentes dispositivos de aceleración gráfica para realizar este fin están disponibles de forma generalizada, permitiendo que la salida sea generada en tiempo real, o por encima o por debajo del tiempo real de acuerdo con las capacidades del hardware, y de los requerimientos de la aplicación concreta.
El procesador de vídeo 5 produce típicamente datos de imagen en la memoria. Los datos de imagen pueden ser visualizados inmediatamente como una imagen, almacenados en un archivo, o transmitidos sobre una red de comunicaciones para su visualización inmediata o posterior.
Los datos de sonido generados mediante el procesador conversor de texto a voz B pueden asimismo ser emitidos directamente desde el dispositivo de cálculo transfiriéndolos a través del adaptador de sonido 6, a un altavoz 12 conectado. De forma alternativa, los datos de sonido pueden ser almacenados en el dispositivo de almacenamiento 4, o transferidos a través de una red para su posterior reproducción.
Se comprenderá que en este caso, el procesador 2 puede ser adaptado de manera ventajosa para combinar los datos de sonido con datos o bien de imagen o bien de vídeo, para generar un único archivo que contiene tanto la animación como la secuencia adjunta de sonido. De esta manera, por ejemplo, los archivos de vídeo digital del personaje animado pueden ser producidos para su almacenamiento o su transferencia a ubicaciones remotas.
Un experto en la materia apreciará que, teniendo en cuenta que los datos pueden ser transferidos en un número de formas diferentes, ello permite que el personaje animado sea presentado en un número de diferentes tipos de dispositivo. De esta manera, el personaje animado puede ser presentado en un televisor o en un dispositivo similar. De forma alternativa, el personaje animado podría ser presentado en la Internet, en un teléfono móvil, en un asistente personal de datos (tal como un ordenador de mano).
A este respecto, será por lo tanto posible que usuarios remotos soliciten la reproducción de cierta información tales como noticias o similares. La información es utilizada por el dispositivo de cálculo para generar datos que definen la representación animada de un personaje. Estos datos pueden ser transferidos a continuación al usuario remoto, permitiendo al usuario remoto visualizar la animación del personaje en un terminal remoto, tal como una estación final, un teléfono móvil, un terminal inalámbrico, o similares.
Apéndice A
El siguiente documento XML proporciona un ejemplo de cómo puede ser aplicado el etiquetado de unos datos de contenido. Esta muestra está destinada simplemente a demostrar el principio. En la práctica, se pueden emplear diferentes esquemas de etiquetado, y el etiquetado puede ser significativamente más rico.
1
2
\vskip1.000000\baselineskip
El ejemplo comienza con una declaración estándar que indica que es un documento XML, y que el documento cumple por sí mismo las convenciones de un etiquetado XML bien constituido.
El elemento <cabecera> del documento especifica los parámetros de <salida> para la presentación y proporciona una referencia para un archivo <escena> que contiene detalles de la escena y el personaje que ha de ser presentado. Estos elementos son opcionales y simplemente sobreescriben cualquier configuración por defecto.
El elemento <cuerpo> del documento contiene el recordatorio de la presentación y los datos de contenido.
Un elemento <historia> con el atributo "noticias" especifica que la sección incluida es una historia de noticia. Esta información es utilizada por el sistema para implementar ciertos parámetros que pertenecen a la presentación de historias de noticia, de forma contrapuesta a digamos, historias deportivas.
Un elemento <tono> con el atributo "optimista" indica que la sección incluida es de naturaleza optimista, por ejemplo, de forma contrapuesta a ser seria o pesimista. Esta información es utilizada por el sistema para especificar el comportamiento general del personaje durante el contenido que el elemento cubre.
Cualquier contenido que no está incluido dentro de una <etiqueta> es considerado como texto que ha de ser presentado. Por lo tanto la presentación comenzará con las palabras "El Oscar a la Mejor Película", presentado en el estilo de una historia de noticia y será de tono optimista.
Los nombres propios, tales como "American Beauty", reconocidos ya sea mediante el uso de mayúsculas o mediante un análisis lingüístico puede recibir una acentuación especial, que resulta en un énfasis verbal y en correspondientes indicaciones visuales.
La puntuación elíptica en el texto (.) indica que ha de introducirse una pausa en este punto. Este es un ejemplo de presentación implícita de etiquetado que está incluida en el mismo texto, de forma contrapuesta a los elementos de etiquetado explícitos.
El elemento <imagen> especifica la ubicación del archivo de una imagen que ha de ser presentada en este punto. En este caso, la imagen será mostrada hasta la etiqueta de cierre </img>.
El elemento <emoción> especifica en este caso un atributo de "felicidad". Esta información es utilizada para modificar el comportamiento del personaje durante la duración del contenido cubierto por el elemento. Por ejemplo, el personaje puede sonreír para indicar una expresión de felicidad.
El elemento <acción> especifica la ubicación de un archivo que describe una acción que ha de ser realizada por el personaje en este punto. Por ejemplo, el personaje puede mirar hacia abajo en este punto, rompiendo la impresión de contacto visual con el espectador. La acción puede tener una duración implícita. Opcionalmente, la duración prevista de una acción puede ser especificada de forma explícita.
Se observará a partir de este ejemplo sencillo que un sistema puede proporcionar parte o toda la información de etiquetado para controlar la presentación. No es necesario por tanto proporcionar tal información de forma explícita.
Un sistema externo puede proporcionar parte o toda la información de etiquetado para controlar la presentación. Por lo tanto, no es necesario disponer este tipo de información de forma explícita.
Se apreciará que a diferencia del etiquetado para una salida simple de texto o gráfica, el texto que es pronunciado tiene una duración inherente. Por lo tanto, el etiquetado de la presentación tiene un significado cronológico.
Mientras que, por ejemplo, las instrucciones HTML para una página web controlan típicamente el formato, la estructura o la tipografía, aquí las instrucciones tienen un valor temporal con respecto al texto, en cuanto al punto donde aparecen, y la duración supuesta por cada texto que cubren.
Se apreciará que, con una gama dada de elementos expresivos y adecuadamente diseñados, ello proporciona un sistema sintáctico mediante el cual el texto puede tener un etiquetado impuesto para ofrecer una presentación que resulte apropiada para el contenido semántico.

Claims (50)

1. Aparato para la generación de una representación animada de un personaje, comprendiendo el aparato un sistema de procesado provisto de:
una entrada para recibir unos datos de entrada etiquetados que incluyen:
i.
unos datos de contenido que representan un discurso que ha de ser presentado; y,
ii.
unos datos de presentación que representan una presentación audiovisual que incluye el modo en el cual el discurso ha de ser presentado,
un procesador acoplado a la entrada para la generación de datos de acuerdo con una base de tiempos definida, conteniendo los datos:
i.
unos datos de fonema generados de acuerdo con los datos de contenido; y,
ii.
unos datos de visema generados de acuerdo con los datos de fonema y los datos de presentación;
estando el procesador adaptado además para:
iii.
modificar los datos de visema de acuerdo con los datos de presentación;
iv.
generar unos datos de sonido de acuerdo con los datos de fonema;
v.
generar unos datos de imagen de acuerdo con los datos de visema modificados y los datos de presentación; y,
vi.
sincronizar la emisión de los datos de sonido e imagen de acuerdo con la base de tiempos definida.
2. Aparato según la reivindicación 1, en el que los datos de presentación comprenden unos elementos seleccionados de entre un grupo que incluye el contexto, el tono, la historia, la emoción, la expresión, la acción y otros eventos de una presentación audiovisual.
3. Aparato según la reivindicación 2, en el que los datos de presentación incluyen un elemento de tono que especifica el comportamiento general del personaje durante el contenido que el elemento cubre.
4. Aparato según la reivindicación 2, en el que los datos de presentación incluyen un elemento de historia que especifica que el contenido incluido es un cierto tipo de historia, el tipo de historia suponiendo ciertos parámetros que pertenecen a la presentación de ese tipo de historia.
5. Aparato según cualquiera de las reivindicaciones 2 a 4, en el que unos elementos de los datos de presentación comprenden unas etiquetas para etiquetar los datos de contenido.
6. Aparato según cualquiera de las reivindicaciones anteriores, en el que el procesador incluye un analizador para:
i.
analizar los datos de entrada etiquetados recibidos;
ii.
detectar unos datos de contenido predeterminados que han de ser presentados de un modo predeterminado;
iii.
generar unos datos de presentación representativos de un modo predeterminado; y,
iv.
modificar datos etiquetados recibidos con los datos de presentación generados.
7. Aparato según la reivindicación 6, en el que los datos de presentación generados comprenden unas etiquetas para etiquetar los datos de entrada recibidos.
8. Aparato según cualquiera de las reivindicaciones anteriores, en el que el procesador incluye un procesador conversor de texto a voz para la generación de los datos de fonema y los datos de sonido, y un procesador de animación para la generación de los datos de visema y los datos de imagen.
9. Aparato según cualquiera de las reivindicaciones 6 a 8, en el que el sistema de procesado comprende además un dispositivo de almacenamiento para almacenar, estando el analizador acoplado al dispositivo de almacenamiento para obtener una indicación del contenido predeterminado del mismo.
10. Aparato según la reivindicación 9, en el que los datos de contenido predeterminados incluyen palabras que son nombres, sustantivos, negaciones y números.
11. Aparato según cualquiera de las reivindicaciones 8 a 10, en el que el procesador conversor de texto a voz incluye un procesador lingüístico adaptado para:
analizar los datos de contenido;
determinar los fonemas requeridos para representar los datos de contenido; y,
generar unas referencias temporales del fonema para cada uno de los fonemas, indicando las referencias temporales del fonema el tiempo en el que los respectivos fonemas deberían ser presentados con respecto a la base de tiempos.
12. Aparato según la reivindicación 11, en el que el procesador lingüístico está adaptado además para:
analizar los datos de presentación;
generar unas etiquetas que representan los datos de presentación; y
generar unas referencias temporales de la etiqueta para cada una de las etiquetas, indicando la referencia temporal del fonema el tiempo en el que las respectivas etiquetas deberían modificar el modo de presentación con respecto a la base de tiempos.
13. Aparato según la reivindicación 11 ó 12, en el que el procesador lingüístico está acoplado al dispositivo de almacenamiento para obtener una indicación de los fonemas requeridos para representar unas palabras respectivas.
14. Aparato según cualquiera de las reivindicaciones 11 a 13, en el que el procesador conversor de texto a voz incluye un procesador de concatenación adaptado para:
determinar unos datos de fonema que representan a cada uno de los fonemas; y,
concatenar los datos de fonema de acuerdo con las referencias temporales del fonema para la generación de unos datos de sonido que representan al discurso.
15. Aparato según la reivindicación 14, en el que el procesador de concatenación está acoplado al dispositivo de almacenamiento para obtener la duración del fonema del mismo de acuerdo con los fonemas determinados.
16. Aparato según cualquiera de las reivindicaciones 11 a 15, en el que el procesador de animación incluye un procesador de fonema adaptado para:
obtener determinados fonemas, y las referencias temporales del fonema asociadas desde el procesador lingüístico;
determinar unos visemas que corresponden a cada uno de los fonemas determinados; y,
determinar una referencia temporal de visema para cada visema de acuerdo con la referencia temporal del fonema del fonema correspondiente.
17. Aparato según la reivindicación 16, en el que el procesador de fonema está acoplado al dispositivo de almacenamiento para obtener datos de traducción del mismo, indicando los datos de traducción un visema asociado con cada uno de los fonemas, utilizando el procesador de fonema los datos de traducción para determinar los visemas de acuerdo con los fonemas determinados.
18. Aparato según la reivindicación 17, en el que el procesador de animación incluye un procesador de visema acoplado al dispositivo de almacenamiento, estando el procesador de visema adaptado para obtener unos datos de visema desde el dispositivo de almacenamiento de acuerdo con los visemas determinados, incluyendo los datos de visema un número de parámetros que representan la variación requerida a partir de una imagen de base del personaje, para representar el visema respectivo.
19. Aparato según la reivindicación 18, en el que el procesador de animación incluye por lo menos un procesador de modificación adaptado para modificar los datos de visema de acuerdo con los datos de presentación.
20. Aparato según la reivindicación 19, en el que el o cada procesador de modificación está acoplado al dispositivo de almacenamiento para obtener datos de modificación del mismo, utilizando el o cada procesador de modificación los datos de modificación para modificar los parámetros de los datos de visema.
21. Aparato según la reivindicación 19 ó 20, en el que el o cada procesador de modificación está adaptado para modificar por lo menos uno de una expresión, comportamiento y acción especificados.
22. Aparato según cualquiera de las reivindicaciones 19 a 21, en el que el o cada procesador de modificación está adaptado además para modificar los datos de visema de acuerdo con unos datos pseudo-aleatorios.
23. Aparato según cualquiera de las reivindicaciones 18 a 22, en el que el procesador de animación comprende además un procesador de interpolación para interpolar los datos de visema con el fin de determinar la apariencia del personaje en tiempos entre los visemas especificados.
24. Aparato según la reivindicación 23, en el que el sistema de procesado comprende además un procesador de renderizado acoplado al procesador de interpolación para la generación de unos datos de imagen de acuerdo con los datos de visema interpolados, representando los datos de imagen el personaje que presenta el discurso definido por los datos de contenido.
25. Aparato según la reivindicación 24, en el que el sistema de procesado incluye además un procesador de vídeo, formando parte el procesador de renderizado del procesador de vídeo.
26. Aparato según la reivindicación 25, en el que el procesador de vídeo genera unos datos de vídeo que representan la secuencia del personaje animado.
27. Aparato según cualquiera de las reivindicaciones anteriores, en el que el sistema de procesado incluye además una interfaz de red de comunicaciones, que durante su utilización acopla el dispositivo de cálculo a una red de comunicaciones, permitiendo por lo tanto que la representación de un personaje animado sea transferida a otros sistemas de procesado acoplados a la red de comunicaciones.
28. Aparato según la reivindicación 27, en el que durante su utilización la entrada está adaptada para recibir los datos etiquetados desde la red de comunicaciones.
29. Sonido e imagen sincronizados emitidos por un aparato según cualquiera de las reivindicaciones anteriores.
30. Método para la generación de una representación animada de un personaje que utiliza un sistema de procesado, comprendiendo el método:
recibir unos datos de entrada etiquetados que incluyen:
unos datos de contenido que representan un discurso que ha de ser presentado; y,
unos datos de presentación que representan una presentación audiovisual que incluye el modo en el cual el discurso ha de ser presentado;
generar unos datos de acuerdo con una base de tiempos definida, incluyendo los datos:
unos datos de fonema generados de acuerdo con los datos de contenido; y,
unos datos de visema generados de acuerdo con los datos de fonema y los datos de presentación;
modificar los datos de visema de acuerdo con los datos de presentación;
generar unos datos de sonido de acuerdo con los datos de fonema;
generar unos datos de imagen de acuerdo con los datos de visema modificados y los datos de presentación; y,
sincronizar la emisión de los datos de sonido e imagen de acuerdo con la base de tiempos definida.
31. Método según la reivindicación 30, en el que los datos de presentación comprenden elementos seleccionados de entre un grupo que incluye el contexto, el tono, la historia, la emoción, la expresión, la acción y otros eventos de una presentación audiovisual.
32. Método según la reivindicación 31, en el que los datos de presentación incluyen un elemento de tono que especifica el comportamiento general del personaje durante el contenido que el elemento cubierto.
33. Método según la reivindicación 31, en el que los datos de presentación incluyen un elemento de historia que especifica que el contenido incluido es un cierto tipo de historia, el tipo de historia suponiendo ciertos parámetros que pertenecen a la presentación de ese tipo de historia.
34. Método según cualquiera de las reivindicaciones 31 a 33, en el que unos elementos de los datos de presentación comprenden unas etiquetas para etiquetar los datos de contenido.
35. Método según cualquiera de las reivindicaciones 30 a 34, en el que el método comprende además:
analizar datos de entrada etiquetados recibidos;
detectar unos datos de contenido predeterminados que han de ser presentados de un modo predeterminado;
generar unos datos de presentación representativos de un modo predeterminado; y,
modificar los datos etiquetados recibidos con los datos de presentación generados.
36. Aparato según la reivindicación 35, en el que los datos de presentación generados comprenden unas etiquetas para etiquetar los datos de entrada recibidos.
37. Método según cualquiera de las reivindicaciones 35 ó 36, en el que el método de generación de los datos de fonema comprende:
analizar los datos de contenido;
determinar los fonemas requeridos para representar los datos de contenido; y,
generar unas referencias temporales del fonema para cada uno de los fonemas, las referencias temporales del fonema indicando el tiempo en el que los respectivos fonemas deberían ser presentados con respecto a la base de tiempos.
38. Método según cualquiera de las reivindicaciones 35 a 37, en el que el método de generación de los datos de fonema comprende:
analizar los datos de contenido;
determinar los fonemas requeridos para representar los datos de contenido;
generar unas referencias temporales del fonema para cada uno de los fonemas, indicando las referencias temporales del fonema el tiempo en el que el fonema debería ser presentado con respecto a la base de tiempos.
39. Método según la reivindicación 38, en el que el método comprende:
analizar los datos de presentación;
generar un número de etiquetas que representan a los datos de presentación; y,
generar unas referencias temporales de la etiqueta para cada una de las etiquetas, indicando la referencia temporal del fonema el tiempo en el que las respectivas etiquetas deberían modificar el modo de presentación con respecto a la base de tiempos.
40. Método según la reivindicación 38 ó 39, en el que el método de determinación de los fonemas comprende utilizar los datos de contenido analizados para acceder a un diccionario, indicando el diccionario los fonemas requeridos para representar unas palabras respectivas.
41. Método según cualquiera de las reivindicaciones 37 a 40, en el que el método de generación de los datos de fonema comprende además:
utilizar cada uno de los fonemas determinados para obtener unos datos de fonema respectivos; y
concatenar los datos de fonema de acuerdo con las referencias temporales del fonema para la generación de unos datos de sonido que representan al discurso.
42. Método según cualquiera de las reivindicaciones 38 a 41, en el que el método comprende además modificar los datos de fonema de acuerdo con los datos de presentación.
43. Método según cualquiera de las reivindicaciones 37 a 42, en el que el método de generación de los datos de visema comprende:
determinar unos visemas que corresponden a cada uno de los fonemas determinados; y,
determinar una referencia temporal de visema para cada visema de acuerdo con la referencia temporal del fonema del fonema correspondiente; y,
utilizar el visema para obtener los datos de visema.
44. Método según la reivindicación 43, en el que los visemas son determinados mediante el acceso a los datos de traducción de acuerdo con los fonemas determinados, indicando los datos de traducción un visema correspondiente a cada fonema.
45. Método según la reivindicación 43 ó 44, en el que los datos de visema incluyen un número de parámetros que representan la variación requerida a partir de una imagen de base del personaje para representar el visema respectivo.
46. Método según cualquiera de las reivindicaciones 43 a 45, en el que el método comprende además modificar los datos de visema mediante la modificación de los parámetros de acuerdo con los datos de presentación, siendo modificados los datos de visema para representar por lo menos uno de una expresión, comportamiento o acción especificados.
47. Método según cualquiera de las reivindicaciones 43 a 46, en el que los datos de visema son modificados además de acuerdo con un comportamiento pseudo-aleatorio.
48. Método según cualquiera de las reivindicaciones 43 a 47, en el que el método comprende además la interpolación de los datos de visema para determinar la apariencia del personaje en tiempos entre los visemas especificados.
49. Método según la reivindicación 48, en el que el método comprende además utilizar los datos de visema interpolados para generar unos datos de imagen que representan al personaje que presenta el discurso definido por los datos de contenido.
50. Sonido e imagen sincronizados generados de acuerdo con el método según cualquiera de las reivindicaciones 30 a 49.
ES01919631T 2000-04-06 2001-04-06 Animacion de personajes. Expired - Lifetime ES2230290T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB0008537.3A GB0008537D0 (en) 2000-04-06 2000-04-06 Character animation
GB0008537 2000-04-06

Publications (1)

Publication Number Publication Date
ES2230290T3 true ES2230290T3 (es) 2005-05-01

Family

ID=9889396

Family Applications (1)

Application Number Title Priority Date Filing Date
ES01919631T Expired - Lifetime ES2230290T3 (es) 2000-04-06 2001-04-06 Animacion de personajes.

Country Status (10)

Country Link
US (1) US6772122B2 (es)
EP (1) EP1269465B1 (es)
JP (1) JP2003530654A (es)
CN (1) CN1221942C (es)
AT (1) ATE278237T1 (es)
AU (1) AU4669201A (es)
DE (1) DE60105995T2 (es)
ES (1) ES2230290T3 (es)
GB (1) GB0008537D0 (es)
WO (1) WO2001078067A1 (es)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6975988B1 (en) * 2000-11-10 2005-12-13 Adam Roth Electronic mail method and system using associated audio and visual techniques
US6661418B1 (en) 2001-01-22 2003-12-09 Digital Animations Limited Character animation system
US7663628B2 (en) * 2002-01-22 2010-02-16 Gizmoz Israel 2002 Ltd. Apparatus and method for efficient animation of believable speaking 3D characters in real time
US7257538B2 (en) * 2002-10-07 2007-08-14 Intel Corporation Generating animation from visual and audio input
WO2004100128A1 (en) * 2003-04-18 2004-11-18 Unisay Sdn. Bhd. System for generating a timed phomeme and visem list
US7577636B2 (en) 2003-05-28 2009-08-18 Fernandez Dennis S Network-extensible reconfigurable media appliance
JP2005064939A (ja) * 2003-08-14 2005-03-10 Nec Corp アニメーション機能を有する携帯電話端末およびその制御方法
US20050054442A1 (en) * 2003-09-10 2005-03-10 Anderson Peter R. Gaming machine with audio synchronization feature
EP1671277A1 (en) * 2003-09-30 2006-06-21 Koninklijke Philips Electronics N.V. System and method for audio-visual content synthesis
US20060009978A1 (en) * 2004-07-02 2006-01-12 The Regents Of The University Of Colorado Methods and systems for synthesis of accurate visible speech via transformation of motion capture data
US7599838B2 (en) * 2004-09-01 2009-10-06 Sap Aktiengesellschaft Speech animation with behavioral contexts for application scenarios
US7512537B2 (en) * 2005-03-22 2009-03-31 Microsoft Corporation NLP tool to dynamically create movies/animated scenes
US20080313130A1 (en) * 2007-06-14 2008-12-18 Northwestern University Method and System for Retrieving, Selecting, and Presenting Compelling Stories form Online Sources
US20090044112A1 (en) * 2007-08-09 2009-02-12 H-Care Srl Animated Digital Assistant
JP4586063B2 (ja) * 2007-12-18 2010-11-24 ソニー エレクトロニクス インク 端末装置
US8224652B2 (en) * 2008-09-26 2012-07-17 Microsoft Corporation Speech and text driven HMM-based body animation synthesis
US8477103B2 (en) 2008-10-26 2013-07-02 Microsoft Corporation Multi-touch object inertia simulation
US8466879B2 (en) * 2008-10-26 2013-06-18 Microsoft Corporation Multi-touch manipulation of application objects
US9191639B2 (en) 2010-04-12 2015-11-17 Adobe Systems Incorporated Method and apparatus for generating video descriptions
US9600843B2 (en) 2012-05-03 2017-03-21 Geneva Technologies, Llc Methods and systems for showing perspective in market data
US9035955B2 (en) 2012-05-16 2015-05-19 Microsoft Technology Licensing, Llc Synchronizing virtual actor's performances to a speaker's voice
US9035970B2 (en) 2012-06-29 2015-05-19 Microsoft Technology Licensing, Llc Constraint based information inference
US9317971B2 (en) 2012-06-29 2016-04-19 Microsoft Technology Licensing, Llc Mechanism to give holographic objects saliency in multiple spaces
US9384737B2 (en) 2012-06-29 2016-07-05 Microsoft Technology Licensing, Llc Method and device for adjusting sound levels of sources based on sound source priority
US9105210B2 (en) 2012-06-29 2015-08-11 Microsoft Technology Licensing, Llc Multi-node poster location
CN104424955B (zh) * 2013-08-29 2018-11-27 国际商业机器公司 生成音频的图形表示的方法和设备、音频搜索方法和设备
US20150287403A1 (en) * 2014-04-07 2015-10-08 Neta Holzer Zaslansky Device, system, and method of automatically generating an animated content-item
US10204379B2 (en) 2014-11-10 2019-02-12 Geneva Technologies, Llc Methods, apparatus, and systems for curve trading
CN107330961A (zh) * 2017-07-10 2017-11-07 湖北燿影科技有限公司 一种文字影音转换方法和系统
US10699705B2 (en) * 2018-06-22 2020-06-30 Adobe Inc. Using machine-learning models to determine movements of a mouth corresponding to live speech
KR102116315B1 (ko) * 2018-12-17 2020-05-28 주식회사 인공지능연구원 캐릭터의 음성과 모션 동기화 시스템
WO2020170441A1 (ja) * 2019-02-22 2020-08-27 ソニー株式会社 情報処理装置、情報処理方法、およびプログラム
CN110503942A (zh) * 2019-08-29 2019-11-26 腾讯科技(深圳)有限公司 一种基于人工智能的语音驱动动画方法和装置
CN112002301A (zh) * 2020-06-05 2020-11-27 四川纵横六合科技股份有限公司 一种基于文本的自动化视频生成方法
KR102546532B1 (ko) * 2021-06-30 2023-06-22 주식회사 딥브레인에이아이 발화 영상 제공 방법 및 이를 수행하기 위한 컴퓨팅 장치

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5878396A (en) * 1993-01-21 1999-03-02 Apple Computer, Inc. Method and apparatus for synthetic speech in facial animation
US5657426A (en) * 1994-06-10 1997-08-12 Digital Equipment Corporation Method and apparatus for producing audio-visual synthetic speech
US5734794A (en) * 1995-06-22 1998-03-31 White; Tom H. Method and system for voice-activated cell animation
US5880788A (en) * 1996-03-25 1999-03-09 Interval Research Corporation Automated synchronization of video image sequences to new soundtracks
JP4037455B2 (ja) 1996-03-26 2008-01-23 ブリティッシュ・テレコミュニケーションズ・パブリック・リミテッド・カンパニー 画像合成
GB2328849B (en) 1997-07-25 2000-07-12 Motorola Inc Method and apparatus for animating virtual actors from linguistic representations of speech by using a neural network
JP4236815B2 (ja) * 1998-03-11 2009-03-11 マイクロソフト コーポレーション 顔合成装置および顔合成方法
US6366885B1 (en) * 1999-08-27 2002-04-02 International Business Machines Corporation Speech driven lip synthesis using viseme based hidden markov models

Also Published As

Publication number Publication date
CN1221942C (zh) 2005-10-05
DE60105995T2 (de) 2005-08-11
AU4669201A (en) 2001-10-23
ATE278237T1 (de) 2004-10-15
EP1269465B1 (en) 2004-09-29
US6772122B2 (en) 2004-08-03
JP2003530654A (ja) 2003-10-14
GB0008537D0 (en) 2000-05-24
DE60105995D1 (de) 2004-11-04
CN1426577A (zh) 2003-06-25
EP1269465A1 (en) 2003-01-02
US20030149569A1 (en) 2003-08-07
WO2001078067A1 (en) 2001-10-18

Similar Documents

Publication Publication Date Title
ES2230290T3 (es) Animacion de personajes.
Lee et al. Nonverbal behavior generator for embodied conversational agents
Cosatto et al. Lifelike talking faces for interactive services
US20120130717A1 (en) Real-time Animation for an Expressive Avatar
WO2018132721A1 (en) Method and system for implementing three-dimensional facial modeling and visual speech synthesis
US20100182325A1 (en) Apparatus and method for efficient animation of believable speaking 3d characters in real time
Granström et al. Audiovisual representation of prosody in expressive speech communication
KR101089184B1 (ko) 캐릭터의 발화와 감정표현 제공 시스템 및 방법
Wang et al. Assembling an expressive facial animation system
DeCarlo et al. Specifying and animating facial signals for discourse in embodied conversational agents
Albrecht et al. " May I talk to you?:-)"-facial animation from text
Čereković et al. Multimodal behavior realization for embodied conversational agents
López-Colino et al. Spanish sign language synthesis system
CN115311731B (zh) 一种手语数字人的表情生成方法和装置
Elliott et al. A framework for non-manual gestures in a synthetic signing system
Beard et al. MetaFace and VHML: a first implementation of the virtual human markup language
Perng et al. Image talk: a real time synthetic talking head using one single image with chinese text-to-speech capability
López-Colino et al. Hybrid paradigm for Spanish sign language synthesis
Smid et al. Autonomous speaker agent
Godenschweger et al. Modeling and generating sign language as animated line drawings
Ye et al. CSLML: a markup language for expressive Chinese sign language synthesis
Glauert et al. Virtual human signing as expressive animation
Escher et al. User interactive MPEG-4 compatible facial animation system
Wojdel et al. Intelligent system for semiautomatic facial animation
Gustavsson et al. Verification, validation and evaluation of the Virtual Human Markup Language (VHML)