使用 python 和 pyttsx3 制作自动售货机的谈话清单。如何返回列表?

Making a talking list for a vending machine, using python and pyttsx3. How to go back forth through a list?

我打算使用带有三个按钮的树莓派 pi4,'back'、'repeat'、'next'。

到目前为止,使用 pyttsx3,我已经为自动售货机中的数字 66 定义了一个函数,如下所示:

def no66():
    engine.say("Mrs Freshlys Cupcakes, 66")
    engine.runAndWait()

如果我想把自动售货机里所有的东西列一个清单,是否可以继续为每个数字定义函数?以及如何将它们映射到按钮,以便盲人可以手动在列表中来回移动或重复一个条目?

我们想把带有三个按钮的树莓派安装在自动售货机旁边(键盘上已经有盲文),这样人们使用起来更方便。就像各种自动售货机目录。

请注意我的评论,以后请尽可能分解你的问题,并提出单一的、具体的问题。

由于比较容易,我会提示你一个可能的方向:

  1. 列出所有物品:

    my_items = ["Soup", "Stew", "Soda"]
    
  2. 将当前选择保存为状态:

    current_item = 1 # Represents the position in the list, 1 is Stew
    
  3. 创建通用读取函数:

    def read(id):
        item_name = my_items[id]
        engine.say(item_name + ", Nr." + id)
        engine.runAndWait()
    
  4. 您的按钮只需修改此项,然后调用通用读取函数

    def go_forward():
        current_item = current_item + 1 # Also think about edge cases at the end of the list!
        read(current_item)
    

这是一份草稿,可为您指明正确的方向。