Lists may achieve that function, but I'm not sure how that would pan out... plus everyone here seems to have something against lists... INI's may also be usable, but that would be a mess... I'd say lists.
could you not do it in a similar manner to a "choose your own adventure" book. you know, the ones where you have a passage of text then you have some options available to you. The way i would do it is to assign each character an ini file with the group [speech] in. in here have all your phrases as seperate items. you can then write your code to retrieve each item based on a chracters alterable value.