wav2vec2-indonesian-javanese-sundanese 是一个用于印尼语、爪哇语、巽他语的多语言自动语音识别 (ASR) 模型,基于 Facebook 的 Wav2Vec2-Large-XLSR-53 微调而来。
/data/ysws/agentsp/5-14/wav2vec2-indonesian-javanese-sundanese-ascend/
├── inference.py # 精度测试脚本
├── log.txt # 测试日志
├── README.md # 本文档
├── test_audio_0.wav # 测试音频样本
├── test_audio_1.wav
├── test_audio_2.wav
└── fusion_result.json # 融合结果docker exec -it test-modelagent bashsource /usr/local/Ascend/ascend-toolkit/set_env.sh模型文件应放在 /data/ysws/agentsp/5-14/wav2vec2-indonesian-javanese-sundanese/ 目录下:
pip install transformers soundfile scipy -i https://repo.huaweicloud.com/repository/pypi/simple/ --trusted-host repo.huaweicloud.comcd /data/ysws/agentsp/5-14/wav2vec2-indonesian-javanese-sundanese-ascend/
python3 inference.py| 指标 | 实测值 | 阈值 | 状态 |
|---|---|---|---|
| Max error (sum) | 2.44e-04 | < 6.58e-01 | PASS |
| Max error (mean) | 1.49e-08 | < 1.00e-04 | PASS |
| Max error (std) | 2.98e-08 | < 1.00e-03 | PASS |
| 操作 | 耗时 |
|---|---|
| 模型加载 | 5.50s |
| CPU 参考计算 (20 tensors) | 2.54s |
| NPU 推理 (20 tensors) | 0.11s |
完整测试日志保存在 log.txt
import torch
import numpy as np
from transformers import Wav2Vec2ForCTC, Wav2Vec2Processor
model_path = "/data/ysws/agentsp/5-14/wav2vec2-indonesian-javanese-sundanese"
processor = Wav2Vec2Processor.from_pretrained(model_path)
model = Wav2Vec2ForCTC.from_pretrained(model_path).to("npu:0")
model.eval()
# 加载音频 (16kHz)
audio_samples = np.random.randn(16000).astype(np.float32) * 0.01
inputs = processor(audio_samples, sampling_rate=16000, return_tensors="pt")
input_values = inputs.input_values.to("npu:0")
with torch.no_grad():
logits = model(input_values).logits
predicted_ids = torch.argmax(logits, dim=-1)
transcription = processor.batch_decode(predicted_ids)[0]
print(f"Transcription: {transcription}")| 语言代码 | 语言名称 |
|---|---|
| id | 印尼语 (Indonesian) |
| jv | 爪哇语 (Javanese) |
| sun | 巽他语 (Sundanese) |
| 组件 | 说明 |
|---|---|
| feature_extractor | 卷积特征提取器 (7层) |
| encoder | Transformer 编码器 (24层) |
| adapter | 适配器层 |
| ctc_loss | CTC 损失函数 |
| 张量名称 | Sum Error | Mean Error | Std Error |
|---|---|---|---|
| wav2vec2.masked_spec_embed | 0.00e+00 | 0.00e+00 | 2.98e-08 |
| wav2vec2.feature_extractor.conv_layers.0.conv.weight | 0.00e+00 | 1.16e-10 | 0.00e+00 |
| wav2vec2.feature_extractor.conv_layers.0.conv.bias | 0.00e+00 | 0.00e+00 | 0.00e+00 |
| wav2vec2.feature_extractor.conv_layers.4.conv.weight | 2.44e-04 | 4.66e-10 | 1.49e-08 |
A: 检查 NPU 驱动是否正确安装,确保 CANN 环境变量已 source。
A: 这是预期行为。模型在随机噪声上的输出没有语义意义。使用真实音频输入可获得正确的转录。
A: 确保输入音频采样率为 16kHz,音频质量清晰无噪声。
本项目遵循 wav2vec2 原始许可证。