
# 🎙️ 智能语音助手 “小智”

一个基于 **百度智能云语音识别 + 合成** 和 **DeepSeek-R1 对话模型** 的智能语音助手，支持以下功能：

* 🎤 **语音唤醒与自动录音**
* 🧠 **自然语言理解（LLM）问答**
* 🔊 **语音合成回应**
* 🕹️ **Python 本地运行，无需前端或网页**

---

## ✅ 功能概览

| 功能模块        | 描述                                 |
| ----------- | ---------------------------------- |
| 语音唤醒        | 检测是否说出“小智”关键词，触发问答流程               |
| 自动录音        | 使用 WebRTC VAD 进行语音活动检测，自动判断语音开始和结束 |
| 百度语音识别      | 调用百度智能云 API，将语音识别成文本               |
| DeepSeek 问答 | 将用户问题发送到 DeepSeek-R1 模型，获取智能回复     |
| 百度语音合成      | 将 AI 回复转换为音频并使用 `pygame` 播放        |

---

## 📦 环境依赖（requirements.txt）

```txt
requests
pyaudio
pygame
webrtcvad
openai
```

安装依赖：

```bash
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
```

如遇 `pyaudio` 安装失败，推荐使用：

```bash
pip install pipwin
pipwin install pyaudio
```

---

## 🔐 API 配置

打开 `main.py` 或脚本文件，将以下参数替换为你自己的：

```python
# 百度智能云 API
BAIDU_API_KEY = "你的API Key"
BAIDU_SECRET_KEY = "你的Secret Key"

# DeepSeek-R1 API
DEEPSEEK_API_KEY = "你的DeepSeek API Key"
```

---

## 🚀 启动方式

```bash
python main.py
```

启动后助手进入循环监听状态，等待用户说出 **唤醒词“小智”**，进入问答流程。

---

## 🎧 示例流程

1. **你说：“小智”**（唤醒）
2. 程序回应：“好的，小智在。请说出你的问题。”
3. **你说：“今天北京天气怎么样？”**
4. 小智回答：“今天北京的天气是晴转多云，最高气温27度。”

---

## 🔊 技术细节

* 📍 **自动录音**：基于 `webrtcvad` 自动结束语音（检测静音）
* 📍 **语音识别**：百度 `vop.baidu.com/server_api`
* 📍 **语音合成**：百度 `tsn.baidu.com/text2audio`
* 📍 **AI对话**：调用 DeepSeek-R1 `chat.completions` 接口（通过 OpenAI SDK）

---

## 🛠️ 注意事项

* 程序使用 `pyaudio` 进行录音，需麦克风硬件支持
* 百度语音识别需中文 `16kHz 单声道 PCM`
* 请保持联网状态，所有服务需调用在线 API

