**获取miniconda安装包** Invoke-WebRequest -Uri "https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86_64.exe" -OutFile ".\Miniconda3-latest-Windows-x86_64.exe" **激活conda仓库** conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/main conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/r conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/msys2 **在目录下进入conda环境** %WINDIR%\System32\cmd.exe "/K" D:\ProgramData\miniconda3\Scripts\activate.bat D:\ProgramData\miniconda3 **创建虚拟环境** conda create -n audio python=3.10 -y **激活** conda activate audio **取消激活** conda deactivate **conda中执行** pip install torch torchaudio --index-url https://download.pytorch.org/whl/cu118 pip install -r requirements.txt **使用audio虚拟环境的python解释器** D:\ProgramData\miniconda3\envs\audio\python.exe # 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