WO2007096691A2 - Generating a representation of a dancer dancing to music - Google Patents

Generating a representation of a dancer dancing to music Download PDF

Info

Publication number
WO2007096691A2
WO2007096691A2 PCT/IB2006/000906 IB2006000906W WO2007096691A2 WO 2007096691 A2 WO2007096691 A2 WO 2007096691A2 IB 2006000906 W IB2006000906 W IB 2006000906W WO 2007096691 A2 WO2007096691 A2 WO 2007096691A2
Authority
WO
WIPO (PCT)
Prior art keywords
dancer
data structure
music
generating
defines
Prior art date
Application number
PCT/IB2006/000906
Other languages
French (fr)
Inventor
Mikko Heikkinen
Kari Laurila
Original Assignee
Nokia Corporation
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 Nokia Corporation filed Critical Nokia Corporation
Priority to PCT/IB2006/000906 priority Critical patent/WO2007096691A2/en
Publication of WO2007096691A2 publication Critical patent/WO2007096691A2/en

Links

Classifications

    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/2053D [Three Dimensional] animation driven by audio data
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/80Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
    • A63F2300/8047Music games

Definitions

  • Embodiments of the present invention relate to generating a representation of a dancer dancing to music.
  • they relate to methods, systems, devices and computer programs for generating a representation of a dancer dancing to music .
  • Music players may have displays that show abstract animations that look interesting e.g., Windows media player and Winamp come bundled with several such animations.
  • the problem with these animations is that while they look interesting they are abstract in nature and don't closely relate to the music.
  • 'dancer' is used in this document to mean a articulated (jointed) object that moves with the rhythm of music.
  • the term 'human dancer' is used to mean an animated person that moves with the rhythm of music.
  • a 'dancer' may be a 'human dancer' or some other type of dancer such as an animal or machine.
  • a method of generating a representation of a dancer dancing to music having beats comprising: storing a first data structure that defines movements of a dancer; storing a second data structure that defines an appearance of a dancer; and generating, with successive beats of the music, an image representing a dancer wherein the first data structure determines a pose of the represented dancer and the second data structure determines the appearance of the represented dancer.
  • an image' encompasses the generation of an image at a beat but also generation of an image close to a beat. Close in this context means at the first point immediately preceding a beat or immediately following a beat at which an image is generated according to a predetermined schedule.
  • the first data structure may have a standard format that enables the exchange of one first data structure with another first data structure to change the movements of the represented dancer.
  • the second data structure my also have a standard format that enables the exchange of one second data structure with another second data structure to change the appearance of the dancer representation.
  • the first data structure may be portable.
  • the second data structure may be portable.
  • the first data structure and the second data structure may be independently portable.
  • the first data structure may be editable by a user.
  • the second data structure may be editable by a user.
  • the first data structure and the second data structure may be independently editable by a user.
  • the first data structure may comprise structured data specifying, for each one a plurality of time instances, the position in space of each of a plurality of predetermined dancer body parts at the time instance.
  • the time instances may be regularly spaced or may have variable spacing.
  • the music may have a music tempo defined by its beats.
  • the first data structure may define a plurality of poses adopted at first intervals by a dancer as the dancer dances with a dance tempo.
  • the generation of a new image representing a dancer may occur after each second time interval, where the second interval is the first interval scaled by the ratio of the music tempo to the dance tempo.
  • the first interval may be regular or variable.
  • the generated images may be dependent upon a telephone caller identifier.
  • the generated images may be dependent upon ambient music.
  • Ambient music means music that is present in the surroundings of the system generating the representation of a dancer that has not been produced by the system.
  • a system for generating a representation of a dancer dancing to music having beats comprising: a memory storing a first data structure that defines movements of a dancer and a second data structure that defines an appearance of a dancer; and a generator for generating, with successive beats of the music, an image representing a dancer wherein the first data structure determines a pose of the represented dancer and the second data structure determines the appearance of the represented dancer.
  • a computer program for generating a representation of a dancer dancing to music having beats comprising program instruction which when loaded into a processor provide: means for accessing data within a first data structure that defines movements of a dancer; means for accessing data within a second data structure that defines an appearance of a dancer; and means for generating, with successive beats of the music, an image representing a dancer wherein the first data structure determines a pose of the represented dancer and the second data structure determines the appearance of the represented dancer.
  • image generation may occur more frequently.
  • a method of generating a representation of a dancer dancing to music having a music tempo comprising: storing data that defines a plurality of poses adopted at first intervals by a dancer as the dancer dances with a dance tempo; and generating, using the stored data, a new image representing a dancer after each second time interval, wherein the second interval is the first interval scaled by the ratio of the music tempo to the dance tempo
  • a method of generating a representation of a dancer dancing to music comprising: storing data that defines a plurality of poses adopted by a dancer as the dancer dances; and generating, using the stored data, a series of images representing a dancer wherein the generated images are dependent upon detected environment information.
  • the detected environment information may be a telephone caller identifier or ambient music, for example.
  • Fig. 1 schematically illustrates a system for controlling a computer generated visualization of a dancer
  • Fig. 2 schematically illustrates a method of generating a representation of a dancer dancing to music.
  • Figure 1 schematically illustrates a system 10 for controlling a computer generated visualization of a dancer.
  • the system comprises: a processor 2, a display 8 and a memory 4 storing computer program instructions 6, a dance model database 12 and a dancer model database 14.
  • the processor 2 is arranged to write to and read from the memory 4 and to control the output of the display 8.
  • the computer program instructions 6 define a dancer visualization software application.
  • the computer program instructions 6, when loaded into the processor 2, provide the logic and routines that enables the system 10 to perform the method illustrated in Fig 2.
  • the computer program instructions 6 may arrive at the electronic device via an electromagnetic carrier signal or be copied from a physical entity such as a computer program product, a memory device or a record medium such as a CD-ROM or DVD.
  • the system 10 will typically be part of an electronic device such as a personal digital assistant, a personal computer, a mobile cellular telephone, a personal music player etc.
  • the dance model database 12 stores a plurality of independent dance models as independent data structures 13.
  • a dance model defines a 'dance clip' which is an ordered sequence of poses adopted by a dancer.
  • a pose can be defined using a dance vector v to specify the position in space of each of a plurality of predetermined dancer body parts.
  • An ordered set of dance vectors ⁇ v: v(1), v(2), v(3)....v(m) ⁇ that has a vector v(i) for each one a plurality of regularly spaced time instances / is used to define the 'dance clip'.
  • the dance model also records information about the rate at which poses change (the dance tempo DT) and information about the time interval separating sequential vectors in the ordered set of vectors (sample rate SR).
  • a dance model data structure 13 is schematically illustrated in Fig. 2. It typically comprises the following fields: a) a dance tempo (DTo) field, that defines the tempo of the dance clip b) a dance length (DL) field that specifies the length of the dance clip c) a movement field for the set of vectors ⁇ v ⁇ d) a sample rate field for the sample rate (SR).
  • DTo dance tempo
  • DL dance length
  • SR sample rate
  • the dance model data structure 13 may also comprise additional fields that, for example, identify musical start and end times or contain musical time signature information, dance style information or music style information.
  • a common standard 'skeleton' model is used as a basis for each dance model. That is, the same predetermined body parts are specified by the components of a vector v(i) in different dance models i.e. the vectors v of each dance model have the same format and span the same vector space. It should also be appreciated that is not necessarily essential to provide a value for every component of a vector v(i) as it may be possible to interpolate or generate components.
  • a common standard model is required for each different 'skeleton'.
  • a human dancer will have a different skeleton, to a dog dancer, which will have a different skeleton to an earth excavator dancer. It is therefore desirable to use variable standard skeletons, where the dance model indicates which one of the standard skeletons is being used.
  • the standard skeleton model enables a dancer's movement to be determined by selection of an appropriate dance model data structure 13.
  • the exchange of a current dance model data structure for another different dance model data structure changes the dancer's movement but does not affect the dancer's appearance.
  • Each dance model data structure 13 can be transferred independently into and out of the database 12 as illustrated by transfer block 30 in Fig. 2.
  • a data structure 13 can, for example, be downloaded from a web-site, uploaded to a website, transferred from one device or storage device to another etc.
  • Each dance model data structure 13 and therefore each dance model is therefore independently portable.
  • a new dance model can be created by a user by creating a new dance model data structure 13 and storing it in the dance model database 12.
  • the dance vectors can be created using motion capture hardware and software or alternatively generated with a computer program.
  • an existing dance model may be varied by editing the existing dance model data structure 13 for that dance model and saving the new data structure in the dance model database 12. This functionality is schematically illustrated in Fig. 2 by block 32.
  • the dancer model database 14 stores a plurality of independent dancer models as independent data structures 15.
  • a dancer model defines the visual appearance of a dancer.
  • the dancer model determines the body generated around the moving skeleton, defined by the dance model.
  • the body may be generated in any one of a number of standard fashions such as using interconnected polygons.
  • the 'skeleton' is a common standard model, it is possible to use any dancer model with any dance model. This allows one to 'mix and match' any dance model with any dancer model.
  • a particular dancer model is associated with a particular standard skeleton. If there are a number of variable standard skeletons, then the dancer model should identify the skeleton type it is suitable for so that dance and dancer models can be matched.
  • a dancer model data structure 15 may typically define one or more of the following attributes of a dancer: male/female; ethnicity; dress style; facial characteristics. It should be appreciated that a common standard 'appearance' model is used as a basis for each dancer model. That is, there is a sematic convention for specifying the dancer attributes.
  • the standard appearance model enables a dancer's appearance to be determined by selection of an appropriate dancer model data structure 15.
  • the exchange of a current dancer model data structure for another different dancer model data structure changes the dancer's appearance but does not affect the dancer's movement.
  • Each dancer model data structure 15 can be transferred independently into and out of the database 14 as illustrated by transfer block 40 in Fig. 2.
  • a data structure 15 can, for example, be downloaded from a web-site, uploaded to a website, transferred from one device or storage device to another etc.
  • Each dancer model data structure 15 and therefore each dancer model is therefore independently portable.
  • a new dancer model can be created by a user by creating a new dancer model data structure 15 and storing it in the dancer model database 12. Also an existing dancer model may be varied by editing the existing dancer model data structure 15 for that dancer model and saving the new data structure 15 in the dancer model database 14. This functionality is schematically illustrated in Fig. 2 by block 42.
  • FIG. 2 A method of generating a representation of a dancer dancing to music in the display 8 by the processor 2 is illustrated in Fig. 2.
  • the method requires the definition of a 'current' dancer model and a 'current' dance model. These current models are used to generate a representation of a dancer dancing to music.
  • the current dance model defines the dancer's movement and the current dancer model defines the dancer's appearance.
  • the selection of the current dance model is schematically illustrated at block 50 in Fig. 2.
  • the selection may be based upon current context information 51.
  • the context information may be, for example, a user input command 53 that selects or specifies the current dance model.
  • the selection may be alternatively automatic, that is, without user intervention.
  • the context information may be, for example, metadata 52 provided with the music track or derived by processing the music track. This metadata may indicate the music genre, keywords from the lyrics, time signature etc.
  • the automatic selection of the current dance model may be based on the metadata.
  • the context information may be, for example, environmental information that is detected from radio or sound waves in the environment of the system 10.
  • the context environmental information may be metadata derived by processing ambient music detected via a microphone 54.
  • This metadata may indicate the music genre, keywords from the lyrics detected using voice recognition, time signature etc.
  • the automatic selection of the current dancer model may be based on the metadata.
  • the context environmental information may be, for example, a call line identifier (CLI) received via a cellular radio transceiver 55 within a paging signal for an incoming telephone call.
  • the automatic selection of the current dancer model may be based on the CLI.
  • the selection of the current dancer model is schematically illustrated at block 60 in Fig. 2.
  • the selection may be based upon current context information 61.
  • the context information may be, for example, a user input command 63 that selects or specifies the current dancer model.
  • the selection may alternatively be automatic, that is, without user intervention.
  • the context information may be, for example, metadata 62 provided with the music track or derived by processing the music track. This metadata may indicate the music genre, keywords from the lyrics etc.
  • the automatic selection of the current dancer model may be based on the metadata.
  • the context information may be, for example, environmental information that is detected from radio or sound waves in the environment of the system 10.
  • the context environmental information may be metadata derived by processing ambient music detected via a microphone 54.
  • This metadata may indicate the music genre, keywords from the lyrics, time signature etc.
  • the automatic selection of the current dancer model may be based on the metadata.
  • the context environmental information may be, for example, a call line identifier (CLI) received via a cellular radio transceiver 55 within a paging signal for an incoming telephone call.
  • the automatic selection of the current dancer model may be based on the CLI.
  • the method 100 of generating a representation of a dancer dancing to music starts at step 20 in Fig. 2. The process then moves to step 22, where the tempo of the music track is obtained.
  • the tempo is typically in the form of beats per minute.
  • the music tempo may be provided with the music track as metadata, derived from the music or input by the user. Derivation of the music tempo is suitable when the music is produced from a stored music track and also when the music is ambient music produced by a third party.
  • the tempo information can be derived automatically using digital signal processing techniques.
  • step 24 the current dance time is calculated. This represents the time into the dance clip defined by the current dance model data structure 13.
  • DanceTime
  • the DanceTempo is DTo obtained from the current Dance Model
  • the DanceLength is DL obtained from the current Dance Model
  • the MusicTempo is the tempo obtained in step 22
  • the MusicTime is the amount of time elapsed since the music track started i.e. the time from step 20.
  • step 25 the correct frame of the dance clip is determined i.e. the correct index / for the dance vector v(i) is determined using the Sample Rate SR obtained from the current dance model.
  • step 26 where the dance vector v(i) is obtained from the current dance model data structure 13. This current dance vector v(i) is then passed to step 27, where the dancer is visualized on the display 8.
  • the current dance vector v(i) defines the current pose of the dancer skeleton and the current dancer model provides appearance data that adds body and appearance to the posed skeleton.
  • the visualization uses skinned mesh models, which are 3D- models comprised of polygons and textures about a skeleton model that can be easily animated.
  • the method 100 generates, with at least each beat of the music, an image representing a dancer.
  • the first data structure determines the pose of the represented dancer and the second data structure determines the appearance of the represented dancer.
  • the dancer moves in sync to the musical beat.
  • the system 10 may also be used as a music player.
  • the music track may be stored in the memory 4.
  • Computer program instructions when loaded into the processor 2, enable the functionality of a music player as is well known in the art.
  • the music player processes the music track and produces an audio control signal which is provided to an audio output device to play the music.
  • the music player is responsible for the audio playback, i.e., it reads the music songs and renders them to audio.
  • the music player also provides the visualization software with information about transport controls (play, stop, pause, etc.) and the music clock i.e. the current song position. This maintains synchronisation between the rendered dancer and the rendered music.
  • the dance model data structure is modified. It no longer comprises a sample rate (SR) field as there is not a constant sample rate, but instead has a time vector T that has values that specify a dance time t(i) for each of the dance vectors v(i) in the set ⁇ v ⁇ and also optionally an end time t(m+1) that specifies the end time of the dance.
  • SR sample rate
  • the end time t(m ⁇ 1) when used, can replace the Dance Length (DL) field in the dance model data structure 13.
  • the correct index / for the dance vector v(i) is determined by selecting the lowest value of / for which DanceTime ⁇ t(i) .
  • visualization of a dancer does not have to happen only for the sampled dancer positions i.e. at the position defined by the dance vectors.
  • the dance vectors may be used to define keyframes and the movement of the dancer between the keyframes may be animated by interpolation.
  • the animation is generated based on the dance vectors, but the in-between poses are generated on the fly.
  • a user downloads the latest Madonna single music track to her mobile phone.
  • the user receives the song as mp3 file or similar and, because the user has a phone model that includes a dancer visualization application, she also receives a new dancer model and dance model that are well suited for the song.
  • the dancer model defines the dancer appearance so that the dancer resembles Madonna in appearance in the music track's video and the dancer model defines the same dance moves as used in the video.
  • a user A downloads a new dancer model from a web service. She then modifies the dancer model using content creation tools available on the same web site. She also creates a new dance model for the dancer using the same tool. Next day in school she and her friends exchanges the new dance models they have created.
  • a dancer visualization is used in connection with ringing tones or musical alerts.
  • the dancer is customized based on the caller ID.
  • the mobile telephone typically has a contacts database with a plurality of entries. An entry may associate together information relating to a particular content. For example, there may be a name field and a telephone number field and other fields.
  • the mobile telephone when it receives a telephone number as a caller ID, is able to search the contacts database and retrieve a predetermined field or fields from the contact entry that contains the searched for telephone number.
  • the mobile telephone may therefore be possible for the mobile telephone to be able to identify the sex of the caller from either a field that explicitly identifies a contact's sex or by inference from the contact's name. If the caller is a man, a male dancer may be shown and if the caller is a woman, then a female dancer may be shown.
  • a customised dancer model may be used by mapping a photograph of the caller associated to a field within the caller's contact entry to the dancer model associated with the musical alert so that the dancer appears to have the caller's facial features and/or a customised dance model, again associated with the caller's contact entry, may be used so that the dancer for that caller has some special moves.
  • Use case 4 visualization of microphone input: A user walks into a restaurant that has a dance floor and some music playing in the background. He starts the dancer visualization application, which starts to analyze the background music through the device's microphone 54. The application detects 22 the beat from the background music and animates the dancer in sync with the music that is playing in the club.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Electrophonic Musical Instruments (AREA)

