Я, конечно, не особо знаю python, но можно попробовать избавиться от бесконечного звука примерно таким образом, плюс это проверка на изменение количества непрочитанных сообщений (причём если их будет меньше, но не 0, то ничего опять же не произойдет):
old_unread_messages = 0 # если при запуске программы не нужен сразу звук уведомления, использовать нижнюю строчку
# old_unread_messages = core.unread_messages
ping = False
if old_unread_messages - core_unread_messages >= 0 and not ping and core.unread_messages != 0:
# тут вызов звука уведомления
ping = True
Конечно, это наверное костыль, но ничего лучше я ещё не придумал