Training data is synthesised for a viseme prediction model. A first set of training data 801 comprises an audio sequence 812 representing a sentence spoken by a first speaker, and a sequence of visemes each mapped to an audio sample of the spoken sentence. A second set of training data 802 is generated using an audio sequence 813 that represents the same sentence spoken by a second speaker, and mapping it to the viseme sequence of the first training set (815). This may be done by timewarping either the second audio sequence (814) or the first audio and viseme sequence. The timewarping may be done so that phonemes occur at the same time stamp in either sequence. Training may be done by determining feature vectors for each sample of the audio sequence, predicting a viseme based on those vectors, and adjusting parameters of the prediction model to minimise the difference between the predicted and expected visemes.
Using machine-learning models to determine movements of a mouth corresponding to live speech