# 語音辨識程式說明 ## 簡介 這個程式使用了 [SpeechRecognition](https://pypi.org/project/SpeechRecognition/) 庫,實現了基本的語音辨識功能。該程式可以辨識來自麥克風的語音輸入,並根據用戶的發言執行相應的操作。 ## 使用前準備 請確保已經安裝 `speech_recognition` 庫。如果尚未安裝,可以使用以下命令: ```bash pip install SpeechRecognition ``` ## 程式碼 ```python def vioe(self): import speech_recognition as sr r = sr.Recognizer() while True: with sr.Microphone() as source: print("請開始说话...", end="") try: audio = r.listen(source, timeout=2, phrase_time_limit=5) except sr.WaitTimeoutError: print("超時,請再試一次。") continue except Exception as e: print("錯誤:", e) continue try: # 辨識語音 self.text = r.recognize_google(audio, language="zh-CN") # 檢查是否包含任何特定關鍵詞 for keyword in ["測試", "奶茶", "關閉", "語音", "系統檢查"]: if keyword in self.text: print(f"您说的包含特定關鍵詞 '{keyword}',執行相應的動作。") self.perform_action(keyword) # 清除 self.text self.text = "" print(" # {}".format(self.text)) self.check_control_command() except sr.UnknownValueError: print("無法辨識您的语音。") except sr.RequestError as e: print("請求出錯; {0}".format(e)) except Exception as e: print("錯誤:", e) ``` ## 程式碼解釋 ```python audio = r.listen(source, timeout=2, phrase_time_limit=5) ``` 這行程式碼主要負責使用 `Recognizer` 類別中的 `listen` 方法來監聽麥克風的輸入。以下是各參數的解釋: - `source`: 這是聲音的來源,通常是一個麥克風。在這裡,我們使用 `with sr.Microphone() as source` 以確保在使用結束後麥克風會被正確關閉。 - `timeout`: 這個參數設定了監聽的最大等待時間,即程式在等待輸入時的最長等待時間。超過這個時間,程式將引發 `WaitTimeoutError` 例外。 - `phrase_time_limit`: 設定了單一語音輸入的最大時間。如果使用者在這個時間內未完成發言,程式將停止監聽並處理當前的音頻。 ## 使用方法 1. 呼叫 `vioe` 方法以啟動語音辨識功能。 2. 程式將等待您的語音輸入,請在提示後開始說話。 3. 程式將辨識您的發言,並根據是否包含特定關鍵詞執行相應的動作。 ## 注意事項 - 程式使用了 Google 的語音辨識服務,因此需要網絡連接。 - 如果辨識不正確,請檢查發音、環境噪音等因素。