Local-Voice/README.md
2025-09-20 17:18:41 +08:00

143 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 智能语音助手系统使用说明
## 功能概述
这是一个完整的智能语音助手系统,集成了语音录制、语音识别、大语言模型和文本转语音功能,实现语音对话交互。
## 完整工作流程
1. 🎙️ **语音录制** - 基于ZCR的智能语音检测
2. 📝 **保存录音** - 自动保存为WAV文件
3. 🤖 **语音识别** - 使用字节跳动ASR将语音转为文字
4. 💬 **AI回复** - 使用豆包大模型生成智能回复
5. 🔊 **语音回复** - 使用字节跳动TTS将AI回复转为语音
## 环境配置
### 1. 安装依赖
```bash
pip install websockets requests pyaudio numpy
```
### 2. 安装音频播放器(树莓派/Linux系统
系统使用PCM格式音频只需要安装基础的音频播放工具
```bash
# 安装 alsa-utils包含aplay播放器
sudo apt-get update
sudo apt-get install alsa-utils
```
> **优势**: PCM格式无需额外解码器兼容性更好资源占用更少。
> **注意**: macOS和Windows系统通常内置支持音频播放无需额外安装。
### 3. 设置API密钥
为了启用大语言模型功能,需要设置环境变量:
```bash
# Linux/Mac
export ARK_API_KEY='your_api_key_here'
# Windows
set ARK_API_KEY=your_api_key_here
```
> **注意**: 语音识别和文本转语音功能使用内置的API密钥无需额外配置。
## 使用方法
### 基本使用
```bash
python recorder.py
```
### 功能说明
- 🎯 **自动检测语音**:系统会自动检测声音并开始录音
- ⏱️ **智能停止**静音3秒后自动停止录音
- 🔊 **自动播放**:录音完成后自动播放音频
- 📝 **语音识别**:自动将语音转为文字
- 🤖 **AI助手**:自动调用大语言模型生成回复
### 配置参数
- `energy_threshold=200` - 能量阈值(调整灵敏度)
- `silence_threshold=3.0` - 静音阈值(秒)
- `min_recording_time=2.0` - 最小录音时间(秒)
- `max_recording_time=30.0` - 最大录音时间(秒)
- `enable_asr=True` - 启用语音识别
- `enable_llm=True` - 启用大语言模型
- `enable_tts=True` - 启用文本转语音
## 输出示例
```
🎤 开始监听...
能量阈值: 200 (已弃用)
静音阈值: 3.0秒
📖 使用说明:
- 检测到声音自动开始录音
- 持续静音3秒自动结束录音
- 最少录音2秒最多30秒
- 录音完成后自动进行语音识别和AI回复
- 按 Ctrl+C 退出
==================================================
🎙️ 检测到声音,开始录音...
📝 录音完成,时长: 3.45秒 (包含预录音 2.0秒)
✅ 录音已保存: recording_20250920_163022.wav
==================================================
📡 音频输入已保持关闭状态
🔄 开始处理音频...
🤖 开始语音识别...
📝 识别结果: 你好,今天天气怎么样?
--------------------------------------------------
🤖 调用大语言模型...
💬 AI助手回复: 你好!我无法实时获取天气信息,建议你查看天气预报或打开天气应用来了解今天的天气情况。有什么其他我可以帮助你的吗?
--------------------------------------------------
🔊 开始文本转语音...
TTS句子信息: {'code': 0, 'message': '', 'data': None, 'sentence': {'phonemes': [], 'text': '你好!我无法实时获取天气信息,建议你查看天气预报或打开天气应用来了解今天的天气情况。有什么其他我可以帮助你的吗?', 'words': [...]}}
✅ TTS音频已保存: tts_response_20250920_163022.pcm
📁 文件大小: 128.75 KB
🔊 播放AI语音回复...
✅ AI语音回复完成
🔄 准备重新开启音频输入
✅ 音频设备初始化成功
📡 音频输入已重新开启
```
## 注意事项
1. **网络连接**:需要网络连接来使用语音识别、大语言模型和文本转语音服务
2. **API密钥**需要有效的ARK_API_KEY才能使用大语言模型功能
3. **音频设备**:确保麦克风和扬声器工作正常
4. **权限**:确保程序有访问麦克风、网络和存储的权限
5. **文件存储**系统会保存录音文件和TTS生成的音频文件
## 故障排除
- 如果语音识别失败检查网络连接和API密钥
- 如果大语言模型失败检查ARK_API_KEY是否正确设置
- 如果文本转语音失败检查TTS服务状态
- 如果录音失败,检查麦克风权限和设备
- 如果播放失败,检查音频设备权限
- 如果PCM文件无法播放检查是否安装了alsa-utils
```bash
# 树莓派/Ubuntu/Debian系统
sudo apt-get install alsa-utils
# 或检查aplay是否安装
which aplay
```
## 技术特点
- 🎯 基于ZCR的精确语音检测
- 🚀 低延迟实时处理
- 💾 环形缓冲区防止音频丢失
- 🔧 自动调整能量阈值
- 📊 实时性能监控
- 🌐 完整的语音对话链路
- 📁 自动文件管理和权限设置
- 🔊 PCM格式音频无需额外解码器
## 生成的文件
- `recording_*.wav` - 录制的音频文件
- `tts_response_*.pcm` - AI语音回复文件PCM格式
## PCM格式优势
- **兼容性好**aplay原生支持树莓派开箱即用
- **资源占用少**无需解码过程CPU占用更低
- **延迟更低**:直接播放,无需格式转换
- **稳定性高**:减少依赖组件,提高系统稳定性