这是一个用于英语考试的应用程序,支持语音识别和答案提交功能。
项目的依赖库列在 requirements.txt
文件中。你可以通过以下命令安装所有依赖:
pip install -r requirements.txt
Flask
: Web 框架。speech_recognition
: 语音识别库。pydub
: 音频处理库(用于支持多种音频格式)。wave
: Python 标准库,用于处理 WAV 文件。gunicorn
: 用于生产环境部署的 WSGI 服务器(可选)。
- FFmpeg:
pydub
依赖的工具,用于处理音频文件。可以通过以下命令安装:- macOS:
brew install ffmpeg
- Ubuntu:
sudo apt install ffmpeg
- Windows: 下载并安装 FFmpeg。
- macOS:
-
克隆项目到本地:
git clone https://github.com/BornChanger/onlineTest.git cd onlineTest
-
创建虚拟环境并激活:
python -m venv venv source venv/bin/activate # macOS/Linux venv\Scripts\activate # Windows
-
安装依赖:
pip install -r requirements.txt
-
运行应用:
python app.py
-
访问应用: 打开浏览器,访问
http://127.0.0.1:5000
。
推荐使用 gunicorn
和 nginx
部署到生产环境。
-
安装 Gunicorn:
pip install gunicorn
-
启动应用:
gunicorn -w 4 app:app
-
访问应用: 打开浏览器,访问
http://127.0.0.1:8000
。
-
安装 Nginx:
- macOS:
brew install nginx
- Ubuntu:
sudo apt install nginx
- macOS:
-
配置 Nginx: 编辑
/etc/nginx/sites-available/default
,添加以下内容:server { listen 80; server_name yourdomain.com; location / { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
-
重启 Nginx:
sudo systemctl restart nginx
-
访问应用: 打开浏览器,访问
http://yourdomain.com
。
onlineTest/
├── app.py # 主应用程序文件
├── requirements.txt # 依赖库列表
├── static/ # 静态文件(CSS、JS、图片等)
│ └── styles.css
├── templates/ # HTML 模板文件
│ └── index.html # 主页面
│ └── results.html # 考试结果页面
├── uploads/ # 上传文件存储目录
└── README.md # 项目说明文档
确保上传的文件是有效的 WAV 文件。如果需要支持其他格式,请使用 pydub
进行格式转换。
- 检查音频文件是否清晰。
- 确保音频文件的采样率和声道数符合
speech_recognition
的要求。
- 检查防火墙设置,确保端口(如 80 或 5000)已开放。
- 检查 Nginx 或 Gunicorn 的日志文件,排查错误。
欢迎提交 Issue 或 Pull Request!请确保代码风格一致,并通过所有测试。
本项目基于 MIT 许可证开源。详情请参阅 LICENSE 文件。
如果你有其他需求或需要进一步定制,请告诉我!