| characters | ||
| demo | ||
| .DS_Store | ||
| .gitignore | ||
| asr_diagnostic.py | ||
| AUDIO_PROCESSES_IMPROVEMENTS.md | ||
| audio_processes.py | ||
| config.json | ||
| control_system.py | ||
| enhanced_voice_detector.py | ||
| multiprocess_recorder.py | ||
| process_logger.py | ||
| README_multiprocess.md | ||
| README.md | ||
| recorder.py | ||
| requirements.txt | ||
| run.log | ||
| start_with_logging.py | ||
| zcr_monitor.py | ||
智能语音助手系统使用说明
功能概述
这是一个完整的智能语音助手系统,集成了语音录制、语音识别、大语言模型和文本转语音功能,实现语音对话交互。
完整工作流程
- 🎙️ 语音录制 - 基于ZCR的智能语音检测
- 📝 保存录音 - 自动保存为WAV文件
- 🤖 语音识别 - 使用字节跳动ASR将语音转为文字
- 💬 AI回复 - 使用豆包大模型生成智能回复
- 🔊 语音回复 - 使用字节跳动TTS将AI回复转为语音
环境配置
1. 安装依赖
pip install websockets requests pyaudio numpy
2. 安装音频播放器(树莓派/Linux系统)
系统使用PCM格式音频,只需要安装基础的音频播放工具:
# 安装 alsa-utils(包含aplay播放器)
sudo apt-get update
sudo apt-get install alsa-utils
优势: PCM格式无需额外解码器,兼容性更好,资源占用更少。 注意: macOS和Windows系统通常内置支持音频播放,无需额外安装。
3. 设置API密钥
为了启用大语言模型功能,需要设置环境变量:
# Linux/Mac
export ARK_API_KEY='your_api_key_here'
# Windows
set ARK_API_KEY=your_api_key_here
注意: 语音识别和文本转语音功能使用内置的API密钥,无需额外配置。
使用方法
基本使用
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语音回复完成
🔄 准备重新开启音频输入
✅ 音频设备初始化成功
📡 音频输入已重新开启
注意事项
- 网络连接:需要网络连接来使用语音识别、大语言模型和文本转语音服务
- API密钥:需要有效的ARK_API_KEY才能使用大语言模型功能
- 音频设备:确保麦克风和扬声器工作正常
- 权限:确保程序有访问麦克风、网络和存储的权限
- 文件存储:系统会保存录音文件和TTS生成的音频文件
故障排除
- 如果语音识别失败,检查网络连接和API密钥
- 如果大语言模型失败,检查ARK_API_KEY是否正确设置
- 如果文本转语音失败,检查TTS服务状态
- 如果录音失败,检查麦克风权限和设备
- 如果播放失败,检查音频设备权限
- 如果PCM文件无法播放,检查是否安装了alsa-utils:
# 树莓派/Ubuntu/Debian系统 sudo apt-get install alsa-utils # 或检查aplay是否安装 which aplay
技术特点
- 🎯 基于ZCR的精确语音检测
- 🚀 低延迟实时处理
- 💾 环形缓冲区防止音频丢失
- 🔧 自动调整能量阈值
- 📊 实时性能监控
- 🌐 完整的语音对话链路
- 📁 自动文件管理和权限设置
- 🔊 PCM格式音频,无需额外解码器
生成的文件
recording_*.wav- 录制的音频文件tts_response_*.pcm- AI语音回复文件(PCM格式)
PCM格式优势
- 兼容性好:aplay原生支持,树莓派开箱即用
- 资源占用少:无需解码过程,CPU占用更低
- 延迟更低:直接播放,无需格式转换
- 稳定性高:减少依赖组件,提高系统稳定性