You can also create function that reads those sound references from array given action enumerator (or name as string). Create function library, put that function in there, and you can use it in any blueprint. However be careful make only one function library its very easy to create circular dependencies with multiple libraries, and it is pain in a. to fix it later.
For prototyping stage of your game all can be contained in that function.
Then you can upgrade this, put array in blueprint like game state game mode etc.
And last stage would be coding in C++ function that reads db or text file and fills that array from it.
Start small, you do not need (yet) whole system with database or xml\json files etc.
All you need is some function + array that can feed some data to your sound system.
You will change all that data multiple times during development.
For referencing structs\enums etc, use prefixes, for eg i name all my structs with prefix MyStruct_
enums as MyEnum_, then create variable and change its type to MYWhatever_ i need now.
When you want reference struct in another bleuprint, gets its pointer (get all actors of class, then read array) then cast to class of that blueprint and you can reference variable by name does not matter if its integer struct or something you created.