---
# System prepended metadata

title: 語音辨識程式

---


# 語音辨識程式說明

## 簡介

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