修改readme

This commit is contained in:
yueliuli 2026-05-06 16:13:10 +08:00
parent 1507093701
commit 6530c80149
1 changed files with 6 additions and 235 deletions

241
README.md
View File

@ -23,243 +23,14 @@ pip install -r requirements.txt
**使用audio虚拟环境的python解释器** **使用audio虚拟环境的python解释器**
D:\ProgramData\miniconda3\envs\audio\python.exe D:\ProgramData\miniconda3\envs\audio\python.exe
将视频或音频放置在input目录下
运行server.py开启服务
或运行main.py进行测试
main.py中的main函数接受文件名或文件夹,路径为相对于input的路径
例如如果input目录下有一个文件夹test文件夹下有一个文件1.mp3
则main.py中的main函数接受的路径为test/1.mp3或test
# FunASR 语音识别服务
基于阿里达摩院 [FunASR](https://github.com/alibaba-damo-academy/FunASR) 的本地语音识别解决方案。
## 功能特性
| 功能 | 说明 |
|------|------|
| **句级时间戳** | 每句话的开始和结束时间 |
| **说话人分离** | 自动区分不同说话人 |
| **抗噪能力** | VAD 语音活动检测,过滤噪音 |
| **本地部署** | 完全离线运行,数据不上传云端 |
## 项目结构
```
audio2/
├── funasr_env/ # 虚拟环境
├── models/ # 模型缓存目录
├── asr_service.py # 核心服务类
├── test_asr.py # 测试脚本
├── example_usage.py # 使用示例
├── run_asr.bat # Windows 运行脚本
├── fix_path_issue.bat # 路径修复脚本(推荐)
├── enable_long_path.ps1 # 启用长路径支持(管理员)
├── requirements.txt # 依赖列表
└── README.md # 本文档
```
## 快速开始
### Windows 用户注意 ⚠️
如果遇到 **"文件名或扩展名太长"** 错误,请使用以下方法之一:
#### 方法 1使用 fix_path_issue.bat推荐
```bash
fix_path_issue.bat your_audio.wav
```
#### 方法 2启用 Windows 长路径支持(永久解决)
1. 右键 PowerShell → 以管理员身份运行
2. 运行:`enable_long_path.ps1`
3. 重启电脑
### 1. 激活虚拟环境
```bash
# Windows CMD
funasr_env\Scripts\activate.bat
# Linux/Mac
source funasr_env/bin/activate
```
### 2. 安装依赖(如果未安装)
```bash
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
pip install funasr modelscope
```
### 3. 测试识别
```bash
# 方法 1使用修复脚本推荐 Windows 用户)
fix_path_issue.bat your_audio.wav
# 方法 2直接运行
python test_asr.py -f your_audio.wav
# 批量识别目录
python test_asr.py -d ./audio_files/
# 使用 SenseVoice 模型(多语言)
python test_asr.py -f your_audio.wav -m SenseVoice
```
## 代码使用示例
### 基础识别
```python
from asr_service import ASRService
# 初始化服务
service = ASRService(model_name="paraformer-zh")
# 识别音频
sentences = service.recognize("meeting.wav")
# 打印结果
for sent in sentences:
print(f"[{sent.speaker}] {sent.text}")
print(f" 时间: {sent.begin_time:.2f}s - {sent.end_time:.2f}s")
```
### 导出结果
```python
# 导出为 JSON
service.export_to_json(sentences, "result.json")
# 导出为 SRT 字幕
service.export_to_srt(sentences, "result.srt")
```
## 输出格式
### JSON 格式
```json
{
"total_sentences": 3,
"sentences": [
{
"speaker": "SPEAKER_00",
"text": "大家好,今天的会议现在开始。",
"begin_time": 0.50,
"end_time": 3.20,
"duration": 2.70
},
{
"speaker": "SPEAKER_01",
"text": "好的,我先汇报一下进度。",
"begin_time": 3.50,
"end_time": 6.10,
"duration": 2.60
}
]
}
```
### SRT 字幕格式
```srt
1
00:00:00,500 --> 00:00:03,200
[SPEAKER_00] 大家好,今天的会议现在开始。
2
00:00:03,500 --> 00:00:06,100
[SPEAKER_01] 好的,我先汇报一下进度。
```
## 支持的音频格式
- WAV
- MP3
- M4A
- FLAC
- OGG
- WMA
## 模型选择
| 模型 | 说明 | 适用场景 |
|------|------|----------|
| `paraformer-zh` | 达摩院中文模型(默认) | 中文语音识别,支持说话人分离 |
| `SenseVoice` | 多语言模型 | 多语言、方言、情感识别 |
## 硬件要求
| 配置 | 说明 |
|------|------|
| CPU | 支持,速度较慢 |
| GPU | 推荐RTF < 0.01 |
| 内存 | 4GB+ |
| 显存 | 2GB+ (GPU 模式) |
| 磁盘 | 2GB+(模型缓存) |
## 模型下载
首次运行会自动从魔搭社区下载模型到 `models/` 目录:
- Paraformer: ~500MB
- VAD: ~100MB
- 说话人模型: ~100MB
模型下载来源:
- 魔搭社区https://modelscope.cn
- 模型缓存:`./models/`(项目目录下)
## 常见问题
### Q: 文件名太长错误?
**A:** Windows 默认路径长度限制为 260 字符。解决方法:
1. 使用 `fix_path_issue.bat` 运行(已配置短路径)
2. 运行 `enable_long_path.ps1` 启用系统长路径支持(需管理员权限+重启)
### Q: 如何准备测试音频?
**A:**
- 自行录制会议/对话音频
- AISHELL 开源数据集https://www.openslr.org/33/
### Q: 支持多人同时说话吗?
**A:** 支持。说话人分离模块会自动区分不同说话人。
### Q: 对噪音环境有什么优化?
**A:** 集成了 FSMN-VAD 语音活动检测,能有效过滤背景噪音。
### Q: 如何切换 CPU/GPU
**A:**
```python
# CPU
service = ASRService(device="cpu")
# GPU
service = ASRService(device="cuda")
# 自动选择
service = ASRService(device="auto")
```
## 参考链接
- FunASR 官方仓库https://github.com/alibaba-damo-academy/FunASR
- 魔搭社区https://modelscope.cn
- PyTorch 安装https://pytorch.org/get-started/locally/
## 许可证
本项目使用 Apache-2.0 许可证
## 运行
run.bat input/VID_20251031_132320_019_mono.wav
run.bat input/VID_20251031_132320_019_mono_speak_only.wav