wekws icon indicating copy to clipboard operation
wekws copied to clipboard

無法成功喚醒

Open a22802240 opened this issue 6 months ago • 3 comments

使用example的hi_xiaowen跟著run一路做完 自己弄了個測試程式 `import torch import torchaudio import yaml

from wekws.model.kws_model import init_model from wekws.utils.checkpoint import load_checkpoint from wenet.text.char_tokenizer import CharTokenizer

=== 設定 ===

DICT_PATH = '/wekws/examples/hi_xiaowen/s0/dict/dict.txt' MODEL_PATH = '/wekws/examples/hi_xiaowen/s0/exp/ds_tcn/final.pt' CONFIG_PATH = '/wekws/examples/hi_xiaowen/s0/exp/ds_tcn/config.yaml' WAV_PATH = '/wekws/examples/hi_xiaowen/s0/data/local/mobvoi_hotword_dataset/2a5d869e59b8dd33b584f88e015e56fc.wav'
SAMPLING_RATE = 16000 THRESHOLD = 0.9

=== 載入模型與設定 ===

with open(CONFIG_PATH, 'r') as f: configs = yaml.load(f, Loader=yaml.FullLoader) model = init_model(configs['model']) load_checkpoint(model, MODEL_PATH) model.eval().to('cpu')

=== Tokenizer ===

tokenizer = CharTokenizer(DICT_PATH, DICT_PATH.replace("dict.txt", "words.txt"), unk='')

=== 讀取音檔 ===

waveform, sr = torchaudio.load(WAV_PATH) if sr != SAMPLING_RATE: waveform = torchaudio.functional.resample(waveform, sr, SAMPLING_RATE) waveform = waveform[0].unsqueeze(0) # (1, N)

=== 轉 FBank 特徵 ===

fbank = torchaudio.compliance.kaldi.fbank( waveform, num_mel_bins=40, frame_length=25, frame_shift=10, dither=0.0, energy_floor=0.0, sample_frequency=SAMPLING_RATE ) feats = fbank.unsqueeze(0) # (1, T, F)

=== 模型推論 ===

with torch.no_grad(): logits, _ = model(feats) avg_scores = torch.mean(logits[0], dim=0) # 對時間軸平均 best_score, best_idx = torch.max(avg_scores, dim=0) keyword = tokenizer.ids2tokens([best_idx.item()])[0]

print(f"辨識結果:{keyword},分數:{best_score.item():.3f}")
if best_score.item() > THRESHOLD:
    print(f" 偵測到關鍵字:{keyword}")
else:
    print("偵測失敗")

`

發現不管使用測試集還是訓練集都無法成功偵測

a22802240 avatar Jun 12 '25 03:06 a22802240

目前都是使用hi_xiaowen內的腳本訓練

  • 使用run_sh腳本的loss正常下降 但80 epoch後的模型連使用訓練集音檔做測試都無法辨識

  • 使用run_ctc腳本則在訓練時loss無法正常下降

  • 使用run_fsmn_ctc腳本則連訓練都無法進行 fsmn_ctc.yaml的參數有很多問題

  • 使用demo模型則可以被正常使用

想請問這些腳本是否真的有在乾淨的環境內重新使用過

a22802240 avatar Jun 16 '25 04:06 a22802240

完整的跑 hi_xiaowen 的 run.sh 测试结果怎么样

mlxu995 avatar Jul 07 '25 08:07 mlxu995

遇到类似的问题

run.sh的时候,损失、精度什么的都ok,测试集上效果也ok,但是自构建的测试集都失败(用的score.py + compute_det.py进行测评)

run_ctc.sh的时候,训练的acc一直是0 Image val的时候loss突然变大,精度也突然降低 Image cv_acc始终在37 38左右 Image

qingkejane avatar Jul 12 '25 11:07 qingkejane