Match shape key for mesh to size of text bounding box
Animation Nodes have a node to compute the bounding box called Object Bounding Box Node. You can use it to get a rectangle (plane) that bounds each of the text objects, to get round edges, you can use the bevel modifier with the Vertex Only option, no need to use shape keys. To get the mesh of each bubble, get every 2nth vertex of the output bounding box vertices (Only every 2nth because the rest is the upper part of the box), then create a mesh out of it:



Which when joined, output and beveled will produces:



Which is exactly what you want, but you might want to scale the rectangles a bit to give the text some space inside, this is easily done by translating the upper-right, upper-left, lower-left and lower-right vertices a bit in the directions $(1, 1), (1, -1), (-1, -1), (-1, 1)$ respectively (They might not be in the same order as I mentioned, so check first !):



By changing the scale, we get different padding widths:



And by changing the bevel width, we can control the radius of the corners: