You can use a BSP to seperate solid from empty space if the leafs of the tree contain convex polyhedra, which are either all solid or all empty. IIRC Quake used empty leafs, so if you are in a cube like room it's likely all wall that you see are the surface of a single leaf node (though there may be some splits dividing the room into two or more volumes). If there is a door to another room, the empty volume inside the door is another leaf, and the other rooms walls form another leaf as well.
There are some chapters about BSP in Quake / Doom here: http://www.jagregory.com/abrash-black-book/
The faces of the door volume are invisible but still there. They connect one empty space to another - those faces ar often referred as portals and have been used to precompute a PVS to get a list of potential visible leafs from the camara leaf.
See for the nightmare of implementation - you should njot need this, but just to give you a hint on complexity: http://www.cs.utah.edu/~jsnider/SeniorProj/BSP/default.htm
So for you it might be better to store solid instead empy leafs. The algorithm would help to find a single fused mesh from multiple models that build up your world, and from that you could use a polygon reduction algorithm to get a low poly version. Or you can reduce the BSP itself (e.g. remove the few small leafs that from a football in a stadium).
Also low poly BSPs are very good to ray trace (should be much faster than voxels), if you want it to trace sound rays around in real time.
BSPs are often used for boolean CSG mesh opartions (union, subtract, intersection), maybe a good search term as well.
But it's really the last option - it will drive you crazy to do this robustly for the detailed stuff we use in actual games. I guess you have to invest so much time, building low poly meshes by artists might be cheaper
So if voxels do it, why is performance an issue? Do you want to do this in real time? Generating BSP in real time is no option. BSP can handle details at any scale and are exact, but that's the only advantage over easy voxels and this should not be necessary for sound.
Edit: Did you try Simplygon? I did not find the occlusion mesh generation in the tool, also i did not find the SDK after installation, but this stuff should be there.