diff --git a/yuyin.py b/yuyin.py new file mode 100644 index 0000000..d40f3a9 --- /dev/null +++ b/yuyin.py @@ -0,0 +1,52 @@ +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() \ No newline at end of file