So, it's generic blips. You just have that as callback for the character and dialogue causes events to be provided.
See if this can help you: https://www.renpy.org/doc/html/character_callbacks.html#character-callbacks
You just need to pay additional attention to "slow_done" and that would be the same as "show_done". Probably like this:
def dialoguesound(event, interact=True, **kwargs):
if not interact or event in ("slow_done", "show_done"):
renpy.sound.stop(channel="dialogue", fadeout=0.1)
elif event == "show":
renpy.sound.play("sfx/voices/generic.ogg", channel="dialogue", loop=True)