yfliao / FSR-2023-Hakka-ASR-Scoring

0 stars 0 forks source link

cer.py / wer.py 的計算模式 #1

Open hungshinlee opened 1 year ago

hungshinlee commented 1 year ago

https://github.com/yfliao/FSR-2023-Hakka-ASR-Scoring/blob/f0fcb4f294683bd9a6de16e9f6e01704cd1aab65/cer/cer.py#L64

一般我們在算 CER/WER 有兩種模式:

present:如果 ref 中的語句,有些沒有被辨識出來,也就是沒有在 hyp 裡面,則這種句子可被忽略而不算分數。

all:如果 ref 中的語句,有些沒有被辨識出來,也就是沒有在 hyp 裡面,則這種句子應該視為空字串來計算 Levenshtein Edit Distance。

由這一行可知,比賽分數的計算法是 present。我認為這是不行的(理由很多,如製造作弊機會以及無法呈現系統的 roubustness),需要被說明或改進。

by 李鴻欣博士

hungshinlee commented 1 year ago

https://github.com/yfliao/FSR-2023-Hakka-ASR-Scoring/blob/f0fcb4f294683bd9a6de16e9f6e01704cd1aab65/cer/cer.py#L57

這一行是用來算 hyp 的有效行數,如果 hyp 有語句不在 ref 裡面,則最後在平均時,扮演的角色會是 cer=0,更可以不公平的讓整體 cer 降低。

我建議你們的計算程式可以以 ref 作為迴圈標準來算,最後除以 ref 總句數,這樣比較公平。可參考這一份 code: https://kaldi-asr.org/doc/compute-wer_8cc.html

by 李鴻欣博士

Josephcs88 commented 1 year ago

https://github.com/yfliao/FSR-2023-Hakka-ASR-Scoring/blob/b301cf59e6796c8e3747f0f58cea067b9c16dff5/cer/cer.py#L53-L66

感謝您,已修正!