Description

TITLE
Generating a representation of a dancer dancing to music
FIELD OF THE INVENTION
Embodiments of the present invention relate to generating a representation of a dancer dancing to music. In particular, they relate to methods, systems, devices and computer programs for generating a representation of a dancer dancing to music .
BACKGROUND TO THE INVENTION
Music players may have displays that show abstract animations that look interesting e.g., Windows media player and Winamp come bundled with several such animations. The problem with these animations is that while they look interesting they are abstract in nature and don't closely relate to the music.
Music downloading is a growth business, but it is extremely competitive. It would therefore be desirable to increase the value associated with a music download and/or music player so that they are more desirable and consequently more valuable.
DEFINITIONS
The term 'dancer' is used in this document to mean a articulated (jointed) object that moves with the rhythm of music. The term 'human dancer' is used to mean an animated person that moves with the rhythm of music. A 'dancer' may be a 'human dancer' or some other type of dancer such as an animal or machine.
BRIEF DESCRIPTION OF THE INVENTION
According to one embodiment of the invention there is provided a method of generating a representation of a dancer dancing to music having beats, the method comprising: storing a first data structure that defines movements of a dancer; storing a second data structure that defines an appearance of a dancer; and generating, with successive beats of the music, an image representing a dancer wherein the first data structure determines a pose of the represented dancer and the second data structure determines the appearance of the represented dancer.
Although an image representing a dancer is generated with successive beats of the music, image generation may occur more frequently.
The phrase 'generating, with successive beats of the music, an image' encompasses the generation of an image at a beat but also generation of an image close to a beat. Close in this context means at the first point immediately preceding a beat or immediately following a beat at which an image is generated according to a predetermined schedule.
The first data structure may have a standard format that enables the exchange of one first data structure with another first data structure to change the movements of the represented dancer.
The second data structure my also have a standard format that enables the exchange of one second data structure with another second data structure to change the appearance of the dancer representation.
The first data structure may be portable. The second data structure may be portable. The first data structure and the second data structure may be independently portable.
The first data structure may be editable by a user. The second data structure may be editable by a user. The first data structure and the second data structure may be independently editable by a user.
The first data structure may comprise structured data specifying, for each one a plurality of time instances, the position in space of each of a plurality of predetermined dancer body parts at the time instance. The time instances may be regularly spaced or may have variable spacing. The music may have a music tempo defined by its beats. The first data structure may define a plurality of poses adopted at first intervals by a dancer as the dancer dances with a dance tempo. The generation of a new image representing a dancer may occur after each second time interval, where the second interval is the first interval scaled by the ratio of the music tempo to the dance tempo. The first interval may be regular or variable.
The generated images may be dependent upon a telephone caller identifier. The generated images may be dependent upon ambient music. Ambient music means music that is present in the surroundings of the system generating the representation of a dancer that has not been produced by the system.
According to one embodiment of the invention there is provided a system for generating a representation of a dancer dancing to music having beats, the system comprising: a memory storing a first data structure that defines movements of a dancer and a second data structure that defines an appearance of a dancer; and a generator for generating, with successive beats of the music, an image representing a dancer wherein the first data structure determines a pose of the represented dancer and the second data structure determines the appearance of the represented dancer.
Although an image representing a dancer is generated with successive beats of the music, image generation may occur more frequently.
According to one embodiment of the invention there is provided a computer program for generating a representation of a dancer dancing to music having beats, comprising program instruction which when loaded into a processor provide: means for accessing data within a first data structure that defines movements of a dancer; means for accessing data within a second data structure that defines an appearance of a dancer; and means for generating, with successive beats of the music, an image representing a dancer wherein the first data structure determines a pose of the represented dancer and the second data structure determines the appearance of the represented dancer. Although an image representing a dancer is generated with successive beats of the music, image generation may occur more frequently.
According to another embodiment of the invention there is provided a method of generating a representation of a dancer dancing to music having a music tempo comprising: storing data that defines a plurality of poses adopted at first intervals by a dancer as the dancer dances with a dance tempo; and generating, using the stored data, a new image representing a dancer after each second time interval, wherein the second interval is the first interval scaled by the ratio of the music tempo to the dance tempo
According to a further embodiment of the invention there is provided a method of generating a representation of a dancer dancing to music comprising: storing data that defines a plurality of poses adopted by a dancer as the dancer dances; and generating, using the stored data, a series of images representing a dancer wherein the generated images are dependent upon detected environment information.
The detected environment information may be a telephone caller identifier or ambient music, for example.
BRIEF DESCRIPTION OF THE DRAWINGS
For a better understanding of the present invention reference will now be made by way of example only to the accompanying drawings in which:
Fig. 1 schematically illustrates a system for controlling a computer generated visualization of a dancer; and
Fig. 2 schematically illustrates a method of generating a representation of a dancer dancing to music.
DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION
Figure 1 schematically illustrates a system 10 for controlling a computer generated visualization of a dancer. The system comprises: a processor 2, a display 8 and a memory 4 storing computer program instructions 6, a dance model database 12 and a dancer model database 14.
The processor 2 is arranged to write to and read from the memory 4 and to control the output of the display 8.
The computer program instructions 6 define a dancer visualization software application. The computer program instructions 6, when loaded into the processor 2, provide the logic and routines that enables the system 10 to perform the method illustrated in Fig 2.
The computer program instructions 6 may arrive at the electronic device via an electromagnetic carrier signal or be copied from a physical entity such as a computer program product, a memory device or a record medium such as a CD-ROM or DVD.
The system 10 will typically be part of an electronic device such as a personal digital assistant, a personal computer, a mobile cellular telephone, a personal music player etc.
The dance model database 12 stores a plurality of independent dance models as independent data structures 13.
A dance model defines a 'dance clip' which is an ordered sequence of poses adopted by a dancer. A pose can be defined using a dance vector v to specify the position in space of each of a plurality of predetermined dancer body parts. An ordered set of dance vectors {v: v(1), v(2), v(3)....v(m) } that has a vector v(i) for each one a plurality of regularly spaced time instances / is used to define the 'dance clip'. The dance model also records information about the rate at which poses change (the dance tempo DT) and information about the time interval separating sequential vectors in the ordered set of vectors (sample rate SR).
A dance model data structure 13 is schematically illustrated in Fig. 2. It typically comprises the following fields: a) a dance tempo (DTo) field, that defines the tempo of the dance clip b) a dance length (DL) field that specifies the length of the dance clip c) a movement field for the set of vectors {v} d) a sample rate field for the sample rate (SR).
If there are m vectors in the set of vectors {v} then m * SR = DL. It should therefore be appreciated that if m is known or can be determined, only one of DL and SR is required.
The dance model data structure 13 may also comprise additional fields that, for example, identify musical start and end times or contain musical time signature information, dance style information or music style information.
It should be appreciated that a common standard 'skeleton' model is used as a basis for each dance model. That is, the same predetermined body parts are specified by the components of a vector v(i) in different dance models i.e. the vectors v of each dance model have the same format and span the same vector space. It should also be appreciated that is not necessarily essential to provide a value for every component of a vector v(i) as it may be possible to interpolate or generate components.
Different articulated objects will require different common standard models, that is , a common standard model is required for each different 'skeleton'. For example, a human dancer will have a different skeleton, to a dog dancer, which will have a different skeleton to an earth excavator dancer. It is therefore desirable to use variable standard skeletons, where the dance model indicates which one of the standard skeletons is being used.
The standard skeleton model enables a dancer's movement to be determined by selection of an appropriate dance model data structure 13. The exchange of a current dance model data structure for another different dance model data structure changes the dancer's movement but does not affect the dancer's appearance. Each dance model data structure 13 can be transferred independently into and out of the database 12 as illustrated by transfer block 30 in Fig. 2. A data structure 13 can, for example, be downloaded from a web-site, uploaded to a website, transferred from one device or storage device to another etc. Each dance model data structure 13 and therefore each dance model is therefore independently portable.
A new dance model can be created by a user by creating a new dance model data structure 13 and storing it in the dance model database 12. For example, the dance vectors can be created using motion capture hardware and software or alternatively generated with a computer program.
Also, an existing dance model may be varied by editing the existing dance model data structure 13 for that dance model and saving the new data structure in the dance model database 12. This functionality is schematically illustrated in Fig. 2 by block 32.
The dancer model database 14 stores a plurality of independent dancer models as independent data structures 15.
A dancer model defines the visual appearance of a dancer.
The dancer model determines the body generated around the moving skeleton, defined by the dance model. The body may be generated in any one of a number of standard fashions such as using interconnected polygons. As the 'skeleton' is a common standard model, it is possible to use any dancer model with any dance model. This allows one to 'mix and match' any dance model with any dancer model.
A particular dancer model is associated with a particular standard skeleton. If there are a number of variable standard skeletons, then the dancer model should identify the skeleton type it is suitable for so that dance and dancer models can be matched.
A dancer model data structure 15 may typically define one or more of the following attributes of a dancer: male/female; ethnicity; dress style; facial characteristics. It should be appreciated that a common standard 'appearance' model is used as a basis for each dancer model. That is, there is a sematic convention for specifying the dancer attributes.
The standard appearance model enables a dancer's appearance to be determined by selection of an appropriate dancer model data structure 15. The exchange of a current dancer model data structure for another different dancer model data structure changes the dancer's appearance but does not affect the dancer's movement.
Each dancer model data structure 15 can be transferred independently into and out of the database 14 as illustrated by transfer block 40 in Fig. 2. A data structure 15 can, for example, be downloaded from a web-site, uploaded to a website, transferred from one device or storage device to another etc. Each dancer model data structure 15 and therefore each dancer model is therefore independently portable.
A new dancer model can be created by a user by creating a new dancer model data structure 15 and storing it in the dancer model database 12. Also an existing dancer model may be varied by editing the existing dancer model data structure 15 for that dancer model and saving the new data structure 15 in the dancer model database 14. This functionality is schematically illustrated in Fig. 2 by block 42.
A method of generating a representation of a dancer dancing to music in the display 8 by the processor 2 is illustrated in Fig. 2.
The method requires the definition of a 'current' dancer model and a 'current' dance model. These current models are used to generate a representation of a dancer dancing to music. The current dance model defines the dancer's movement and the current dancer model defines the dancer's appearance.
The selection of the current dance model is schematically illustrated at block 50 in Fig. 2. The selection may be based upon current context information 51. The context information may be, for example, a user input command 53 that selects or specifies the current dance model. The selection may be alternatively automatic, that is, without user intervention. The context information may be, for example, metadata 52 provided with the music track or derived by processing the music track. This metadata may indicate the music genre, keywords from the lyrics, time signature etc. The automatic selection of the current dance model may be based on the metadata. The context information may be, for example, environmental information that is detected from radio or sound waves in the environment of the system 10. For example, the context environmental information may be metadata derived by processing ambient music detected via a microphone 54. This metadata may indicate the music genre, keywords from the lyrics detected using voice recognition, time signature etc. The automatic selection of the current dancer model may be based on the metadata. The context environmental information may be, for example, a call line identifier (CLI) received via a cellular radio transceiver 55 within a paging signal for an incoming telephone call. The automatic selection of the current dancer model may be based on the CLI.
The selection of the current dancer model is schematically illustrated at block 60 in Fig. 2. The selection may be based upon current context information 61. The context information may be, for example, a user input command 63 that selects or specifies the current dancer model. The selection may alternatively be automatic, that is, without user intervention. The context information may be, for example, metadata 62 provided with the music track or derived by processing the music track. This metadata may indicate the music genre, keywords from the lyrics etc. The automatic selection of the current dancer model may be based on the metadata. The context information may be, for example, environmental information that is detected from radio or sound waves in the environment of the system 10. For example, the context environmental information may be metadata derived by processing ambient music detected via a microphone 54. This metadata may indicate the music genre, keywords from the lyrics, time signature etc. The automatic selection of the current dancer model may be based on the metadata. The context environmental information may be, for example, a call line identifier (CLI) received via a cellular radio transceiver 55 within a paging signal for an incoming telephone call. The automatic selection of the current dancer model may be based on the CLI. The method 100 of generating a representation of a dancer dancing to music starts at step 20 in Fig. 2. The process then moves to step 22, where the tempo of the music track is obtained. The tempo is typically in the form of beats per minute. The music tempo may be provided with the music track as metadata, derived from the music or input by the user. Derivation of the music tempo is suitable when the music is produced from a stored music track and also when the music is ambient music produced by a third party.
The tempo information can be derived automatically using digital signal processing techniques. There are known solutions for extracting beat information from an acoustic signal, e.g.
Goto [Goto, M., Muraoka, Y. (1994). "A Beat Tracking System for Acoustic Signals of Music," Proceedings of ACM International Conference on Multimedia, San Francisco, CA1 USA, p. 365-372.],
Klapuri [Klapuri, AP. , Eronen, A.J., Astola, J.T. (2006). "Analysis of the meter of acoustic musical signals," IEEE Transactions on Audio, Speech, and Language Processing 14(1), p. 342-355.]
Seppanen [Seppanen, J., Computational models of musical meter recognition, M. Sc. thesis, TUT 2001]
Scheirer [Scheirer, E. D. (1998). "Tempo and beat analysis of acoustic musical signals," Journal of the Acoustic Society of America 103(1), p. 588-601.].
The process then moves to step 24, where the current dance time is calculated. This represents the time into the dance clip defined by the current dance model data structure 13. DanceTime =
Figure imgf000012_0001
where the DanceTempo is DTo obtained from the current Dance Model the DanceLength is DL obtained from the current Dance Model the MusicTempo is the tempo obtained in step 22 and the MusicTime is the amount of time elapsed since the music track started i.e. the time from step 20.
The process next moves on to step 25, where the correct frame of the dance clip is determined i.e. the correct index / for the dance vector v(i) is determined using the Sample Rate SR obtained from the current dance model.
i=( DanceTime * SR) mod
The process then moves on to step 26, where the dance vector v(i) is obtained from the current dance model data structure 13. This current dance vector v(i) is then passed to step 27, where the dancer is visualized on the display 8.
The current dance vector v(i) defines the current pose of the dancer skeleton and the current dancer model provides appearance data that adds body and appearance to the posed skeleton. The visualization uses skinned mesh models, which are 3D- models comprised of polygons and textures about a skeleton model that can be easily animated.
Consequently, the method 100 generates, with at least each beat of the music, an image representing a dancer. The first data structure determines the pose of the represented dancer and the second data structure determines the appearance of the represented dancer. The dancer moves in sync to the musical beat.
The system 10 may also be used as a music player. In this embodiment, the music track may be stored in the memory 4. Computer program instructions when loaded into the processor 2, enable the functionality of a music player as is well known in the art. The music player processes the music track and produces an audio control signal which is provided to an audio output device to play the music. The music player is responsible for the audio playback, i.e., it reads the music songs and renders them to audio. The music player also provides the visualization software with information about transport controls (play, stop, pause, etc.) and the music clock i.e. the current song position. This maintains synchronisation between the rendered dancer and the rendered music.
The preceding explanation of an embodiment of the invention used dance vectors v(1), v(2), v(3) ... v(m) to represent poses of the dancer skeleton at different regularly spaced time intervals. In other embodiments, the time intervals between the dance vectors v(1), v(2), v(3) ... v(m) is not regular, but is variable. In this embodiment, the dance model data structure is modified. It no longer comprises a sample rate (SR) field as there is not a constant sample rate, but instead has a time vector T that has values that specify a dance time t(i) for each of the dance vectors v(i) in the set {v} and also optionally an end time t(m+1) that specifies the end time of the dance. The end time t(m÷1) when used, can replace the Dance Length (DL) field in the dance model data structure 13. At step 25 of the process illustrated in Fig. 2, where the correct frame of the dance clip is determined, the correct index / for the dance vector v(i) is determined by selecting the lowest value of / for which DanceTime≥ t(i) .
In embodiments of the invention, visualization of a dancer does not have to happen only for the sampled dancer positions i.e. at the position defined by the dance vectors. The dance vectors may be used to define keyframes and the movement of the dancer between the keyframes may be animated by interpolation. The animation is generated based on the dance vectors, but the in-between poses are generated on the fly. The following use cases further exemplify applications of embodiments of the invention:
Use case 1, bundled music download: A user downloads the latest Madonna single music track to her mobile phone. The user receives the song as mp3 file or similar and, because the user has a phone model that includes a dancer visualization application, she also receives a new dancer model and dance model that are well suited for the song. The dancer model defines the dancer appearance so that the dancer resembles Madonna in appearance in the music track's video and the dancer model defines the same dance moves as used in the video.
Use case 2, personalized dancer and user community: A user A downloads a new dancer model from a web service. She then modifies the dancer model using content creation tools available on the same web site. She also creates a new dance model for the dancer using the same tool. Next day in school she and her friends exchanges the new dance models they have created.
User case 3, personalized ringing tone animation: A dancer visualization is used in connection with ringing tones or musical alerts. The dancer is customized based on the caller ID. The mobile telephone typically has a contacts database with a plurality of entries. An entry may associate together information relating to a particular content. For example, there may be a name field and a telephone number field and other fields. The mobile telephone, when it receives a telephone number as a caller ID, is able to search the contacts database and retrieve a predetermined field or fields from the contact entry that contains the searched for telephone number. It may therefore be possible for the mobile telephone to be able to identify the sex of the caller from either a field that explicitly identifies a contact's sex or by inference from the contact's name. If the caller is a man, a male dancer may be shown and if the caller is a woman, then a female dancer may be shown. Also more detailed customization is possible, e.g., a customised dancer model may be used by mapping a photograph of the caller associated to a field within the caller's contact entry to the dancer model associated with the musical alert so that the dancer appears to have the caller's facial features and/or a customised dance model, again associated with the caller's contact entry, may be used so that the dancer for that caller has some special moves.
Use case 4, visualization of microphone input: A user walks into a restaurant that has a dance floor and some music playing in the background. He starts the dancer visualization application, which starts to analyze the background music through the device's microphone 54. The application detects 22 the beat from the background music and animates the dancer in sync with the music that is playing in the club.
Although embodiments of the present invention have been described in the preceding paragraphs with reference to various examples, it should be appreciated that modifications to the examples given can be made without departing from the scope of the invention as claimed.
Whilst endeavoring in the foregoing specification to draw attention to those features of the invention believed to be of particular importance it should be understood that the Applicant claims protection in respect of any patentable feature or combination of features hereinbefore referred to and/or shown in the drawings whether or not particular emphasis has been placed thereon.
I/we claim:

