# aivoiceWeb **Repository Path**: wilsondebug/aivoice-web ## Basic Information - **Project Name**: aivoiceWeb - **Description**: 本项目是演示在WEB上录音后,模型对语音的识别,以及将文字转换成语音播放的实例。 根据测试效果来看,百度的语音识别效果不错,本地的whisper模型识别效果较差。 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://gitee.com/wilsondebug - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-23 - **Last Updated**: 2026-03-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 语音测试中心 基于 OpenAI Whisper 和 pyttsx3 的完整语音处理系统,支持语音识别(STT)和语音合成(TTS),完全离线运行,无需 GPU。 ## 关于 DeepSpeech GPU 需求的回答 **DeepSpeech 端侧模型不需要 GPU!** 根据官方文档和社区资料: - DeepSpeech 支持 **CPU 和 GPU** 两种运行模式 - 可以在从 **树莓派4** 到高功率 GPU 服务器的各种设备上运行 - 使用 TensorFlow Lite 可以在客户端/端侧设备上部署 - 纯 CPU 模式下推理速度可能较慢,但完全可用 由于 DeepSpeech 在 Windows Python 3.13 上安装困难,本项目改用 **OpenAI Whisper** 作为替代方案,它同样支持 CPU 运行且更容易安装。 ## 功能特性 ### 🎤 语音识别(STT) - 支持多种音频格式(WAV, MP3, M4A, FLAC 等) - 自动语言检测 - 支持 99 种语言 - 实时录音识别 - 文件上传识别 - 带时间戳的识别结果 ### 🔊 语音合成(TTS) - 多种音色选择(默认、男声、女声、机器人) - 可调节语速(0.5x - 2.0x) - 可调节音量 - 音频文件下载 - 实时播放 ### 🌐 Web 界面 - 现代化的响应式设计 - 实时录音可视化 - 一键播放/下载 - API 状态监控 ## 项目结构 ``` AIVoice/ ├── app.py # Flask Web API 服务器 ├── whisper_test.py # 命令行语音识别工具 ├── test_api.py # API 测试脚本 ├── requirements.txt # 依赖列表 ├── templates/ │ └── index.html # Web 测试页面 └── README.md # 项目说明 ``` ## 快速开始 ### 1. 安装依赖 ```bash pip install -r requirements.txt ``` ### 2. 启动服务器 ```bash python app.py ``` 服务器将在 http://localhost:5000 启动 ### 3. 打开浏览器访问 ``` http://localhost:5000 ``` ## 使用说明 ### Web 界面 #### 语音输入测试 1. 点击红色录音按钮开始录音 2. 再次点击停止录音 3. 系统自动识别并显示结果 4. 或上传音频文件进行识别 #### 文本转语音 1. 在文本框中输入要转换的文字 2. 选择喜欢的音色(默认/男声/女声/机器人) 3. 调节语速和音量 4. 点击"播放"立即收听 5. 点击"下载音频"保存为 WAV 文件 ### 命令行工具 #### 语音识别 ```bash # 基本识别 python whisper_test.py --audio your_audio.wav # 指定语言 python whisper_test.py --audio your_audio.wav --language zh # 使用更大的模型 python whisper_test.py --audio your_audio.wav --model small ``` #### 查看可用模型 ```bash python whisper_test.py ``` ## API 接口 ### 语音识别 ```bash # 上传音频文件识别 POST /api/v1/transcribe Content-Type: multipart/form-data 参数: - file: 音频文件 - language: 语言代码 (可选) - task: 任务类型 (可选, transcribe/translate) ``` ### 文本转语音 ```bash # 生成语音 POST /api/v1/tts Content-Type: application/json { "text": "你好世界", "voice": "female", "rate": 1.0, "volume": 1.0 } 响应: 音频文件 (WAV) ``` ### 获取可用音色 ```bash GET /api/v1/tts/voices 响应: { "voices": [ {"id": "...", "name": "Microsoft Huihui", "gender": "female"}, ... ], "count": 5 } ``` ### 其他接口 ```bash GET /api/v1/health # 健康检查 GET /api/v1/info # 模型信息 GET /api/v1/models # 可用模型列表 POST /api/v1/detect-language # 语言检测 ``` ## 可用模型(语音识别) | 模型 | 大小 | 速度 | 准确性 | 描述 | |------|------|------|--------|------| | tiny | 39 MB | ~32x | 低 | 最快,适合实时应用 | | base | 74 MB | ~16x | 中 | 平衡速度和准确性 | | small | 244 MB | ~6x | 较高 | 较好的准确性 | | medium | 769 MB | ~2x | 高 | 高准确性 | | large | 1550 MB | 1x | 最高 | 最佳准确性 | | large-v2 | 1550 MB | 1x | 最高 | large的改进版 | | large-v3 | 1550 MB | 1x | 最高 | 最新版本 | 默认使用 `base` 模型,可通过环境变量 `WHISPER_MODEL` 修改。 ## 环境变量 | 变量名 | 默认值 | 说明 | |--------|--------|------| | WHISPER_MODEL | base | 语音识别模型名称 | | WHISPER_DEVICE | cpu | 运行设备 (cpu/cuda) | | PORT | 5000 | 服务器端口 | | DEBUG | false | 调试模式 | ## 技术栈 - **后端**: Flask + OpenAI Whisper + pyttsx3 - **前端**: HTML5 + CSS3 + JavaScript (Web Audio API) - **语音识别**: OpenAI Whisper(离线运行) - **语音合成**: pyttsx3(离线运行) ## 系统要求 - Python 3.8+ - Windows/Linux/macOS - 内存: 至少 4GB(使用 base 模型) - 磁盘: 至少 500MB 可用空间 ## 特点 - ✅ **纯 CPU 运行** - 无需 GPU - ✅ **完全离线** - 无需联网 - ✅ **多语言支持** - 99 种语言自动检测 - ✅ **多音色选择** - 4 种不同音色 - ✅ **实时录音** - 浏览器直接录音 - ✅ **音频下载** - 支持导出 WAV 文件 - ✅ **RESTful API** - 易于集成 - ✅ **响应式设计** - 支持移动端 ## 注意事项 1. **第一次运行**会自动下载 Whisper 模型文件(base 模型约 74MB) 2. **Windows 用户**可能需要安装 ffmpeg 以支持更多音频格式 3. **内存使用**取决于模型大小,large 模型需要约 2GB 内存 4. **录音功能**需要浏览器支持 Web Audio API 并允许麦克风权限 ## 故障排除 ### 无法录音 - 检查浏览器是否允许麦克风权限 - 确保使用 HTTPS 或 localhost ### 识别失败 - 检查音频格式是否正确 - 确保音频质量清晰 - 尝试指定语言代码 ### TTS 失败 - 检查 pyttsx3 是否正确安装 - Windows 用户可能需要安装语音包 ## 参考链接 - [OpenAI Whisper](https://github.com/openai/whisper) - [DeepSpeech GitHub](https://github.com/mozilla/DeepSpeech) - [pyttsx3 Documentation](https://pyttsx3.readthedocs.io/) - [Flask Documentation](https://flask.palletsprojects.com/) ## 许可证 MIT License