logo
0
0
WeChat Login

🎵 FunASR Web 演示

这是一个基于 FunASR 轻量化版本的 Web 演示界面,提供音频转文本功能。

✨ 功能特性

  • 📁 文件上传: 支持多种音频格式 (WAV, MP3, M4A, FLAC, OGG, WebM)
  • 🎤 实时录音: 浏览器内录音并实时转换
  • 🚀 GPU 加速: 支持 CUDA GPU 加速推理
  • 🌍 多语言: 支持中文、英文、日文、韩文、粤语
  • 📱 响应式: 适配桌面和移动设备
  • 🎨 美观界面: 现代化 UI 设计

🚀 快速开始

方法一:自动启动(推荐)

# 在 FunASR 项目根目录下 cd web_demo python start_server.py

方法二:手动启动

  1. 安装依赖
pip install flask flask-cors
  1. 启动服务器
cd web_demo python app.py
  1. 打开浏览器 访问 http://localhost:5000

📋 系统要求

  • Python 3.8+
  • FunASR 轻量化版本
  • Flask 和 Flask-CORS
  • 现代浏览器(支持 Web Audio API)

🎯 使用方法

上传文件转换

  1. 点击"选择音频文件"按钮
  2. 选择音频文件(支持 WAV, MP3 等格式)
  3. 点击"开始转换"按钮
  4. 等待转换完成,查看结果

实时录音转换

  1. 点击"开始录音"按钮(首次使用需授权麦克风)
  2. 对着麦克风说话
  3. 点击"停止录音"按钮
  4. 系统自动转换并显示结果

设置选项

  • 模型选择:
    • Paraformer (中文): 适合中文语音识别
    • SenseVoice (多语言): 支持多种语言
  • 计算设备:
    • CPU: 使用 CPU 计算(较慢但兼容性好)
    • GPU (CUDA): 使用 GPU 加速(需要 CUDA 支持)

🔧 API 接口

POST /api/transcribe

音频转文本接口

请求参数:

  • audio: 音频文件 (multipart/form-data)
  • model: 模型名称 (可选,默认 paraformer-zh)
  • device: 计算设备 (可选,默认 cpu)

响应格式:

{ "success": true, "text": "转换后的文本", "model": "paraformer-zh", "device": "cpu" }

GET /api/models

获取可用模型列表

GET /api/health

健康检查接口

🛠️ 技术栈

  • 后端: Flask + FunASR
  • 前端: HTML5 + CSS3 + JavaScript
  • 音频处理: Web Audio API + MediaRecorder API
  • UI 框架: 原生 CSS(无依赖)

📱 浏览器兼容性

  • Chrome 60+
  • Firefox 55+
  • Safari 11+
  • Edge 79+

⚠️ 注意事项

  1. 麦克风权限: 录音功能需要浏览器麦克风权限
  2. HTTPS: 在生产环境中建议使用 HTTPS
  3. 文件大小: 默认限制音频文件最大 100MB
  4. GPU 支持: GPU 模式需要安装 CUDA 版本的 PyTorch

🐛 故障排除

常见问题

Q: 无法录音? A: 检查浏览器麦克风权限,确保使用 HTTPS 或 localhost

Q: 转换失败? A: 检查音频格式是否支持,确保 FunASR 正确安装

Q: GPU 不工作? A: 确保安装了 CUDA 版本的 PyTorch,检查 GPU 驱动

Q: 服务器启动失败? A: 检查端口 5000 是否被占用,确保依赖已安装

日志查看

服务器日志会实时显示在控制台,包含:

  • 请求处理信息
  • 模型加载状态
  • 错误信息

📄 许可证

MIT License

🤝 贡献

欢迎提交 Issue 和 Pull Request!

📞 支持

如有问题,请查看 FunASR 项目文档或提交 Issue。

About

音频转文本

Language
Python64.7%
Markdown11.6%
HTML8.9%
JavaScript7.4%
Others7.4%