Editing Phoneme curves?

Hi. I'm a new user, and just wondered if there is a way of tweaking the default curve of each of mouth shape targets. For example, can I make the 'open' always start blending in earlier and more gradual... then let it drop off sharply (as an example, that probably looks strange!).

Maybe I misunderstand how FaceFX generates curves, but I noticed that if 3 mouth shapes make up a phoneme, they often start ramping up at different times and even peak at different times within the same phoneme block, so I imagined that each shape perhaps has it's own curve, and hopefully it's something I can edit, or at least view to understand.

Alternatively, perhaps this is handled by an algorithm, under the surface somewhere, in which case that's fine.

Many thanks, Dan


Hi Dan,

There are unfortunately very few levers you can pull to change the phoneme curves. Turning "on" or "off" the "new coarticulation" setting from Tools->Application Options->Use New Coarticulation is about it.

If you look in the Scripts folder, there is a "CohenMassaroCoarticulation.py" that provides an example of an alternative coarticulation algorithm that is implemented as an analysis actor. So that one you can control every aspect of it, but it is probably overkill for what you are trying to do.



Hi Doug.

Sorry if I misunderstand any of this, but The analysis actor files are just for assessing the speech and playing gestures, like nods and blinks, but the lipsync generated will be the same no matter which one I choose?

Also, I saw the "CohenMassaroCoarticulation.py" file, and am I right in saying that the file controls the speed and the priority of the different mouth shapes? The documentation suggests that the results with that file would be worse than with default Coarticulation methods, so I don't want to use it, but is there a way of altering the default coarticulation methods to prioritise certain mouth shapes to try harder to hit them consistently?

Thanks, Dan

Analysis actors are typically used to generate speech gestures, but nothing stops you from generating speech curves with them. The only complication is that the analysis actor and mapping can overwrite each other if you aren't careful.

The real problem is that it is difficult to generate realistic speech curves without access to a full programming language like C++. The CohenMassaroCoarticulation.py file is an example that creates an analysis actor that generates speech curves, but in our opinion the quality is still less than our default coarticulation algorithm.

So it's not that this is a great option, it's just that it is really your only option to have full control of the speech curves. Manipulating curves with python or the "smooth curves" feature as a post process might be another option.

We do our best to implement the best coarticulation algorithm possible in C++, but when it falls short, you don't have any options to tweak the underlying algorithm. You have to start from scratch with your own coarticulation, or use ours as a starting point and apply post-process techniques to get the results you want.