- 操作系统:Linux
- GPU与CUDA:NVIDIA GeForce RTX 4090 D,CUDA 12.5
1. 新建python环境
bash
conda create -n wenet_offline python=3.10 -y
conda activate wenet_offline
2. 安装 Wenet
WeNet 提供了封装好的 Python 包,安装极其简单。这只是一个运行时库,包含了预训练模型和推理接口,非常适合快速使用。它会自动安装核心依赖,如 PyTorch。如果想进行模型训练或深度定制,则需要克隆其源码仓库,但对于"仅使用"来说,这就够了。
bash
pip install git+https://gitcode.com/gh_mirrors/we/wenet
上面命令自动安装的 PyTorch /Numpy等版本兼容性有问题,重装下:
bash
pip install torch==2.2.2+cu121 torchaudio==2.2.2+cu121 -f https://download.pytorch.org/whl/torch_stable.html
pip uninstall numpy -y
pip install "numpy<2"
3. 离线语音识别
python
import wenet
model = wenet.load_model('paraformer')
result = model.transcribe('test_cn.wav')
print(result.text)
result = model.transcribe('test_en.wav')
print(result.text)
result = model.transcribe('test_mix.wav')
print(result.text)
python
今天天气怎么样明天天气怎么样
what's your name hello who are you
hello你叫什么名字呀今天的天气怎么样ok bye
4. 多模型对比
python
import wenet
import time
def test_models_compact():
"""紧凑格式测试模型"""
audio_files = ['test_cn.wav', 'test_en.wav', 'test_mix.wav']
models = ['paraformer', 'firered', 'whisper-large-v3', 'wenetspeech']
print("模型对比测试 (格式: 模型-文件-时间-结果)")
print("="*80)
for model_name in models:
try:
model = wenet.load_model(model_name)
for audio_file in audio_files:
start = time.time()
result = model.transcribe(audio_file)
elapsed = time.time() - start
result_text = result.text if hasattr(result, 'text') else str(result)
# 单行输出
print(f"{model_name:20} | {audio_file:15} | {elapsed:6.3f}s | {result_text}")
except Exception as e:
print(f"{model_name:20} | 失败: {e}")
if __name__ == "__main__":
test_models_compact()
python
模型对比测试 (格式: 模型-文件-时间-结果)
================================================================================
paraformer | test_cn.wav | 0.129s | 今天天气怎么样明天天气怎么样
paraformer | test_en.wav | 0.111s | what's your name hello who are you
paraformer | test_mix.wav | 0.222s | hello你叫什么名字呀今天的天气怎么样ok bye
firered | test_cn.wav | 0.913s | 今天天气怎么样明天天气怎么样
firered | test_en.wav | 0.784s | WHAT'S YOUR NAME HELLO WHO ARE YOU
firered | test_mix.wav | 1.747s | 哈喽你叫什么名字呀今天的天气怎么样 OK拜
whisper-large-v3 | test_cn.wav | 2.057s | How is the weather today? How is the weather tomorrow?
whisper-large-v3 | test_en.wav | 1.454s | What's your name? Hello, who are you?
whisper-large-v3 | test_mix.wav | 2.786s | Hello 你叫什么名字呀? 今天的天气怎么样? OK, bye.
wenetspeech | test_cn.wav | 0.067s | 今天天气怎么样明天天气怎么样
wenetspeech | test_en.wav | 0.066s | 我叫要耐姆你好胡油
wenetspeech | test_mix.wav | 0.130s | 你好你叫什么名字今天的天气怎么样好拜