import tkinter as tk from tkinter import messagebox import speech_recognition as sr class VoiceRecognitionApp: def __init__(self, master): self.master = master master.title("语音识别工具") # 创建开始录音的按钮 self.record_button = tk.Button(master, text="开始录音", command=self.start_listening) self.record_button.pack(pady=10) # 创建完成按钮,初始时禁用 self.finish_button = tk.Button(master, text="完成并识别", state=tk.DISABLED, command=self.recognize_voice) self.finish_button.pack(pady=10) self.recognizer = sr.Recognizer() self.audio_data = None def start_listening(self): # 启动录音 self.record_button.config(state=tk.DISABLED) # 禁用开始录音按钮 self.finish_button.config(state=tk.NORMAL) # 启用完成按钮 with sr.Microphone() as source: print("请说话...") self.audio_data = self.recognizer.listen(source) def recognize_voice(self): if self.audio_data is not None: try: recognized_text = self.recognizer.recognize_google(self.audio_data, language='zh-CN') messagebox.showinfo("识别结果", f"你说的是: {recognized_text}") except sr.UnknownValueError: messagebox.showerror("错误", "无法识别你的语音") except sr.RequestError as e: messagebox.showerror("错误", f"服务不可用; {e}") finally: self.reset_ui() # 识别完成后重置UI状态 def reset_ui(self): # 重置按钮状态和音频数据 self.record_button.config(state=tk.NORMAL) self.finish_button.config(state=tk.DISABLED) self.audio_data = None # 创建主窗口并启动应用 app = tk.Tk() VoiceRecognitionApp(app) app.mainloop()