Audio2Face 2023.2.0 Error - [StreamLivelink] the BLENDSHAPE NAMES input is empty

Hi, if I setup a brand new scene in Audio2Face 2023.2.0 everything works fine and I can activate the Stream Livelink Node. But if I save the scene as USD and then reopen it (on the same pc, same hardware configuration) I cannot start Stream Livelink no more due to the following error

[Error] [omni.audio2face.utility.scripts.utils] [StreamLivelink] the BLENDSHAPE NAMES input is empty. Please connect or enter a valid input before activating the streaming.

Here is my workflow.

First attempt - when everything works fine
From a clean scene, I start from the “Audio Player → Streaming” configuration

then I drag and drop the “mark_bs_arkit.usd” file in the scene

and obtain this configuration

next, I configure the BlendShape Solver by selecting

[1] “/World/mark/char_mark_model_hi/c_headWatertight_hi” as Input Anim Mesh, and
[2] “/World/mark_bs_arkit/neutral” as Blendshape Mesh
then click [3] “SET UP BLENDSHAPE SOLVE”

and this creates new OmniGraphNodes such as BlendshapeSolve and StreamLivelink

At this point I click on StreamLivelink node, then select the “Activate” flag and everything works fine (I can stream audio to an Unreal Engine project with metahuman).

Last, I save this scene as a USD file

Second attempt - load the scene and error raises
Now second attempt (you can close and reopen Audio2Face).
Just open the file created few seconds ago

I select the “StreamLivelink” node, then check the “Activate” flag just like before… and here is the error

The “Activate” flag goes off immediately and automatically and the error appears.

The error is due to the condition “len(db.inputs.face_blendshape_names) < 1” which is true in exts\omni.audio2face.exporter\omni\audio2face\exporter\ogn\python\nodes\ file

Actually, I can’t figure out the reason why of this error.
Someone can help me?
I would like to load the file in headless mode, but this error make headless configuration unable to work.

For the sake of completeness, here is the missing list.
When I create the scene, this list is populated

Whilst when I open the scene from usd, this list is empty… and this means I cannot load preset (since presets require a list because seems that they load values for labels only and not labels as well)

So, there is a way to save the “Weights Tuner” in USD file?
Have I to follow a different approach or this is maybe a bug?

Hey there, I have the same problem. 1 Version ago it was working I think

I can confirm.
The version 2023.1.1 works. I can save the scene, open it (even from REST API) and the Live Link in Unreal Engine works as is.
Moreover, the usd file saved with 2023.1.1 is much smaller compared to the one saved with 2023.2.0.
The scene with the same basic settings (as described in my post) needs a USDA file of 32KB with 2023.1.1 and a file of 4.061KB with 2023.2.0 (analogous ratio with USD file).

Temporary workaround
Unreal Engine 5.3 with the “NVIDIA Omniverse ACE: Audio2Face” available with A2F 2023.2.0 works with Audio2Face 2023.1.1 as well.
So, even if I have to make other tests (and despite I will have to waive some new features come with 2023.2.0), at this moment this seems the only configuration I can use to package my UE project (since the UE plugin of 2023.1.1 had a bug that blocked me to package the project).

I will waiting for a different approach or a fix.

This is strange, following your steps I can’t replicate the issue. Can you take a look at the OmniGraph to see if these connections exist before and after reopening the file?

With 2023.2.0, when I open a .usd file (generated with the same release 2023.2.2) the connections in graph seem ok, but the list is empty

Instead, if I open and equivalent .usd file with 2023.1.1 version (not the same file, but an analogous one generated with 2023.1.1), I have the graph in the following screenshot, but the list in filled.

Maybe, it would be useful to have access to the two scenes.
You can find two files here:

As you can see, File size is really different depending by the version I used to create the file.
And, again, these two files are pretty the same, created with simple steps I’ve described at the beginning of this post.
Despite the dimension, the smallest one contains “Blendshape solvers” value, whilst the biggest one seems it does not.

Ah, sorry I missed setting Audio Player type to streaming. Yes this is a bug. Thanks for reporting it. We’ve created a ticket (OM-117608) for this and will fix it in the upcoming releases.

The workaround is to play some audio, then you’d be able to activate the StreamLiveLink.

If you’re using Streaming Player, you can right-click and send the example track.


And if you’d like to do it using REST API, you can send a very short audio to Audio2Face, then activate the Streaming like so:

    # send a very short audio to audio2face
    push_audio_track_stream(url, data[:10], samplerate, instance_name)
    # enable livelink
    enable_livelink_data = {
        "node_path": "/World/audio2face/StreamLivelink",
        "value": True
    result ="http://localhost:8011/A2F/Exporter/ActivateStreamLivelink", json=enable_livelink_data).json()
1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.