一个基于火山引擎 SAUC API 的语音识别 Web 应用,采用现代化的 ClearGlass 设计风格。
- 实时语音转写: 通过麦克风进行实时录音并转写成文字。
- 文件上传转写: 上传本地音频文件(如
.wav,.mp3等)进行转写。 - 历史记录: 自动在浏览器本地保存转写结果,方便随时查看和管理。
- ClearGlass UI: 简洁美观的玻璃态设计界面。
➡️ 点击此处观看项目功能演示视频 (Google Drive)
- 后端: Python, Flask, SQLAlchemy, Flask-Sock (WebSocket)
- 前端: 原生 JavaScript, HTML5, CSS3
- 语音服务: 火山引擎 SAUC API
# 推荐使用脚本一键安装
chmod +x install.sh
./install.sh
# 也可以手动安装
# python3 -m venv venv
# source venv/bin/activate
# pip install -r requirements.txt-
复制模板文件:
cp .env.example .env
-
编辑
.env文件, 填入你的火山引擎 API 密钥:# 火山引擎 SAUC API 配置 (必需) SAUC_APP_KEY=your_app_key_here SAUC_ACCESS_KEY=your_access_key_here
密钥获取地址: 火山引擎语音识别控制台
# 进入后端目录
cd backend
# 执行数据库迁移
flask db upgrade
# 返回根目录
cd ..本项目需要分别启动后端和前端服务。
-
启动后端服务 (端口 8080):
./backend/start_dev.sh
-
启动前端服务 (端口 8081):
# 需要打开一个新的终端窗口 source venv/bin/activate python ./web_frontend/app.py
服务启动后,在浏览器中打开: http://localhost:8081
项目 scripts/ 目录下提供了一些独立的脚本,用于直接测试火山引擎的 API,方便调试。
- 实时录音测试:
python scripts/sauc_realtime_mic.py - 文件转写测试:
python scripts/sauc_websocket_demo.py <你的音频文件路径>
- 麦克风无法访问: 请检查浏览器是否已授权麦克风权限。
- WebSocket 连接失败: 请确认后端服务已在
8080端口正常运行。 - 转写失败: 请检查
.env文件中的 API 密钥是否正确填写,并查看后端服务的日志输出。
Made with ❤️ using Flask + ClearGlass