Claims

1. A method of generating a representation of a dancer dancing to music having beats, the method comprising: storing a first data structure that defines movements of a dancer; storing a second data structure that defines an appearance of a dancer; and generating, with successive beats of the music, an image representing a dancer wherein the first data structure determines a pose of the represented dancer and the second data structure determines the appearance of the represented dancer.
2. A method as claimed in claim 1 , wherein the first data structure is selected from a plurality of first data structures each of which defines movements of a dancer;
3. A method as claimed in claim 2, wherein each first data structure has a standard format that enables the exchange of one first data structure with another first data structure to change the movements of the represented dancer.
4. A method as claimed in any preceding claim, wherein the first data structure is portable.
5. A method as claimed in any preceding claim, wherein the first data structure is editable by a user.
6. A method as claimed in any preceding claim, wherein the first data structure defines an ordered sequence of poses adopted by a dancer representation.
7. A method as claimed in any preceding claim, wherein the first data structure comprises data specifying, for each one a plurality of time instances, the position in space of each of a plurality of predetermined dancer body parts at the time instance.
8. A method as claimed in any preceding claim, wherein the second data structure is selected from a plurality of second data structures each of which defines an appearance of a dancer representation.
9. A method as claimed in claim 8, wherein each second data structure has a standard format that enables the exchange of one second data structure with another second data structure to change the appearance of the dancer representation.
10. A method as claimed in any preceding claim wherein the second data structure is portable.
11. A method as claimed in any preceding claim wherein the second data structure is portable independently of the first data structure.
12. A method as claimed in any preceding claim, wherein the second data structure is editable by a user.
13. A method as claimed in any preceding claim, wherein the second data structure is editable independently of the first data structure by a user.
14. A method as claimed in any preceding claim, wherein the music has a music tempo defined by its beats, the first data structure defines a plurality of poses adopted at first intervals by a dancer as the dancer dances with a dance tempo, and the generation of a new image representing a dancer occurs after each second time interval, wherein the second interval is the first interval scaled by the ratio of the music tempo to the dance tempo.
15. A method as claimed in any preceding claim, wherein the generated images are dependent upon detected environment information.
16. A method as claimed in any preceding claim, wherein the generated images are dependent upon a telephone caller identifier.
17. A method as claimed in any preceding claim, wherein the generated images are dependent upon ambient music.
18. A computer program for performing the method of any preceding claim.
19. A system for generating a representation of a dancer dancing to music having beats, the system comprising: a memory storing a first data structure that defines movements of a dancer and a second data structure that defines an appearance of a dancer; and 5 a generator for generating, with successive beats of the music, an image representing a dancer wherein the first data structure determines a pose of the represented dancer and the second data structure determines the appearance of the represented dancer.
I O 20. A mobile cellular telephone comprising the system as claimed in claim 19.
21. A mobile music player comprising the system as claimed in claim 19.
22. A computer program for generating a representation of a dancer dancing to 1 5 music having beats, comprising program instruction which when loaded into a processor provide: means for accessing data within a first data structure that defines movements of a dancer; means for accessing data within a second data structure that defines an appearance 20 of a dancer; and means for generating, with successive beats of the music, an image representing a dancer wherein the first data structure determines a pose of the represented dancer and the second data structure determines the appearance of the represented dancer.
25 23. A method of generating a representation of a dancer dancing to music having a music tempo comprising: storing data that defines a plurality of poses adopted at first intervals by a dancer as the dancer dances with a dance tempo; and generating, using the stored data, a new image representing a dancer after each 30 second time interval, wherein the second interval is first interval scaled by the ratio of the music tempo to the dance tempo
24. A computer program for generating a representation of a dancer dancing to music having a music tempo, comprising program instruction which when loaded into 35 a processor provide: means for accessing stored data that defines a plurality of poses adopted at first intervals by a dancer as the dancer dances with a dance tempo; and means for generating, using the stored data, a new image representing a dancer after each second time interval, wherein the second interval is first interval scaled by the ratio of the music tempo to the dance tempo
25. A method of generating a representation of a dancer dancing to music comprising: storing data that defines a plurality of poses adopted by a dancer as the dancer dances; and generating, using the stored data, a series of images representing a dancer wherein the generated images are dependent upon detected environment information.
26. A method as claimed in claim 25, wherein the detected environment information is a telephone caller identifier.
27. A method as claimed in claim 25, wherein the detected environment information is ambient music.
28. A computer program for generating a representation of a dancer dancing to music, comprising program instruction which when loaded into a processor provide: means for accessing stored data that defines a plurality of poses adopted by a dancer as the dancer dances; and meaqns for generating, using the stored data, a series of images representing a dancer wherein the generated images are dependent upon detected environment information.
PCT/IB2006/000906 2006-02-21 2006-02-21 Generating a representation of a dancer dancing to music WO2007096691A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/IB2006/000906 WO2007096691A2 (en) 2006-02-21 2006-02-21 Generating a representation of a dancer dancing to music

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IB2006/000906 WO2007096691A2 (en) 2006-02-21 2006-02-21 Generating a representation of a dancer dancing to music

