У меня есть логическая проблема, которую мне пока не удалось решить.Я работаю с приложением обнаружения объектов и хочу добавить к нему голосовые подсказки.Если я просто использую функцию playsound
, она продолжает повторять голосовую подсказку снова и снова, когда она находится в определенной категории.Я хочу, чтобы моя программа воспроизводила звук только один раз, когда он находится в определенной категории (например: person
, tv
, airplane
, apple
и т. Д.).Но когда он снова входит в эту категорию, звук должен проигрываться снова один раз.
Я попытался добавить к нему логическое значение (play_person_sound
).Он воспроизводится только один раз, но проблема в том, что он никогда не воспроизводится снова, когда снова входит в эту категорию.Так, например: если программа сначала обнаруживает человека, она воспроизводит 'person.wav'
, а затем обнаруживает телевизор, воспроизводит «tv.wav», если она обнаруживает человека после ТВ снова, она не воспроизводит * 1010.* больше, потому что 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")