# 語音辨識程式說明
## 簡介
這個程式使用了 [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 的語音辨識服務,因此需要網絡連接。
- 如果辨識不正確,請檢查發音、環境噪音等因素。