Publications (1)

Publication Number Publication Date
WO2007096691A2 true WO2007096691A2 (en) 2007-08-30

Family

ID=38437729

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IB2006/000906 WO2007096691A2 (en) 2006-02-21 2006-02-21 Generating a representation of a dancer dancing to music

Country Status (1)

Country Link
WO (1) WO2007096691A2 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101640057A (en) * 2009-05-31 2010-02-03 北京中星微电子有限公司 Audio and video matching method and device therefor
CN108769769A (en) * 2018-05-30 2018-11-06 北京小米移动软件有限公司 Playback method, device and the computer readable storage medium of video
CN109936762A (en) * 2019-01-12 2019-06-25 河南图灵实验室信息技术有限公司 The method and electronic equipment that similar audio or video file are played simultaneously
CN110139143A (en) * 2019-05-23 2019-08-16 广州酷狗计算机科技有限公司 Virtual objects display methods, device, computer equipment and storage medium
CN110955786A (en) * 2019-11-29 2020-04-03 网易(杭州)网络有限公司 Dance action data generation method and device
CN110992449A (en) * 2019-11-29 2020-04-10 网易(杭州)网络有限公司 Dance action synthesis method, device, equipment and storage medium
CN114401439A (en) * 2022-02-10 2022-04-26 腾讯音乐娱乐科技(深圳)有限公司 Dance video generation method, equipment and storage medium

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101640057A (en) * 2009-05-31 2010-02-03 北京中星微电子有限公司 Audio and video matching method and device therefor
CN108769769A (en) * 2018-05-30 2018-11-06 北京小米移动软件有限公司 Playback method, device and the computer readable storage medium of video
CN109936762A (en) * 2019-01-12 2019-06-25 河南图灵实验室信息技术有限公司 The method and electronic equipment that similar audio or video file are played simultaneously
CN109936762B (en) * 2019-01-12 2021-06-25 河南图灵实验室信息技术有限公司 Method for synchronously playing similar audio or video files and electronic equipment
CN110139143A (en) * 2019-05-23 2019-08-16 广州酷狗计算机科技有限公司 Virtual objects display methods, device, computer equipment and storage medium
CN110139143B (en) * 2019-05-23 2021-11-02 广州酷狗计算机科技有限公司 Virtual article display method, device, computer equipment and storage medium
CN110955786A (en) * 2019-11-29 2020-04-03 网易(杭州)网络有限公司 Dance action data generation method and device
CN110992449A (en) * 2019-11-29 2020-04-10 网易(杭州)网络有限公司 Dance action synthesis method, device, equipment and storage medium
CN110992449B (en) * 2019-11-29 2023-04-18 网易(杭州)网络有限公司 Dance action synthesis method, device, equipment and storage medium
CN110955786B (en) * 2019-11-29 2023-10-27 网易(杭州)网络有限公司 Dance action data generation method and device
CN114401439A (en) * 2022-02-10 2022-04-26 腾讯音乐娱乐科技(深圳)有限公司 Dance video generation method, equipment and storage medium
CN114401439B (en) * 2022-02-10 2024-03-19 腾讯音乐娱乐科技(深圳)有限公司 Dance video generation method, device and storage medium

