mycobot 280 M5初级运动-语音指令

在这里插入图片描述

使用简单的语音指令来控制机械臂的运动

一、用tkinter绘制界面并录音

1.使用tkinter来绘制界面

def __init__(self, master):
        self.master = master
        self.master.title("Voice Recorder")
        
        self.canvas = tk.Canvas(master, width=400, height=300, bg='white')
        self.canvas.pack()

        self.start_button = tk.Button(master, text="开始录音", command=self.start_recording)
        self.start_button.pack(side=tk.LEFT)

        self.stop_button = tk.Button(master, text="结束录音", command=self.stop_recording)
        self.stop_button.pack(side=tk.RIGHT)

        self.recording = False
        self.frames = []

2.定义其中的按键函数 start_recording和stop_recording

def start_recording(self):
        self.recording = True
        self.frames = []
        self.audio = pyaudio.PyAudio()
        self.stream = self.audio.open(format=pyaudio.paInt16, channels=1, rate=16000, input=True, frames_per_buffer=1024)
        self.record()
def stop_recording(self):
        self.recording = False
        self.stream.stop_stream()
        self.stream.close()
        self.audio.terminate()
        self.save_recording()

3.定义记录流的动作和保存动作分别为record和save_recording

def record(self):
        if self.recording:
            data = self.stream.read(1024)
            self.frames.append(data)
            self.master.after(10, self.record)
def save_recording(self):
        if not os.path.exists('voice'):
            os.makedirs('voice')
        filename = datetime.now().strftime("%Y%m%d_%H%M%S") + ".wav"
        filepath = os.path.join('voice', filename)
        with wave.open(filepath, 'wb') as wf:
            wf.<