You just have to place them above the character.
i.e. g_Entity[ e ].x & g_Entity[ e ].z give you the characters position, g_Entity[ e ].y gives you their height so if we assume the characters are 80 units high:
g_Entity[ e ].x, g_Entity[ e ].y + 80, g_Entity[ e ].z would give you a reasonable stab at a position for the particle or decal.
Personally I think particles are better as you can have up to 4096 frames in a single sheet, so you could easily do all the speech bubbles for your entire game in a single particle sheet and one emitter will easily produce all the ones you need to display.
You could even be ultra fancy and have one sheet for speech bubbles and another for though bubbles so as one character is spouting off another could be thinking "what a load of ...".
Been there, done that, got all the T-Shirts!