Similar Documents

Publication Publication Date Title
CN109462776B (en) Video special effect adding method and device, terminal equipment and storage medium
CA2650612C (en) An adaptive user interface
WO2007096691A2 (en) Generating a representation of a dancer dancing to music
KR20070008238A (en) Apparatus and method of music synchronization based on dancing
EP2338271A1 (en) Method and apparatus for generating a sequence of a plurality of images to be displayed whilst accompanied by audio
CN112269898A (en) Background music obtaining method and device, electronic equipment and readable storage medium
EP2442299B1 (en) Information processing apparatus, information processing method, and program
CN110309327A (en) Audio generation method, device and the generating means for audio
JP2006268100A (en) Play list generation device, play list generation method, program, and recording medium
US20240194225A1 (en) Selecting supplemental audio segments based on video analysis
CN111460231A (en) Electronic device, search method for electronic device, and medium
WO2024078293A1 (en) Image processing method and apparatus, electronic device, and storage medium
CN113450804A (en) Voice visualization method and device, projection equipment and computer readable storage medium
CN112435641A (en) Audio processing method and device, computer equipment and storage medium
CN104010063B (en) The display methods and equipment of mobile terminal audible ringing information
JP5044503B2 (en) Effect image playback device, effect image playback method, effect image playback program, and recording medium
CN114401439B (en) Dance video generation method, device and storage medium
JP2008523759A (en) Method and system for synthesizing video messages
CN116189279A (en) Method, device and storage medium for determining hand motion of virtual person
CN114974184A (en) Audio production method and device, terminal equipment and readable storage medium
JP2008299631A (en) Content retrieval device, content retrieval method and content retrieval program
CN110209870A (en) Music log generation method, device, medium and calculating equipment
Kim et al. Motion control of a dancing character with music
JP3427970B2 (en) Video editing method and apparatus with environmental sounds using onomatopoeia and recording medium storing video editing program
CN112015945B (en) Method, system and device for displaying expression image on sound box in real time

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase in:

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 06727496

Country of ref document: EP

Kind code of ref document: A2