У меня есть логическая проблема, которую мне пока не удалось решить. Я работаю с приложением для обнаружения объектов и хочу добавить к нему голосовые подсказки. Если я просто использую функцию playsound
, она продолжает повторять голосовую подсказку снова и снова, когда она находится в определенной категории. Я хочу, чтобы моя программа воспроизводила звук только один раз, когда он находится в определенной категории (например: person
, tv
, airplane
, apple
и т. д.). Но когда он снова входит в эту категорию, звук должен воспроизвести еще раз.
Я попытался добавить к нему логическое значение (play_person_sound
). Он воспроизводится только один раз, но проблема в том, что он никогда не воспроизводится снова, когда снова входит в эту категорию. Так, например: если программа сначала обнаруживает человека, она воспроизводит 'person.wav'
, если затем она обнаруживает телевизор, она воспроизводит «tv.wav», если она снова обнаруживает человека после телевизора, она больше не воспроизводит 'person.wav'
, потому что play_person_sound
устанавливается на False
. Я попытался добавить еще один переключатель, и это работает для одной категории: person
, но, поскольку категорий 80, это кажется невыполнимым.
Кто-нибудь знает умный способ заставить это работать?
Ниже приведен фрагмент кода:
play_person_sound = True
switch = 1
...
if name[0][0] == 'person':
if play_person_sound:
play_person_sound = False
playsound("sounds/person.wav")
if switch == 0:
switch = 1
playsound("sounds/person.wav")
elif name[0][0] == 'tv':
switch = 0
playsound("sounds/tv.wav")
elif name[0][0] == 'airplane':
playsound("sounds/airplane.wav")
elif name[0][0] == 'apple':
playsound("sounds/apple.wav")
elif name[0][0] == 'backpack':
playsound("sounds/backpack.wav")