99 lines
2.5 KiB
Markdown
99 lines
2.5 KiB
Markdown
|
|
|||
|
# 🎙️ 智能语音助手 “小智”
|
|||
|
|
|||
|
一个基于 **百度智能云语音识别 + 合成** 和 **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
|
|||
|
|