From 6530c801498d297d1f4babbcef6666871c5d49bf Mon Sep 17 00:00:00 2001 From: yueliuli <1628111725@qq.com> Date: Wed, 6 May 2026 16:13:10 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9readme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 241 ++---------------------------------------------------- 1 file changed, 6 insertions(+), 235 deletions(-) diff --git a/README.md b/README.md index ba51da5..eaec85d 100644 --- a/README.md +++ b/README.md @@ -23,243 +23,14 @@ pip install -r requirements.txt **使用audio虚拟环境的python解释器** D:\ProgramData\miniconda3\envs\audio\python.exe +将视频或音频放置在input目录下, +运行server.py开启服务 +或运行main.py进行测试 +main.py中的main函数接受文件名或文件夹,路径为相对于input的路径, +例如如果input目录下有一个文件夹test,文件夹下有一个文件1.mp3, - - - - -# 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 \ No newline at end of file +则main.py中的main函数接受的路径为test/1.mp3或test \ No newline at end of file